我需要在加载特定帖子或页面时运行一个函数。是否有任何挂钩可以让我检查页面加载期间是否显示帖子?
Hook for post and page load
3 个回复
最合适的回答,由SO网友:kaiser 整理而成
您可以使用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 )
);
}
请参见:wp
in codex.wordpress.org 和wp
in developer.wordpress.orgSO网友:Adam
使用template_redirect
它是在呈现模板之前激发的动作挂钩;
add_action(\'template_redirect\', \'hooker\');
function hooker(){
//I load just before selecting and rendering the template to screen
}
SO网友:darronz
我经常使用以下方法加载页面上的自定义元框(而不是自定义帖子)。
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\');
}
}
}
结束