宝哥软件园

WordPress中与编译自定义存储字段相关的PHP函数分析

编辑:宝哥软件园 来源:互联网 时间:2021-09-19

WordPress的自定义字段是文章的元信息。通过使用该功能,可以扩展文章的功能。是学习WordPress插件开发和主题开发的必备知识,方便为文章存储一些额外的自定义内容。

自定义字段不仅被插件开发者使用,WordPress的特色图片、自定义页面模板等功能的信息也以自定义字段的形式存储。

在文章编辑器界面的“自定义列”部分,可以管理除了名称以“_”开头的字段以外的字段(如果没有“自定义列”部分,请在右上角的“显示选项”中打开),所以这里无法管理WordPress使用的很多自定义字段。存储原理

自定义字段非常灵活。首先说一下它的存储原理,为什么这么灵活。在数据库中,用于存储文章的wp _ posts表单只有20个默认项目用于存储必要的文章信息。

20151225143034327.png  (332620)

存储自定义字段的wp_postmeta表只有四项,即meta_id(自定义字段的id)、post_id(自定义字段所属的文章的ID)、meta_key(自定义字段的名称)和meta_value(自定义字段的值)。一般我们只需要关注meta_key和meta_value。

正因为如此,每篇文章都可以有同名但不同值的自定义字段,并且可以有无限个自定义字段。任何插件和主题都可以使用自定义字段来扩展文章信息。

文章中自定义字段的名称可以重复。

添加字段

自定义字段可以在文章编辑页面操作,但本文主要写开发。

20151225143103462.png  (832428)

要添加自定义字段,可以使用add_post_meta()函数:

add_post_meta($post_id,$meta_key,$meta_value,$ unique);参数:

$post_id

(整数)必须添加自定义字段的项目的标识。

默认值:无。

$meta_key

(字符串)(必需)自定义字段的名称。

默认值:无。

$meta_value

(混合)(必需)自定义字段值。

默认值:无。

$独特

(布尔值)(可选)如果已经存在同名字段,是否重复添加。True允许;不允许假。

默认值:假。

更新字段

要更新字段的值,可以使用update_post_meta()函数:

update_post_meta($post_id,$meta_key,$meta_value,$ prev _ value);参数:

$post_id

(整数)(必须)更新自定义字段中文章的标识。

默认值:无。

$meta_key

(字符串)必须更新的自定义字段的名称。

默认值:无。

$meta_value

必须更新的自定义字段的(混合)值。

默认值:无。

$prev_value

(混合)(可选)此参数仅在项目有多个同名自定义字段时有用。如果留空,将更新所有同名字段;否则,与此参数值具有相同值的字段将被更新。

默认值:空字符串。

获取字段

获取字段可以使用get_post_meta()函数:

get_post_meta($post_id,$key,$ single);参数:

$post_id

(整数)(必选)获取字段的文章ID,如果在循环中,可以使用get_the_ID()来设置。

默认值:无。

$key

(字符串)(可选)要获取的字段的名称。

默认值:无。

$single

(布尔值)(可选)如果为真,则返回字符串;如果为False,则返回一个数组,具有相同键值的自定义字段的值根据添加顺序组合成一个序列数组。

默认值:假。

例子

下面是浏览统计数据的一个简单示例:

函数Bing _ statistics _ visitors($ cache=false){ if(!is _单数() )返回;全球$ post$ ID=$ post-ID;if(get_post($id )-post_status!='publish ')返回;$ post _ view=(int)get _ post _ meta($ id,' view ',true);update_post_meta($id,' view ',($ post _ view 1))| | add _ post _ meta($ id,' view ',1,true);}add_action('wp_head ',' Bing _ statistics _ visitors ');get count:function bing _ get _ view(){ global $ post;$ view=number _ format((int)get _ post _ meta($ post-ID,' view ',true));返回$ views}不可见的自定义字段虽然数据库中有很多WordPress创建的自定义字段,但是并没有显示在文章编辑器的“自定义栏”中(如果没有“自定义栏”部分,请在右上角的“显示选项”中打开),比如特色图片、自定义页面模板、评论是否打开。

如果仔细观察,会发现这些自定义字段的名称都以下划线“_”开头,所以以下划线“_”开头的自定义字段不会显示给用户,也不会输出_meta()函数,对用户来说是隐藏的。

20151225143222855.png  (827410)

有了这个功能,我们就可以把不希望用户随便修改的字段和会混淆用户的字段放进去,比如设置界面的设置选项,缓存数据等。以避免错误。

这里有一个小例子:

add_post_meta(get_the_ID(),' _time_diff ',time());此外,如果存储在自定义字段中的内容是数组,则即使名称前面没有下划线“_”,也不会显示该内容。

更多资讯
游戏推荐
更多+