반응형
플러그인 개발에서 워드프레스의 세션을 사용하는 방법
플러그인을 처음 써봅니다.테스트 플러그 인을 하고 있어요.php 파일과 ajax.filename 파일..
테스트 플러그인의 내 코드.php는
global $session;
print_r($abc); //$abc is array of my data ..
$session['arrayImg']=$abc; //saving data in session
echo $session['arrayImg']; //displayin "Array"
그리고 나의 ajax.php는 다음과 같은 코드로 구성되어 있다.
global $session;
$abc = $session['arrayImg'];
print_r ("abs== ".$abc); //displayin "abs== Array"
그리고 사용하는 경우session_start();
다음의 에러가 표시된다.
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
플러그인의 한 파일에서 다른 파일로 데이터 배열을 보내고 싶을 뿐입니다.
플러그인 또는 테마에 다음 추가functions.php
파일
function wpse16119876_init_session() {
if ( ! session_id() ) {
session_start();
}
}
// Start session on init hook.
add_action( 'init', 'wpse16119876_init_session' );
다음으로 데이터를 추가하려면SESSION
-
// If session has started, this data will be stored.
$_SESSION['arrayImg'] = $abc;
Ajax 후크 함수에 대한 데이터를 얻으려면 -
// handle the ajax request
function wpse16119876_handle_ajax_request() {
if ( ! session_id() ) {
session_start();
}
if ( array_key_exists( 'arrayImg', $_SESSION ) ) {
$abc = $_SESSION['arrayImg'];
} else {
$abc = 'NOT IN SESSION DATA';
}
// Do something with $abc
}
내 경우 플러그인 활성화에서도 해당 세션 변수를 사용하고 있었습니다.비정통적인 행동도 했고요후크에서 session_start를 정의하는 대신 플러그인 :)의 첫 번째 행으로 만들었습니다.
플러그인은 워드프레스가 내 파일을 스캔하는 즉시 세션을 시작합니다.
사용자 로그아웃 시 세션을 파기하지 않습니다.변수 설정을 해제했을 뿐입니다.다른 플러그인에서도 세션을 사용하고 있는 경우에 대비하기 위해서입니다.세션을 파기하면 다른 플러그인에 영향을 줄 수 있습니다.
건배.
언급URL : https://stackoverflow.com/questions/16118817/how-to-use-session-in-wordpress-in-plugin-development
반응형
'programing' 카테고리의 다른 글
마운트 해제 시 이벤트 수신기 제거 반응 (0) | 2023.03.27 |
---|---|
오리진 'localhost:3000'에서 '...'의 XMLHttpRequest에 대한 액세스가 CORS 정책에 의해 차단되었습니다. (0) | 2023.03.27 |
인수로 전달된 TypeScript 개체의 기본값 설정 (0) | 2023.03.27 |
Ruby on Rails에 대한 WordPress 대체 방법은 무엇입니까? (0) | 2023.03.27 |
word press: 단축코드가 표시되는 경우에만 javascript 로드 (0) | 2023.03.27 |