> WordPress中文手册 > wordpress进阶教程(五):自定义字段基础介绍和操作函数

什么是WordPress的自定义字段?

对于wordpress的一篇文章,有很多元素:标题、内容、作者、文章类型、状态、时间等等。然而这些元素有时候远远不够,比如我希望给每篇文章附加一个值:访问次数。那我们就可以通过给文章附加一个元素来实现,这个元素至少得有三个值:所属文章,元素名称,值。这个元素就是自定义字段了。在wordpress中,自定义字段存储在数据库的_postmeta表中,在数据表中总共有4个属性分别是:meta_id-字段ID,post_id-所属文章,meta_key-字段名称,meta_value-值。字段ID基本无用,只是在数据库中存储需要,后面三个值,前面已经说了,一个附加元素至少需要这三个值。不过我们说的自定义字段应该是只主题作者或者管理员为文章添加的,wordpress默认的字段就不要算上了。

wordpress的自定义字段用的很多,比如用自定义字段实现seo功能:为每篇文章添加一个title字段、添加关键字字段、添加描述信息字段,为商品添加图片或者附加信息,总之自定义字段的拓展功能很强,要想建一个高级一点的站点,使用自定义字段必不可少。

一般的我们只需要在文章或页面的编辑页面上方的显示选项里面勾选自定义栏目即可:

wordpress进阶教程(五):自定义字段基础介绍和操作函数

点选后即可看到文章边界页面的编辑器下面有自定义栏目版块,

wordpress进阶教程(五):自定义字段基础介绍和操作函数

你可以通过上面的面板来为文章添加自定义字段。

自定义字段的操作

对自定义字段的主要操作有四种:添加、更新(修改)、删除、获取(值)。

1、首先自定义字段的添加函数,改函数可以为文章往数据库中添加一个字段:

<?PHP    add_post_meta($post_id, $meta_key, $meta_value, $unique);    //$post_id--文章id    //$meta_key--字段名称    //$meta_value--值    //$unique--(布尔值、可选)字段是否唯一,如果设置为true,那么添加字段的时候如果这个字段已经存在了,就不会再添加    ?>    <?php    update_post_meta($post_id, $meta_key, $meta_value, $prev_value);    //$post_id--文章id    //$meta_key--字段名称    //$meta_value--新的值    //$prev_value--(可选)以前的值,如果这个字段有几个,那么只会更新匹配的这个值    ?>    <?php    delete_post_meta($post_id, $meta_key, $meta_value);    //$post_id--文章id    //$meta_key--字段名称    //$meta_value--(可选)要删除的值,要删除特定值的字段,对于字段不唯一来说有意义,如果这个参数留空,那么所有这个字段名称的字段都会被删除    ?>   <?php    $meta_values = get_post_meta($post_id, $key, $single);    //$post_id--文章id    //$key--字段名称    //$single--(布尔值、可选)如果设置为true,对于存在多个相同的字段,这个函数也只会返回一个唯一的值。如果设置为false或者留空,那么会返回一个数组    ?>  

2、自定义字段的更新函数,该函数可以更新一个已经存在的字段:

<?php    add_post_meta($post_id, $meta_key, $meta_value, $unique);    //$post_id--文章id    //$meta_key--字段名称    //$meta_value--值    //$unique--(布尔值、可选)字段是否唯一,如果设置为true,那么添加字段的时候如果这个字段已经存在了,就不会再添加    ?>    <?php    update_post_meta($post_id, $meta_key, $meta_value, $prev_value);    //$post_id--文章id    //$meta_key--字段名称    //$meta_value--新的值    //$prev_value--(可选)以前的值,如果这个字段有几个,那么只会更新匹配的这个值    ?>    <?php    delete_post_meta($post_id, $meta_key, $meta_value);    //$post_id--文章id    //$meta_key--字段名称    //$meta_value--(可选)要删除的值,要删除特定值的字段,对于字段不唯一来说有意义,如果这个参数留空,那么所有这个字段名称的字段都会被删除    ?>   <?php    $meta_values = get_post_meta($post_id, $key, $single);    //$post_id--文章id    //$key--字段名称    //$single--(布尔值、可选)如果设置为true,对于存在多个相同的字段,这个函数也只会返回一个唯一的值。如果设置为false或者留空,那么会返回一个数组    ?>  

3、自定义字段的删除函数,该函数可以删除一个已经存在的字段:

<?php    add_post_meta($post_id, $meta_key, $meta_value, $unique);    //$post_id--文章id    //$meta_key--字段名称    //$meta_value--值    //$unique--(布尔值、可选)字段是否唯一,如果设置为true,那么添加字段的时候如果这个字段已经存在了,就不会再添加    ?>    <?php    update_post_meta($post_id, $meta_key, $meta_value, $prev_value);    //$post_id--文章id    //$meta_key--字段名称    //$meta_value--新的值    //$prev_value--(可选)以前的值,如果这个字段有几个,那么只会更新匹配的这个值    ?>    <?php    delete_post_meta($post_id, $meta_key, $meta_value);    //$post_id--文章id    //$meta_key--字段名称    //$meta_value--(可选)要删除的值,要删除特定值的字段,对于字段不唯一来说有意义,如果这个参数留空,那么所有这个字段名称的字段都会被删除    ?>   <?php    $meta_values = get_post_meta($post_id, $key, $single);    //$post_id--文章id    //$key--字段名称    //$single--(布尔值、可选)如果设置为true,对于存在多个相同的字段,这个函数也只会返回一个唯一的值。如果设置为false或者留空,那么会返回一个数组    ?>  

4、自定义字段值的获取函数,该函数用于获取一个已经存在的字段的值:

<?php    add_post_meta($post_id, $meta_key, $meta_value, $unique);    //$post_id--文章id    //$meta_key--字段名称    //$meta_value--值    //$unique--(布尔值、可选)字段是否唯一,如果设置为true,那么添加字段的时候如果这个字段已经存在了,就不会再添加    ?>    <?php    update_post_meta($post_id, $meta_key, $meta_value, $prev_value);    //$post_id--文章id    //$meta_key--字段名称    //$meta_value--新的值    //$prev_value--(可选)以前的值,如果这个字段有几个,那么只会更新匹配的这个值    ?>    <?php    delete_post_meta($post_id, $meta_key, $meta_value);    //$post_id--文章id    //$meta_key--字段名称    //$meta_value--(可选)要删除的值,要删除特定值的字段,对于字段不唯一来说有意义,如果这个参数留空,那么所有这个字段名称的字段都会被删除    ?>   <?php    $meta_values = get_post_meta($post_id, $key, $single);    //$post_id--文章id    //$key--字段名称    //$single--(布尔值、可选)如果设置为true,对于存在多个相同的字段,这个函数也只会返回一个唯一的值。如果设置为false或者留空,那么会返回一个数组    ?>  

关于自定义字段的基础使用,可参考前面的教程:
无插件实现浏览次数统计
使用自定义字段添加关键词和描述信息