get_post_meta:获取自定义字段
这个函数获取指定日志的指定 key 的自定义字段,如果要获取指定日志的所有自定义字段,使用 get_post_custom()。
WordPress 中的自定义字段是很多主题会用到的,get_post_meta 函数是用来取出自定义字段的值所设立的一个函数,该函数普遍用于主题的一些个性表现中,本文主要会讲解一下该函数的使用及一些实例。
用法
<?php $meta_values = get_post_meta($post_id, $key, $single); ?>
参数解释
$post_id (整数) (必须的)包含此meta文章的ID;如果在循环中,你可以用 get_the_ID()来设置 |
$key (字符串) (必须的) 此meta的名称 |
$single (布尔型) (可选) Default: false 如果设为true, 则返回单个的meta的值; 如果设为false, 则返回一个数组字符串型 |
返回值
这个函数返回值比较复杂:
- 如果只设置了 $post_id 的值,返回该日志的所有自定义字段的关联数组。
- 如果 $single 设置为 false 或者留空,返回指定 key 的所有值的一个数组。
- 如果 $single 设置为 true,返回指定 key 的第一个值(并且不是在一个数组中)。
- 如果没有东西可以返回的时候,返回空数组,除非 $single 设置为 true ,则返回空字符串。
- 还有一种特殊情况就是,自定义字段的值是序列化的数组,这样 $single 设置为 true,则返回未序列化的数组,而 $single 设置为 false 或者留空,则你会获取一个数组,其中的一个值是序列化之后的字符串,你需要使用 maybe_unserialize 函数将其解析成数组。
实例
获取所有 key 的 meta:
<?php $meta = get_post_meta( get_the_ID() ); ?>
获取单个 key 的 meta:
<?php $key_1_values = get_post_meta(76, 'key_1'); ?>
在主循环中获取指定 key 的第一个值
<?php
$key_1_value = get_post_meta($post->ID, 'key_1', true);
// check if the custom field has a value
if($key_1_value != '') {
echo $key_1_value;
}
?>
获取缩略图地址为自定义字段的值
当你在 WordPress 主循环中,你可以使用下面的代码获取名字为“thumb”的自定义字段的值作为缩略图地址。
<?php if ( get_post_meta($post->ID, 'thumb', true) ) : ?>
<a href="<?php the_permalink() ?>" rel="bookmark">
<img class="thumb" src="<?php echo get_post_meta($post->ID, 'thumb', true); ?>" alt="<?php the_title(); ?>" />
</a>
<?php endif; ?>
自定义字段名称为description

在网页文件代码中加入:
get_post_meta($post->ID, “description”, true);
可以返回description标签的值。
相关函数
add_post_meta(),
update_post_meta(),
delete_post_meta(),
还有自定义字段的扩展用法相关的函数。
get_post_custom(),
get_post_custom_values(),
get_post_custom_keys()。
补充:如何添加自定义字段