2013-08-25 35 views
0

我很努力地看到爲什麼.=運營商輸出我的代碼超過我想要的地方。它應該在列表元素之間。PHP輸出錯誤的地方使用。=

這裏是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

the_post_thumbnail不返回,但回聲它本身

你可以使用輸出緩衝,如果你抓住它需要操作它

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

或開發無效居民提到可以使用 get_the_post_thumbnail(null, 'tcc-thumbnail');

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

這可能會做。比我的建議更清潔一點:) –

+2

或者只是'get_the_post_thumbnail(null,'tcc-thumbnail');'它返回的內容在'the_post_thumbnail'中回顯 –

+0

甚至更​​好。 –

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你的旋轉木馬,而不是