it-swarm.com.de

Wie veranlasse ich meine Funktion, dem $ post-Objekt Variablen/Werte hinzuzufügen?

Wie füge ich $tzDesc und $tzEmbed (und andere Variablen) zum $post-Objekt in der folgenden Funktion hinzu, damit ich die Werte in meinen Designdateien durch Einfügen von <?php echo $tzDesc; ?> anzeigen kann?

add_action( 'the_post', 'paginate_slide' );

function paginate_slide( $post ) {

    global $pages, $multipage, $numpages;

    if( is_single() && get_post_type() == 'post' ) {

    $multipage = 1;
    $id = get_the_ID();
    $custom = array();
    $pages = array();
    $i = 1;

    foreach( get_post_custom_keys() as $key )
        if ( false !== strpos( $key, 'slide' ) )
            $custom[$key] = get_post_meta( $id, $key, true);

    while( isset( $custom["slide{$i}-title"] ) ) {

        $page = '';
        $tzTitle = $custom["slide{$i}-title"];
        $tzImage = $custom["slide{$i}-image"];
        $tzDesc = $custom["slide{$i}-desc"];
        $tzEmbed = $custom["slide{$i}-embed"];

        $page = "<h2>{$tzTitle}</h2><img src='{$tzImage}' />";
        $pages[] = $page;
        $i++;
    }

    $numpages = count( $pages );
    }
}

Wenn Sie wissen und eine Antwort geben können, geben Sie bitte genau an, wie der Code aufgebaut sein soll, da meine PHP-Kenntnisse sehr gering sind und ich bereits zahlreiche Versuche unternommen habe, dies ohne Erfolg zu tun. Vielen Dank.

4
matt

Wie bei jedem anderen PHP-Objekt können Sie dem $ post-Objekt folgende Elemente hinzufügen:

$post->my_new_val_name = 'my new value';

Ich weiß nicht genau, was Sie versuchen, aber in einer Funktion, die mit the_post verknüpft ist, können Sie neue Werte zuweisen und das Objekt zurückgeben.

function my_func($post) {

    $post->my_new_val_name = 'my new value';
    return $post;

}
add_action( 'the_post', 'my_func' );

In Ihrer Vorlagendatei können Sie jedoch nicht einfach $ my_new_val_name ausgeben, wie Sie vorschlagen ... Die Funktion the_post () extrahiert auf diese Weise keine Werte. Sie müssen das Post-Objekt explizit referenzieren. Mögen:

echo $post->my_new_val_name;
8
MathSmath