プラグインを作成していますが、プラグイン コードの特定の機能をトリガーするタイミングに問題があります。
/*
// 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;
// ...
});
stackexchange に関する以前の投稿で提案されたように、プラグインのコントローラー側を、init
イベントによって呼び出される関数に分離しました。ただし、init
イベント関数に含まれるコードがページの読み込みごとに評価されるのは望ましくありません。ショートコードを含むページが読み込まれるときにのみコードが評価されるようにしたいのです。
false として初期化されるが、add_shortcode 関数内から true に変更される boolean クラス変数を読み込もうとしましたが、その時までには遅すぎます -init
イベントが発生し、関数の内容は実行されません。
助けてください - コードのエリア C でどの式を使用すればよいですか? init
ショートコードが使用されている場合にのみイベント関数が実行されるようにするには、何をテストする必要がありますか?