PHP:无法插入' the_title()' in" title" &安培; " ALT" ' the_post_thumbnail'中的属性(WordPress的)

时间:2017-03-04 07:48:14

标签: php wordpress

以下代码:

<?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()

帮助表示赞赏。

1 个答案:

答案 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文档:

the_title() function

get_the_title() function