Wordpress: PHP echo inside echo?


Wordpress: PHP echo inside echo?

我使用下面的代码在我的header.php文件有一个不同的div取决于页面:

<?php
if ( is_singular( 'movie' ) ) {
     echo "<div class='heroImagePage' style='background-image:url(blur.jpg);'>";
} elseif (has_post_thumbnail( $post->ID ) ) {
    echo "<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' ); ?> <div class='heroImage' style='background-image:url(<?php echo $image[0]; ?>);'>";
} else {
    echo "<div class='heroImagePage' style='background-image:url(blur.jpg);'>";
}
?>

if ( is_singular( 'movie' ) ) {else {的条件工作得很好,但检查是否有特征图像的条件却不行。在那里的代码是获得特色图像的URL,所以它可以插入它作为div的背景图像。我认为问题在于回声内部的回声?

当我查看它在浏览器中输出的代码时,它看起来像这样:

<div class="heroImage" style="background-image:url(<?php echo ; ?>);">

我已经试着在网上寻找帮助解决它,但似乎找不到解决方案。谢谢你的帮助。

PHP不会在字符串内执行。只需在之前赋值$image变量,回显字符串

elseif (has_post_thumbnail($post->ID)) {
    $image = wp_get_attachment_image_src(
        get_post_thumbnail_id($post->ID), 'full');
    echo '<div class="heroImage" style="background-image:url(', $image[0], ')">';
}

尝试在回显字符串之前分配$image变量。
例如

<?php
if ( is_singular( 'movie' ) ) {
     echo "<div class='heroImagePage' style='background-image:url(blur.jpg);'>";
} elseif (has_post_thumbnail( $post->ID ) ) {
    $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' );
    echo "<div class='heroImage' style='background-image:url" . $image[0] . ')">' ; 
} else {
    echo "<div class='heroImagePage' style='background-image:url(blur.jpg);'>";
}
?>