it-swarm.com.de

Haken zum Laden von Posts und Seiten

Ich muss eine Funktion ausführen, wenn ein bestimmter Beitrag oder eine bestimmte Seite geladen wird. Gibt es einen Haken, mit dem ich überprüfen kann, ob ein Beitrag während des Ladens der Seite angezeigt wird?

17
Poulomi Nag

Sie können den Hook wp verwenden und das Objekt global $wp_query oder eine beliebige Bedingung überprü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(
        '<p>Nothing to see here! Check the object!<br /></p><pre>%s</pre>',
        var_export( $GLOBALS['wp_query'], true )
    );
}

Siehe: wp in codex.wordpress.org und wp in developer.wordpress.org

22
kaiser

Verwenden Sie template_redirect , den Aktions-Hook, der vor dem Rendern der Vorlage ausgelöst wird.

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

Ich habe das Folgende ziemlich oft verwendet, um benutzerdefinierte Meta-Boxen auf Seiten zu laden (anstatt benutzerdefinierte 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');

            }
        }
    }
0
darronz