WordPress 自定义字段(Custom Fields)详细介绍和使用

什么是 WordPress 自定义字段

我们在使用 WordPress 撰写日志或者页面的时候,都会在编辑框下面看到自定义字段(Custom Fields),那么什么是自定义字段呢?这个 WordPress 自定义字段又是干什么的?

WordPress 自定义字段是对 WordPress Posts 表的一种补充和扩展,一般来讲 WordPress 提供了博客日志的作者,分类,标签,时间等,然后你可以根据你的需要自定义出一系列的其他信息,比如我在我爱水煮鱼上面就使用 WordPress 自定义字段记录当前日志的浏览次数和它的bit.ly 的短链接,如下图所示:

WordPress 自定义字段
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, $meta_key, $single = true)。这个函数能够能按照自己的需求列出自定义字段。如通过使用 get_post_meta($post->ID, “Key2″, $single = true); 可以返回自定义字段 “Key2” 的值,也可以输出它:echo get_post_meta($post->ID, “Key2″, $single = true);

WordPress 自定义字段高级用法

输出撰写日志时候的心情

假如你想用一张表情图片显示写日志时候的心情,首先制作这些表情图片,并把它们命名为 Sad.gif,Mad.gif 和 Happy.gif,然后在撰写日志的时候,在自定义字段那里名称输入 mood,值输入 Sad,Mad,Happy 中的一个,上面最后代码如下:


<img data-raw="http://77flz7.com1.z0.glb.clouddn.com/qiniu/958/image/9426b5f40eb58fa4450e2d4e3f8e1f0e.jpg" srcset="http://77flz7.com1.z0.glb.clouddn.com/qiniu/958/image/9426b5f40eb58fa4450e2d4e3f8e1f0e.jpg?watermark/1/image/aHR0cDovL3dwamFtLnFpbml1ZG4uY29tL3dwamFtL3dhdGVybWFyay5wbmc=/dissolve/100/gravity/SouthEast/dx/10/dy/10|imageslim%7CimageView2/2/w/1200/interlace/1/q/70 2x" src="http://77flz7.com1.z0.glb.clouddn.com/qiniu/958/image/9426b5f40eb58fa4450e2d4e3f8e1f0e.jpg?watermark/1/image/aHR0cDovL3dwamFtLnFpbml1ZG4uY29tL3dwamFtL3dhdGVybWFyay5wbmc=/dissolve/100/gravity/SouthEast/dx/10/dy/10|imageslim%7CimageView2/2/w/600/interlace/1/q/70 "mood", $single = true); ?>.gif" alt="mood" />

输出撰写日志时候的参考书籍

假如你在写日志的时候参考一些书籍,你想告诉读者写日志时候显示你参考了那些书籍,这个也很易,WordPress 允许你在一篇日志中使用多个相同的自定义字段,然后可以通过把 $single 这个参数值从 true 改成 false 来返回该自定义字段的所有值的数组:


<?php $books = get_post_meta($post->ID,"books", $single = false); ?>
<p>参考书籍:</p>
<ul>
<?php foreach( $books as $book ) {
    echo "<li>".$book."</li>";
}?>
</ul>

统计当前日志的浏览数

下面的代码是目前我爱水煮鱼所使用的日志浏览数统计代码核心部分,和 WP-Postviews 有点不同,因为我爱水煮鱼的博客使用内存缓存,所以我把统计数写入到 WordPress 对象缓存中,统计每增加 10 次之后才写入数据库中,这样大大减少数据库的请求,加快 WordPress 的效率。

下面用到了一个新的自定义字段相关函数 update_post_meta($post_id, $meta_key, $meta_value, $prev_value); ,就是可以通过程序来更新自定义字段。


<?php
  $post_id = $post->ID;
  $post_views = wp_cache_get($post_id,'views');

  if($post_views === false){
    $post_views = get_post_meta($post_id, "views",true);
    if(!$post_views) $post_views = 0;
  }

  $post_views = $post_views + 1;

  wp_cache_set($post_id,$post_views,'views');
        
  if($post_views%10 == 0){
    update_post_meta($post_id, 'views', $post_views);
  }

  echo $post_views;
?>

WordPress 自定义字段扩展了 WordPress

WordPress 自定义字段极大的扩展了 WordPress 的功能,很多插件都是基于 WordPress 自定义字段做的(比如我们最新的 WordPress 心情评论插件),灵活使用 WordPress 自定义字段可以把 WordPress 打造成强大的 CMS 系统,通过使用自定义字段,我们可以很快给日志和页面加上很多额外的信息,并且不用编辑日志就能很快改变信息显示方式。

更多 WordPress 自定义字段使用技巧

使用 WordPress 自定义字段创建的插件

热门文章