WordPress开发中的get_post_custom()函数使用解析

yipeiwu_com7年前PHP代码库

同get_post_meta()一样,用于返回文章的自定义字段值得一个函数,只不过get_post_custom()函数使用起来更简单,如果在循环中使用你甚至不需要设置任何参数。

其实get_post_custom()函数的基础实现与get_post_meta()大同小异~

get_post_custom()使用

get_post_custom($postid);

只接受一个参数
$postid文章id;

实例演示

 if (have_posts()) :
 
 while (have_posts()) : the_post(); 
  var_dump(get_post_custom());
 
 endwhile; 
 
 endif;

输出的结果如下:(如果如下字段有设置的话)

array(4) {
[“_edit_last”]=>
array(1) {
[0]=>
string(1) “1”
}
[“_edit_lock”]=>
array(1) {
[0]=>
string(12) “1342451729:1”
}
[“_thumbnail_id”]=>
array(1) {
[0]=>
string(3) “228”
}
[“xzmeta”]=>
array(2) {
[0]=>
string(3) “xz1”
[1]=>
string(3) “xz2”
}
}

get_post_custom_values和get_post_custom_keys

因为自定义字段分为,键值(keys) 和 自定义字段值(values),有些时候我们需要单独获取这两个值,所以 WordPress 中就派生出了get_post_custom_values和get_post_custom_keys两个函数,至于意义嘛,我还真没有发现出有多大意义,除了在批量删除自定义字段的时候有一定用除外,我还真没想出什么地方能用到,也许在一个浩瀚的 CMS主题中会有着非常剧组轻重的意义。

之前写到了get_post_custom函数和get_post_meta函数,私下里想着,反正自定义字段的相关函数也不多,所以就顺手整理了一下,索性把自定义字段相关的函数都写一下,当然不包括函数的一些基础实现代码。
get_post_custom_values用于获取当前文章的指定自定义字段的值,并以数组形式返回。

 while (have_posts()) : the_post(); 
  var_dump(get_post_custom_values(‘xzmeta'));
 endwhile; 
 
 endif;

大致会返回如下结果

(如果自定义字段有设置)

array(2) {
[0]=>
string(3) “xz1”
[1]=>
string(3) “xz2”
}

get_post_custom_keys用于获取当前文章所有的自定义字段的键值。

 if (have_posts()) :
 while (have_posts()) : the_post(); 
  var_dump(get_post_custom_keys());
 endwhile; 
 endif;

大致会获得 以下结果:
(如果自定义字段有设置)

array(4) {
[0]=>
string(10) “_edit_last”
[1]=>
string(10) “_edit_lock”
[2]=>
string(13) “_thumbnail_id”
[3]=>
string(6) “xzmeta”
}

相关文章

巧用php中的array_filter()函数去掉多维空值的代码分享

其实我们可以利用array_filter函数轻松去掉多维空值,而数组的下标没有改变,下面是举例用法: <?php $array = array( 0 => '滔哥', 1 =...

探讨fckeditor在Php中的配置详解

前言:  FCKeidtor是个国外的多语言编辑器,你可以对其配置文件进行简单修改使之支持目前常用Web开发语言的应用,下面我就讲讲FCKeditor的最新版本2.4.2在php的具体配...

PHP实现数组的笛卡尔积运算示例

本文实例讲述了PHP实现数组的笛卡尔积运算。分享给大家供大家参考,具体如下: 数组的笛卡尔积在实际中还是挺有用处的,比如计算商品的规格时就经常用到,下面写一种实现方式,如下代码 $a...

PHP面向对象程序设计重载(overloading)操作详解

本文实例讲述了PHP面向对象程序设计重载(overloading)操作。分享给大家供大家参考,具体如下: 重载 PHP中的”重载”与其它绝大多数面向对象语言不同,只是他们都是用的相同的名...

php include加载文件两种方式效率比较

先来说说两种方式: 1)定义一个字符串变量,里面保存要加载的文件列表。然后foreach加载。 复制代码 代码如下: $a = '/a.class.php;/Util/b.class.p...