我很难理解.=
运算符为什么在我想要的地方输出我的代码。它应该在列表元素之间。
这是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构建一个插件,所以这就是我把它放在函数中的原因。
_post_thumbnail不会返回,而是将其自身回波
如果需要操作,可以使用输出缓冲来捕获它
$reval .= '<li>';
ob_start()
the_post_thumbnail('tcc-thumbnail');
$thumb = ob_get_contents();
ob_end_clean;
$reval .= $thumb;
$reval .= '</li>';
或者,正如dev-null-dister提到的,你可以使用get_the_post_thumbnail(null, 'tcc-thumbnail');
$reval .= '<li>';
$reval .= get_the_post_thumbnail(null, 'tcc-thumbnail');
$reval .= '</li>';
这可能与WordPress的一个函数试图从函数中回显值有关。
试着做一些类似的事情
function tcc_display_carousel_obj() {
ob_start();
tcc_display_carousel();
$output=ob_get_contents();
ob_end_clean();
return $output;
}
然后使用tcc_display_carousel_obj
而不是调用您的转盘