首页 > 解决方案 > 如何在包含 html 的变量中执行 php 代码

问题描述

我组装了一个 Wordpress 短代码,但它在块编辑器中引发错误:“更新失败。响应不是有效的 JSON 响应。” 尽管如此,编辑会被保存。我被告知我收到错误的原因是我的“简码处理函数正在生成输出。这些函数必须将所有输出收集到一个返回的变量中。”

以下是(1)有效但导致错误消息的代码和(2)我的伪代码通过将'a href'分配给变量$ html来解决问题,但没有。

(1)

function make_header() {
$args = array(
    'posts_per_page' => 1,
    'category_name' => 'headlines',
);
$q = new WP_Query( $args);

if ( $q->have_posts() ) {
    while ( $q->have_posts() ) {
    $q->the_post();        
    $featured_img_url = get_the_post_thumbnail_url(get_the_ID(),'full');
    ?>
    <a href="<?php the_permalink() ?>">
    <div><img src="<?php echo $featured_img_url; ?>" width="100%" /></div>
    <h2>
    <?php the_title(); ?>
    </h2></a>
<?php
    }
    wp_reset_postdata();
}
}
add_shortcode('make_header', 'make_header');

(2)

$html = '
<a href="<?php the_permalink() ?>">
    <div><img src="<?php echo $featured_img_url; ?>" width="100%" /></div>
    <h2>
    <?php
        the_title(); ?> </h2></a>';
    }
    wp_reset_postdata();
    return $html;

谢谢你的帮助。

标签: phpwordpressvariables

解决方案


试试下面的代码

$html = ' <a href="'.the_permalink() .'"> <div><img src="'. echo $featured_img_url .'" width="100%" /></div> <h2>'. the_title().' </h2></a>';

连接运算符 ('.'),它返回其左右参数的连接。 


推荐阅读