PHP使用。=输出错误的地方

时间:2013-08-25 17:44:26

标签: php wordpress

我很难理解为什么.=运算符会将我的代码输出到我想要的位置之上。它应该在list元素之间。

这是PHP

<?php 
    function tcc_display_carousel() {

        $reval  = '<div id="tcc_carousel">';
        $reval .= '<ul class="bjqs">';

        $args = array('post__not_in' => array(133), 
                      'post_type' => 'tcc_carousel', 
                      'posts_per_page' => ''. $tcc_ppp .'', 
                      'order' => 'ASC');

        $loop = new WP_Query( $args );
        if ( $loop->have_posts() ) : 
            while (  $loop->have_posts() ) :  
                $loop->the_post(); 

                $reval .= '<li>';
                $reval .= the_post_thumbnail('tcc-thumbnail');
                $reval .= '</li>';
                //No post displays
            endwhile; 
        else:
            $reval .= '<h2>No posts to display</h2>';
        endif;

        $reval .=  '</ul>';
        $reval .=  '</div>';
        return $reval;  
    }
?>

&安培;这是它输出的html:

<img class="attachment-tcc-thumbnail wp-post-image" width="882" height="292" alt="01"  src="http://dcs.dev/wp-content/uploads/2013/08/01.png">
<div id="tcc_carousel">
    <ul class="bjqs">
      <li></li>
      </ul>
</div>
</div>

我已经进行了实验,我猜测它与它之间的查询有关,但我不知道如何添加到查询的$ reval。

我正在为wordpress构建一个插件,这就是我在一个函数中拥有它的原因。

2 个答案:

答案 0 :(得分:2)

the_post_thumbnail不会返回,但会自行回复

如果需要操作它,可以使用输出缓冲来捕获它

$reval .= '<li>';
ob_start()
   the_post_thumbnail('tcc-thumbnail');
   $thumb = ob_get_contents();
ob_end_clean;
$reval .= $thumb;
$reval .= '</li>';

或者dev-null-dweller提到你可以使用 get_the_post_thumbnail(null, 'tcc-thumbnail');

$reval .= '<li>';
$reval .= get_the_post_thumbnail(null, 'tcc-thumbnail');
$reval .= '</li>';

答案 1 :(得分:0)

这可能与其中一个试图回显函数值的WordPress函数有关。

尝试做这样的事情

function tcc_display_carousel_obj() {
    ob_start();
    tcc_display_carousel();
    $output=ob_get_contents();
    ob_end_clean();
    return $output;
}

然后使用tcc_display_carousel_obj来调用您的轮播