WordPress 常用函数 / get_post_meta

这个函数获取指定日志的指定 key 的自定义字段,如果要获取指定日志的所有自定义字段,使用get_post_custom()

用法

<?php get_post_meta($post_id, $key, $single); ?>

参数

$post_id

(integer) (required) 要获取自定义字段的日志 ID。

Default: None

$key

  1. (string) (required) 要获取自定义字段的名称(key)。
  2. Default: None

$single

(boolean) (optional) 如果设置为 true,返回单个值。如果 false 或者没设置,则返回自定义字段的数组。

Default: false

返回值

(mixed)

这个函数返回值比较复杂:

如果只设置了 $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; ?>

修改记录

Since 1.5.0

源文件

wp-includes/post.php

相关函数

add_post_meta(), delete_post_meta(), delete_post_meta_by_key(), get_post_custom(),get_post_custom_keys(), get_post_custom_values(), get_post_meta(), update_post_meta(),

 

 

预见

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen: