php - 如何在包含 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;
谢谢你的帮助。
解决方案
试试下面的代码
$html = ' <a href="'.the_permalink() .'"> <div><img src="'. echo $featured_img_url .'" width="100%" /></div> <h2>'. the_title().' </h2></a>';
连接运算符 ('.'),它返回其左右参数的连接。
推荐阅读
- sql - 获取一行中每个值的百分比
- wordpress - get_the_category() wordpress 函数在更新核心版本后停止工作
- ruby - 使用 ruby 抓取动态内容
- c# - C# ASP.NET 错误响应不使用 GlobalConfiguration.Configuration.Formatters 设置
- c - 在不使用 AUTOCONF 的情况下,如何准确地找出 C 编译器支持的说明符(如果有):inline、__inline__ 或 __inline?
- html - 为什么 bootstrap 3 行不扩展以适应内容?
- php - 试图用 spout 写日期单元格
- docker - 使用 sshd 进行测试的 docker
- docker - Calicoctl 错误:“bash: /usr/local/bin/calicoctl: Permission denied ubuntu
- java - 合并新创建的 aws sqs 消息