Hook für Post- und Seitenladung

Ich muss eine function ausführen, wenn ein bestimmter Beitrag oder eine Seite geladen wird. Gibt es einen Haken, mit dem ich überprüfen kann, ob ein Beitrag beim Laden der Seite angezeigt wird?

Solutions Collecting From Web of "Hook für Post- und Seitenladung"

Sie können den wp Hook verwenden und das global $wp_query Objekt oder eine beliebige Bedingung prüfen.

 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( '

Nothing to see here! Check the object!

%s

', var_export( $GLOBALS['wp_query'], true ) ); }

Verwenden Sie template_redirect , den Aktions-Hook, der vor dem Rendern der Vorlage ausgetriggers wird.

 add_action('template_redirect', 'hooker'); function hooker(){ //I load just before selecting and rendering the template to screen } 

Ich habe das Folgende häufig verwendet, um benutzerdefinierte Metaboxen auf Seiten zu laden (anstelle von benutzerdefinierten Posts).

  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'); } } }