WorPress之所以优秀,因为有他的灵活,可以灵活设置自定义字段正是它的有点之一。利用自定义字段我们可以扩展很多功能,WP数据库的wp_posts表可以存放文章,页面和附件等,与之对应的wp_postmeta表用来存储自定义的字段,采用post_id,meta_key,meta_value这样的设计来分别存放对应的文章id、自定义字段名称、自定义字段值。
get_post_meta函数用法:
get_post_meta($post_id, $key, $single);
<?php $meta_name = get_post_meta($post->ID, $key, $single); ?>
此函数定义在wordpress的post.php中。
get_post_meta函数3个基本参数:
1、$post_id —— 所检索数据的文章的ID,使用 $post->ID 来获取文章的ID,即为get_post_meta($post->ID, $key, $single);
2、$key —— 要检索的自定义字段名称,对应的数据库里面的meta_key的值
3、$single —— 这是一个布尔值
如果只设置了 $post_id 的值,返回该日志的所有自定义字段的关联数组。
如果设置为 true ,将直接以字符串的形式返回字段的值;
一个自定义字段可以填写多个值,如果设置为 false,将返回一个数组 array 来显示这多个值。
如果没有东西可以返回的时候,返回空数组,除非 $single 设置为 true ,则返回空字符串。
还有一种特殊情况就是,自定义字段的值是序列化的数组,这样 $single 设置为 true,则返回未序列化的数组,而 $single 设置为 false 或者留空,则你会获取一个数组,其中的一个值是序列化之后的字符串,你需要使用 maybe_unserialize 函数将其解析成数组。
例:如果在文章中设置了自定义字段url(wp新版古腾堡编辑器在编辑器后台打开“偏好设置”》面板-额外》启动“自定义字段”),使用get_post_meta函数获取此字段值的示例代码如下:
get_post_meta($post->ID, 'url', true);
评论