제 문제는 제 상수가 내 플러그인 내 깊숙이 포함 된 파일에 전역 적으로 사용 가능하지 않다는 것입니다. 설명하겠습니다. 내 주요 워드 프레스 플러그인 파일에서 플러그인의 Wordpress 상수는 포함 된 파일에서 사용할 수 없습니다.
는 매우 첫 번째 줄은 바로 필요/* 플러그인 이름 다음에 : ㅋ ㅋ 등 ㅋ ㅋ ... */나는 그렇게require_once(plugin_dir_path(__FILE__) . 'constants.php');
처럼 내 __construct 내에서 다음을 내 상수를 포함() 함수는 내가 다른 너무
require_once(TRADESHOW_DIR . 'structure/build_menu.php');
build_menu.php 파일은 각 메뉴 페이지에 해당 페이지에 MOR의 require_once를 호출와 라우터로 작동과 같은 워드 프레스의 관리자 섹션에서 메뉴 항목을 기반으로 파일 및 하위 메뉴를 포함 . 여기 내가 이해하지 못하는 곳이 있습니다. build_menu.php 내에서 나는 여전히 그들을 사용하여 wordpress 데이터베이스 쿼리를하는 데 사용하는 내 상수에 대한 액세스 권한이 있지만 바로 뒤에 포함 된 파일 내에서 상수에 액세스 할 필요가 없습니다. 여기 코드는 : 당신이이 주 플러그인 내에 포함 내에 포함입니다 볼 수
//// build_menu.php
function tradeshow_all_forms() {// callback from a wordpress add_submenu_page() function
global $wpdb;
$TS = new Bio_Tradeshow_Request_Plugin();// store plugin class in variable
if(isset($_GET['form_id']) && is_integer(intval($_GET['form_id']))) {
$form = $wpdb->get_results(
"
SELECT *
FROM " . TRADESHOW_FORMS . "
WHERE id = '" . $_GET['form_id'] . "'
"
);
$form = $form[0];
echo TRADESHOW_SUBMITTED . ' build_menu.php<br />';// echo's out the correct value
require_once(TRADESHOW_DIR . 'structure/fill_form.php');
}
}
여기
$user_id = $TS->user();
$user_id = $user_id['id'];
$form_aswers = $wpdb->get_row(// returns nothing because TRADESHOW_SUBMITTED doesn't work
"
SELECT answers
FROM " . TRADESHOW_SUBMITTED . "
WHERE user_id = '$user_id' AND form_id = '$form->id'
",
ARRAY_A
);
echo TRADSHOW_SUBMITTED;// echoes out TRADESHOW_SUBMITTED as a string and not a variable
그래서 fill_form.php 파일의 상단 부분입니다.
또한 누구든지 내게이 플러그인의 변수가 플러그인에 포함 된 파일에서 사용할 수없는 이유를 설명 할 수 있다면. 나는
static $_o = null;
static public function init() {
if (self::$_o === null)
self::$_o = new self;
return self::$_o;
}
그래서 $ 변수 = 새로운 plugin_class을 할 수있는 내 플러그인의 상단이있다; require 또는 require_once를 사용하여 파일을 포함 할 때 무언가가 손실되면 이해하고 싶습니다.
fill_form.php에서 사용할 수없는 변수가 무엇인지 분명하지 않습니다. http : //www.php를 검토하고 싶습니다. .net/manual/ko/language.variables.scope.php. 이 Q가 얼마 전에 게시되었습니다. 이미 알고 있습니까? –