我们如何在没有POST ID的情况下获取POST_META

时间:2013-04-08 作者:Adi

我想得到我的一切posts-meta, 但基于key. 例如,获取post meta的主要查询是

 <?php $meta_values = get_post_meta($post_id, $key, $single); ?> 
现在我想得到这个post-meta 基于key 只有我当前要获取帖子元的查询是

<?php echo get_post_meta($post->ID, \'custom_tags\'.$userID, true); ?>
我想删除$post->ID 从这个查询中是否有任何方法可以得到这个。谢谢

2 个回复
SO网友:Bainternet

$post->ID 是什么让元值在所有具有相同元键的帖子中区别开来。

所以如果你想速记get_post_meta 呼叫当前帖子您可以执行以下操作:

function get_cuurent_post_meta($key){
    global $post;
    return get_post_meta($post->ID,$key,true);
}
你可以这样称呼它:

echo get_cuurent_post_meta(\'custom_tags\'.$userID);
现在,如果不是当前帖子,而是任何帖子,您可以这样做:

function get_meta_value_by_key($meta_key,$limit = 1){
    global $wpdb;
    if (1 == $limit)
        return $value = $wpdb->get_var( $wpdb->prepare("SELECT meta_value FROM $wpdb->postmeta WHERE meta_key = %s LIMIT 1" , $meta_key) );
    else
        return $value = $wpdb->get_results( $wpdb->prepare("SELECT meta_value FROM $wpdb->postmeta WHERE meta_key = %s LIMIT %d" , $meta_key,$limit) );
}
要获取该键的第一个元值,只需如下调用:

echo get_meta_value_by_key(\'custom_tags\'.$userID);
要获取该键的所有元值,请使用$limit 参数ex:

$post_meta_array = get_meta_value_by_key(\'custom_tags\'.$userID, 999);

SO网友:RRikesh

您可以查询postmeta 表直接使用以下内容:

global $wpdb;

$metas = $wpdb->get_results( 
  $wpdb->prepare("SELECT meta_value FROM $wpdb->postmeta where meta_key = %s", \'add_your_key_here\')
 );

echo \'<pre>\';
print_r( $metas );
echo \'</pre>\';
UPDATE在你拿到$metas, 在循环中传递它们以显示值:

if( count($metas) > 0 ){ #check if we got any results
  foreach ($metas as $meta){
    echo $meta->meta_value . "<br />";
  }
}

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在