You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress:添加文章元数据区块前如何判断指定元数据是否存在

问题解决方法

你的条件失效核心原因是**metadata_exists里的$post_id被单引号包裹**,导致它变成了字符串'$post_id'而非实际的文章ID变量。另外你不需要额外添加if/elseif语句,只需要修正现有条件即可。

修正后的代码方案

方案1:修复metadata_exists的变量引用

直接使用原代码里的$post->ID(确保$post对象在当前上下文有效):

<?php if ( 'extra-meta' === $section && metadata_exists('post', $post->ID, 'custom_meta') ) { ?>
    <li><?php echo do_shortcode( get_post_meta( $post->ID, 'custom_meta', true ) ); ?></li>
<?php } ?>

方案2:直接通过get_post_meta判断值是否存在

当元数据不存在时,get_post_meta会返回空值,所以可以直接判断值是否非空,还能避免重复调用函数:

<?php 
$custom_meta = get_post_meta( $post->ID, 'custom_meta', true );
if ( 'extra-meta' === $section && !empty($custom_meta) ) { ?>
    <li><?php echo do_shortcode( $custom_meta ); ?></li>
<?php } ?>

两种方案都能实现你要的效果——仅当文章存在custom_meta元数据时,才渲染对应的列表项区块,不需要额外添加分支语句。

内容的提问来源于stack exchange,提问作者Wanderlust Consulting

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 17:22:42