PHP wordpress在短代码中执行函数

PHP wordpress在短代码中执行函数,php,wordpress,function,echo,shortcode,Php,Wordpress,Function,Echo,Shortcode,我创建了一个函数,可以收集一组帖子中的所有图像。我正在尝试将这些图像添加到创建滑块的开始和结束短代码之间 以下是我到目前为止的情况——我的php知识不是很好。有人能指出这可能不起作用的原因吗。 谢谢 您的函数应该返回值,而不是使用echo 一种方法是返回输出缓冲,如下所示: function pplSlider(){ ob_start(); $my_query = new WP_Query( "category_name=editorial&posts_per_page=

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

以下是我到目前为止的情况——我的php知识不是很好。有人能指出这可能不起作用的原因吗。 谢谢


您的函数应该返回值,而不是使用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() ) );
函数pplSlider(){
ob_start();
$my_query=new WP_query(“category_name=editive&posts_per_page=-1”);
如果($my\u query->have\u posts()):
while($my_query->have_posts()):$my_query->the_post();
_post_缩略图(数组(300300));
如果($my\u query->current\u post+1)<$my\u query->post\u count)
回声“/!”;
结束时;
endif;
返回ob_get_contents();
}
echo do_短代码(sprintf('[wpic]%s[/wpic]',pplSlider());

你不工作是什么意思?它在哪里不起作用?你能进一步解释一下吗?你有没有PHP错误,没有输出,或者。。。还有别的吗?
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() ) );