回答:
wp
フックを使用して、global $wp_query
オブジェクトまたは任意の条件を確認できます。
add_action( 'wp', 'wpse69369_special_thingy' );
function wpse69369_special_thingy()
{
if (
'special_cpt' === get_post_type()
AND is_singular()
)
return print "Yo World!";
return printf(
'<p>Nothing to see here! Check the object!<br /></p><pre>%s</pre>',
var_export( $GLOBALS['wp_query'], true )
);
}
after_setup_theme
andの前に実行されるsetup_theme
ため、プラグインのみがアクセス可能B)insideはWP :: main()
、wp-settings.php内から呼び出されます。
wp
フックはafter_setup_theme
フックの直後および直前に起動しないtemplate_redirect
ためwp
、テーマおよびプラグインからアクセス可能になりませんか?(明確にするだけ?)
template_redirect
テンプレートをレンダリングする前に起動するアクションフックを使用します。
add_action('template_redirect', 'hooker');
function hooker(){
//I load just before selecting and rendering the template to screen
}
wp
後に実行されることだと思うafter_theme_setup
ので、プラグインだけでアクセスできないため、テーマで安全に使用できます。
wp
後に実行されafter_theme_setup
ます。しかし、プラグインには必要です。だから、wp
だけでなく、template_redirect
私のために、両方の作業罰金。ここで2つの答えを受け入れてほしい!:)
(カスタム投稿ではなく)ページ上のカスタムメタボックスを読み込むために、次のコードを頻繁に使用しました。
add_action('admin_init','how_we_do_it_meta');
function how_we_do_it_meta() {
if ( $_SERVER['SCRIPT_NAME'] == '/wp-admin/post.php' ) {
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'];
$template_file = get_post_meta($post_id,'_wp_page_template',TRUE);
if ($template_file == 'page-how-we-do-it.php') {
add_meta_box('how_we_do_it_who-meta', 'Who we work with...', 'how_we_do_it_who', 'page', 'normal', 'high');
add_action('save_post', 'save_how_we_do_it_meta');
}
}
}
to add_action('init', // etc)
、adminセクションだけでなくページの読み込みでも機能します。
! is_admin()
ため、内部を確認する必要がありますinit
。