0
我正在編寫一個插件,並且在觸發插件代碼的特定功能時遇到一些困難。短代碼之前的WordPress插件事件調用
/*
// Plugin information goes here
*/
// ***** Area A
$GLOBALS['example_class'] = new example_class;
class example_class {
// ***** Area B
public function admin_init() {
add_menu_page(
// ...
);
} // End of admin_init function
} // End of example class
add_action('init', function() {
global $example_class;
// ***** Area C
if (??????) {
// Sanitize and set the view role
$view = (isset($_REQUEST['view'])) ? sanitize_key($_REQUEST['ex']) : 'get_all';
// Manage submitted data
switch ($view) {
// ...
} // End of switch for view
// Sanitize and set the action role
$action = (isset($_REQUEST['action'])) ? sanitize_key($_REQUEST['action']) : NULL;
// Manage submitted data
switch ($action) {
//...
} // End of switch for action
} // End of if page is being shown
});
add_action('admin_menu', function() {
global $example_class;
$example_class->admin_init();
});
add_shortcode('show_public_random', function() {
global $example_class;
// ...
});
按照建議in a previous post上stackexchange,我分離我的插件的控制器側成由init
事件調用的函數。但是,我不希望包含在init
事件函數中的代碼在每次加載頁面時進行評估 - 我希望僅在加載包含簡碼的頁面時才評估我的代碼。
我已經嘗試加載一個布爾類變量,它初始化爲false,但在add_shortcode函數內更改爲true,但到那時爲時已晚 - 已觸發init
事件,並且該函數的內容未運行。
請幫我 - 我應該在我的代碼的C區使用哪種表達方式?我應該測試什麼以確保僅在使用短代碼時才運行init
事件函數?
你想檢查什麼? – codepixlabs
init'means第一件事就是要執行,在你之前沒有任何條件可以工作..你應該嘗試用你的函數鉤住其他的鉤子 – codepixlabs
我需要運行基於動作和視圖的條件來決定顯示什麼在頁面上,所以我選擇的apt鉤子需要在調用shortcode之前。 –