以下代码:
<?php if ( has_post_thumbnail() ) : ?>
<?php $attr = 'Is ' . the_title() . ' a good computer?'; ?>
<p><?php the_post_thumbnail('medium', ['title' => $attr, 'alt' => $attr]); ?></p>
<?php endif; ?>
产生输出:
<p><img width="300" height="300" src="http://www.example.com/wp-content/uploads/2016/04/image.jpg" alt="Is a good computer?" title="Is a good computer?" ></p>
为什么不包括the_title()
?
帮助表示赞赏。
答案 0 :(得分:2)
函数the_title()
在调用时立即打印标题,它不返回其值以用于其他函数。请改用get_the_title()
,返回其值:
<?php if ( has_post_thumbnail() ) : ?>
<?php $attr = 'Is ' . get_the_title() . ' a good computer?'; ?>
<p><?php the_post_thumbnail('medium', ['title' => $attr, 'alt' => $attr]); ?></p>
<?php endif; ?>
与许多同名的WordPress函数一样,the_title()
实际上调用get_the_title()
来回显返回值。 From documentation:
function the_title( $before = '', $after = '', $echo = true ) {
$title = get_the_title();
if ( strlen($title) == 0 )
return;
$title = $before . $title . $after;
if ( $echo )
echo $title;
else
return $title;
}
WordPress文档: