建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

get_post_meta返回数据为空,但数据库中存在(WordPress如何在分类目录添加自定义字段)

GG网络技术分享 2025-03-18 16:13 0


get_post_meta返回数据为空,但数据库中存在

今天看到stack上面有一个问题,具体截图如下:

对于这个问题,我之前在咸鱼接单的时候遇到过,当时我也是一脸懵逼,但是后来经过测试发现。但你定一个自定义字段的并且以下划线开头的时候,WordPress会将这个数据视为私有数据,不会在文章中的自定义字段中显示,同样的,通过get_post_meta也是无法获取到数据的,如果你也遇到这个问题,可以尝试修改meta_key的名称,将最前面的下划线去掉应该问题就可以得到解决了。

同样的,这个问题在stack中也早就有人提问过:

WordPress如何在分类目录添加自定义字段

WordPress博客中分类目录是没有自定义关键词的功能的,这样对网站的SEO不太友好,所以wp自学笔记就寻思怎么能给分类添加自定义的分类关键词,其实原理就是在分类目录添加一个自定义字段,设为关键词,然后再调用即可。

效果图如下:

下面wp自学笔记把如何在分类目录添加自定义字段分享给大家,希望能给大家一点帮助。

上图这里我们是给分类目录添加了一个分类关键词的表单,具体步骤见下文:

分类添加字段

首先我们添加分类字段

// 分类添加字段function ems_add_category_field(){echo \\\'<div ><label for=\\\"cat-keywords\\\">关键词</label><input name=\\\"cat-keywords\\\" id=\\\"cat-keywords\\\" type=\\\"text\\\" value=\\\"\\\" size=\\\"40\\\"><p>输入关键词</p>  </div>\\\';}add_action(\\\'category_add_form_fields\\\',\\\'ems_add_category_field\\\',10,2);

编辑分类字段

然后编辑分类字段,添加input框等代码

// 编辑分类字段function ems_edit_category_field($tag){echo \\\'<tr ><th scope=\\\"row\\\"><label for=\\\"cat-keywords\\\">关键词</label></th><td><input name=\\\"cat-keywords\\\" id=\\\"cat-keywords\\\" type=\\\"text\\\" value=\\\"\\\';echo get_option(\\\'cat-keywords-\\\'.$tag->term_id).\\\'\\\" size=\\\"40\\\"/><br><p >\\\'.$tag->name.\\\' 关键词</p></td></tr>\\\';}add_action(\\\'category_edit_form_fields\\\',\\\'ems_edit_category_field\\\',10,2);

保存数据

接下来是保存数据

// 保存数据function ems_taxonomy_metadate($term_id){if(isset($_POST[\\\'cat-keywords\\\'])){//判断权限--可改if(!current_user_can(\\\'manage_categories\\\')){return $term_id;}$cat_key = \\\'cat-keywords-\\\'.$term_id; // key 选项名为 cat-keywords-1 类型$cat_value = $_POST[\\\'cat-keywords\\\'];// value// 更新选项值update_option( $cat_key, $cat_value ); }}

最后就是钩子了

这里需要两个钩子,但是我们可以两个钩子使用同一个函数

add_action(\\\'created_category\\\',\\\'ems_taxonomy_metadate\\\',10,1);add_action(\\\'edited_category\\\',\\\'ems_taxonomy_metadate\\\',10,1);

使用方法

首先,将上面步骤的代码依次加入到主题的 functions.php 文件内, 然后按照下面方法获取数据。

获取数据

<?php$categories = get_the_category();$term_id = $categories[0]->term_id;echo get_option(\\\'cat-keywords-\\\'.$term_id);?>

在分类页面添加上面代码测试,是否能够显示数据,能够显示即为成功。

扫码关注wpwp自学笔记

精选优质免费WordPress主题模板,分享最新WordPress实用建站教程!

记住我们的网址:ztJun.com

标签:

提交需求或反馈

Demand feedback