WordPress最近文章小工具自定义字段数值显示问题及修复
解决WordPress最近文章小工具(Recent Post Widget)自定义字段数值不显示的问题
问题回顾
我尝试在WordPress的最近文章小工具里显示一个自定义数字,做了以下操作:
- 给文章添加了名为
kekoa的自定义字段并设置了对应值 - 在最近文章小工具的函数里添加了一段代码,但结果只能看到CSS样式的盒子,完全看不到设置的数值
最初的代码如下:
// Check if post has post thumbnail. if ( has_post_thumbnail() ) : $html .= '<div class="mainumber33">' . get_post_meta($post->ID, "yeniyazinumarasi", true) . '</div>'; $yeniyazinumarasi= $html; echo $yeniyazinumarasi; $html .= '<a class="rpwe-img" href="' . esc_url( get_permalink() ) . '" rel="bookmark">'; if ( $image ) : $html .= '<img class="' . esc_attr( $args['thumb_align'] ) . ' rpwe-thumb" src="' . esc_url( $image ) . '" alt="' . esc_attr( get_the_title() ) . '">'; else : $html .= get_the_post_thumbnail( get_the_ID(), array( $args['thumb_width'], $args['thumb_height'] ), array( 'class' => $args['thumb_align'] . ' rpwe-thumb the-post-thumbnail', 'alt' => esc_attr( get_the_title() ) ) ); endif; $html .= '</a>';
问题根源分析
这段代码有三个关键问题:
- 自定义字段名不匹配:创建的自定义字段是
kekoa,但代码里写的是yeniyazinumarasi,自然获取不到对应值 - Post ID获取错误:在最近文章小工具的函数环境中,
$post->ID可能没有被正确初始化,导致无法拿到当前文章的ID - 错误的输出逻辑:中途把
$html赋值给$yeniyazinumarasi并直接echo,会打断小工具原本的HTML拼接流程,还可能导致后续内容无法正常渲染
修复后的代码及解释
调整后的代码解决了所有问题,现在可以正常显示自定义字段的数值了:
// Check if post has post thumbnail. if ( has_post_thumbnail() ) : $html .= '<div class="mainumber33">' . get_post_meta(get_the_ID(), "kekoa", true) . '</div>'; $html .= '<a class="rpwe-img" href="' . esc_url( get_permalink() ) . '" rel="bookmark">'; if ( $image ) : $html .= '<img class="' . esc_attr( $args['thumb_align'] ) . ' rpwe-thumb" src="' . esc_url( $image ) . '" alt="' . esc_attr( get_the_title() ) . '">'; else : $html .= get_the_post_thumbnail( get_the_ID(), array( $args['thumb_width'], $args['thumb_height'] ), array( 'class' => $args['thumb_align'] . ' rpwe-thumb the-post-thumbnail', 'alt' => esc_attr( get_the_title() ) ) ); endif; $html .= '</a>';
主要修改点:
- 把
$post->ID替换为get_the_ID():这个函数能在循环环境中可靠获取当前文章的ID,适配小工具的执行上下文 - 把自定义字段名改为正确的
kekoa:确保能读取到设置的自定义字段值 - 移除了多余的
$yeniyazinumarasi= $html; echo $yeniyazinumarasi;:保持$html变量的正常拼接,让小工具按原有逻辑输出完整内容
内容的提问来源于stack exchange,提问作者KucuKeko
相关产品推荐
相关产品推荐

