0

一連の投稿からすべての画像を収集する関数を作成しました。スライダーを作成するオープニングとクロージングのショートコードの間にこれらの画像を追加しようとしています。

これが私がこれまでに持っているものです-私のphpの知識はあまりありません。これが機能しない理由を誰でも指摘できますか。ありがとう

<?php 
function pplSlider()
{
$my_query = new WP_Query( "category_name=editorial&posts_per_page=-1" ); 

if ( $my_query->have_posts() ) : 

while ( $my_query->have_posts() ) : 
    $my_query->the_post();
    the_post_thumbnail(array(300,300));

    if (($my_query->current_post +1 )< $my_query->post_count)
        echo '/!';

endwhile; 
endif;
}
}
echo do_shortcode('[wpic]' . pplSlider() . '[/wpic]');

?>
4

1 に答える 1

0

関数は、 echoを使用する代わりに、値を返す必要があります。

これを回避する 1 つの方法は、次のように出力バッファリングを返すことです。

function pplSlider(){
    ob_start();
    $my_query = new WP_Query( "category_name=editorial&posts_per_page=-1" ); 
    if ( $my_query->have_posts() ) : 
        while ( $my_query->have_posts() ) : $my_query->the_post();
            the_post_thumbnail(array(300,300));
            if (($my_query->current_post +1 )< $my_query->post_count)
                echo '/!';

        endwhile; 
    endif;
    return ob_get_contents();
}

echo do_shortcode( sprintf( '[wpic]%s[/wpic]', pplSlider() ) );
于 2013-06-18T19:38:23.330 に答える