PHP wordpress在短代码中执行一个函数

时间:2013-06-18 16:44:54

标签: php wordpress function echo shortcode

我创建了一个从一组帖子中收集所有图像的函数。我正在尝试在创建滑块的开始和结束短代码之间添加这些图像。

这是我到目前为止 - 我的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]');

?>

1 个答案:

答案 0 :(得分:0)

您的功能应该返回值,而不是使用 echo

一种方法是返回输出缓冲,如下所示:

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() ) );