PHP编程:WordPress中编写自定义存储字段的相关PHP函数解析

wordpress中编写自定义存储字段的相关PHP函数解析》要点:
本文介绍了wordpress中编写自定义存储字段的相关PHP函数解析,希望对您有用。如果有疑问,可以联系我们。

PHP教程wordpress自定义字段就是文章Meta 信息(元信息),利用这个功能,可以扩展文章功能,是学习 wordpress 插件开发主题深度开发的必备知识,便利给文章储存一些额外的自定义内容.

PHP教程自界说字段不光给插件开发者使用,wordpress 的特色图像、自界说页面模板等功能的信息都储存在自界说字段的表单里边.

PHP教程文章编辑器界面的 “自定义栏目” 板块可以管理除了名字开头是 “_” 的字段(没有 “自定义栏目” 板块请在右上角的 “显示选项” 开启),所以很多 wordpress 本身使用的自定义字段无法在此管理.
存储原理

PHP教程自定义字段非常灵活,首先来说一下它的储存原理和为什么这么灵活.数据库中,储存文章的 wp_posts 表单,只有认的 20 个项目,用于储存必需的文章信息.

PHP教程20151225143034327.png (332×620)

PHP教程而存储自定义字段的 wp_postMeta 表,却只有四个项目,分别是 Meta_id(自定义字段的 ID)、post_id(自定义字段属于的文章的 ID)、Meta_key(自定义字段的名字)和 Meta_value(自定义字段的值),一般我们只必要注意 Meta_key 和 Meta_value 两个项目即可.

PHP教程正是因为这样,每篇文章都可以有相同名字但不同值的自定义字段,并且可以有无限个自定义字段,任何的插件主题都可以利用自定义字段文章信息进行扩展.

PHP教程一篇文章的自界说字段的名字是可以重复的.

PHP教程添加字段

PHP教程自定义字段可以在文章编纂页面操作,但本文主要写关于开发的事情.

PHP教程20151225143103462.png (832×428)

PHP教程添加自界说字段,可以使用 add_post_Meta() 函数

PHP教程
add_post_Meta( $post_id,$Meta_key,$Meta_value,$unique );

PHP教程参数:

PHP教程$post_id

PHP教程(整数)(必需)添加自定义字段文章的 ID.

PHP教程认值:None

PHP教程$Meta_key

PHP教程(字符串)(必需)自定义字段名称.

PHP教程认值:None

PHP教程$Meta_value

PHP教程(混合)(必需)自定义字段的值.

PHP教程认值:None

PHP教程$unique

PHP教程(布尔)(可选)如果已经有相同名字的字段,是否重复添加.True 允许;False 不允许.

PHP教程认值:False

PHP教程更新字段

PHP教程要更新一个字段的值,可以使用 update_post_Meta() 函数

PHP教程
update_post_Meta( $post_id,$prev_value );

PHP教程参数:

PHP教程$post_id

PHP教程(整数)(必需)更新自定义字段文章的 ID.

PHP教程认值:None

PHP教程$Meta_key

PHP教程(字符串)(必需)更新的自定义字段名称.

PHP教程认值:None

PHP教程$Meta_value

PHP教程(混合)(必需)更新的自定义字段的值.

PHP教程认值:None

PHP教程$prev_value

PHP教程(混合)(可选)此参数只有在一篇文章有多个相同名称自定义字段时才有用.如果留空,则更新所有同名的字段,不然则更新和此参数值相同的值的字段.

PHP教程认值:空字符串

PHP教程获取字段

PHP教程获取字段可以使用 get_post_meta() 函数

PHP教程
get_post_meta( $post_id,$key,$single );

PHP教程参数:

PHP教程$post_id

PHP教程(整数)(必需)要获取字段文章 ID,如果在循环中,可以使用 get_the_ID() 来设置.

PHP教程认值:None

PHP教程$key

PHP教程(字符串)(可选)要获取的字段的名称.

PHP教程认值:None

PHP教程$single

PHP教程(布尔)(可选)如果为 True 则返回一个字符串;如果为 False 则返回数组,且相同键值的自定义字段的值会依照添加顺序组合成一个序列数组.

PHP教程认值:False

PHP教程例子

PHP教程下边是一个浏览统计的简单例子:

PHP教程
function Bing_statistics_visitors( $cache = false ){
  if( !is_singular() ) return;
  global $post;
  $id = $post->ID;
  if( get_post( $id )->post_status != 'publish' ) return;
  $post_views = (int) get_post_meta( $id,'views',true );
  update_post_Meta( $id,( $post_views + 1 ) ) || add_post_Meta( $id,1,true );
}
add_action( 'wp_head','Bing_statistics_visitors' );
获取计数:
PHP教程
function Bing_get_views(){
  global $post;
  $views = number_format( (int) get_post_meta( $post->ID,true ) );
  return $views;
}

PHP教程不可见的自定义字段
虽然在数据库里存在很多 wordpress 本身创建的自定义字段,但是在文章编辑器的 “自定义栏目” 里却并没有显示(没有 “自定义栏目” 板块请在右上角的 “显示选项” 开启),比如特色图像、自定义页面模板和评论是否开启等等.

PHP教程如果仔细观察,会发现这些自定义字段的名字都是以下划线 “_” 开头的,所以说,以下划线 “_” 开头的自定义字段并不会显示用户,the_Meta() 函数也不会输出,对用户来说是暗藏的.

PHP教程20151225143222855.png (827×410)

PHP教程利用这个特性,我们可以把不想让用户随便修改的字段、会让用户感到困惑的字段,好比已经提供设置界面的设置选项、缓存数据等等,以免出现错误.

PHP教程下边是一个小例子:

PHP教程
add_post_Meta( get_the_ID(),'_time_diff',time() );

PHP教程另外,如果自界说字段储存的内容是数组即使名字前边不是下划线 “_” 也不会显示.

wordpress中编写自定义存储字段的相关PHP函数解析》是否对您有启发,欢迎查看更多与《wordpress中编写自定义存储字段的相关PHP函数解析》相关教程,学精学透。编程之家 jb51.cc为您提供精彩教程。

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...