我们在使用 WordPress 撰写日志或者页面的时候,都会在编辑框下面看到自定义字段 ( custom fields ),可能很多人都没有关注过这个 WordPress 自定义字段到底是干什么的?
其实 WordPress 自定义字段非常有用,它是对 WordPress Posts 表的一种补充和扩展,通过自定义字段,我们可以很容易就给日志或者页面增加额外的内容,如我在我爱水煮鱼上面就使用 WordPress 自定义字段记录当前日志的浏览次数和它的bit.ly 的短链接,如下图所示:

WordPress 自定义字段
WordPress 自定义字段工作机制
WordPress 自定义字段通常有两个的变量:键 ( key ) 和值 ( value )。比如你想显示你写日志当时的心情,你可以把键叫做 “mood”(心情),显然在这里值就是 “高兴” 或者 “愤怒”。
当我们为某篇日志或者页面创建一个自定义字段的时候,我们所写的信息将会存储到该日志或者页面中。换句话说,我们所创建的自定义字段的的数据是属于当前的日志或者页面,所以我们能够显示当前日志或者页面相关的自定义字段信息。
如何在博客上显示自定义字段的数据
当我们想显示日志或者页面的自定义字段的时候,我们有几种方法。这里介绍两种简单的方法和一些更高级的用法。
首先,可以使用 the_meta() 这个模版函数,它会自动输出一个无序的列表,如下所示:
- Key1: Value of “Key1″
- Key2: Value of “Key2″
- Key3: Value of “Key3″
第二个函数是:get_post_meta($post_id, $key, $single = true)。这个函数能够能按照自己的需求列出自定义字段。如通过使用 get_post_meta($post->ID, “Key2″, $single = true); 可以返回自定义字段 “Key2″ 的值,你可以输出它,如 “echo get_post_meta($post->ID, "Key2″, $single = true);”
WordPress 自定义字段高级用法
下面是 WordPress 自定义字段的高级用法,需要你有一点 PHP 的基础。
所以,假如你想用一张表情图片显示写日志时候的心情,首先制作这些表情图片,然后把它们命名为 Sad.gif, Mad.gif and Happy.gif ,最后代码如下:
<img src="/smilies/<?php echo get_post_meta($post->ID, "mood", $single = true); ?>.gif" alt="mood" />
又假如你在写日志的时候参考一些书籍,你想告诉读者写日志时候显示你参考了那些书籍,这个也很易,WordPress 允许你在一篇日志中使用多个相同的自定义字段,然后可以通过把 "$single = true" 改成 "$single = false" 来“群组”这些键。换句话说,它会返回一个数组,代码如下:
<?php $books = get_post_meta($post->ID,"books", $single = false); ?> <p>I am currently reading:</p> <ul> <?php foreach( $books as $book ) { echo "<li>".$book."</li>"; }?> </ul>
WordPress 自定义字段扩展了 WordPress
WordPress 自定义字段极大的扩展了 WordPress 的功能,很多插件都是基于 WordPress 自定义字段做的(比如我们最新的 WordPress 心情评论插件),灵活使用 WordPress 自定义字段可以把 WordPress 打造成强大的 CMS 系统,通过使用自定义字段,我们可以很快给日志和页面加上很多额外的信息,并且不用编辑日志就能很快改变信息显示方式。


确实很好,但没有用过.
支持2 反对
专业的文章
加强学习 WP 知识
每次饿了就来你这找食物~
支持 反对
postviews 赫赫然在那里矗着呢…… 你先说了什么叫字段吧,免得这么多人云遮雾罩的。
支持 反对
这里显示的头像是哪里的?
支持 反对
有没有清理自定义字段的 插件 或者 方法啊 ~~
我发现 好多日志 的 自定义字段都 十几条甚至几十条重复的。
支持 反对
完了,彻底没看懂…
支持 反对
你猪哇!
支持4 反对
跟你一样,呵呵。
支持 反对
鱼,麻烦问一下,你这个日志浏览统计如何使用?
支持3 反对
上传激活!
支持 反对1
5555 看不懂啊。。。有没详细点教程啊
支持1 反对1
我纠结的是。。如果想批量清理使用过的自定义字段该怎马办呢?
支持 反对
SQL 语句,
大致是 delete from wp_postmeta where meta_key =’xxx’;
支持 反对
哈,感谢哦!
支持 反对
大哥,你多长时间没做主题了?get_post_meta已经有替代函数了,新主题使用get_post_meta都不能通过审核。
支持 反对
那请问那个函数替换呢?
支持 反对
http://codex.wordpress.org/Function_Reference/get_post_custom
支持 反对
受教了
支持 反对