すべてのposts-meta
を取得したいのですが、key
をベースにしています。たとえば、post-metaを取得するための主なクエリは次のとおりです。
<?php $meta_values = get_post_meta($post_id, $key, $single); ?>
今私はkey
のみに基づいてこのpost-meta
を取得したいです。ポストメタを取得するための私の現在のクエリは
<?php echo get_post_meta($post->ID, 'custom_tags'.$userID, true); ?>
そして、私はこのクエリから$post->ID
を削除したいのですがこれを取得する方法はありますか。ありがとう
$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);
そしてこのキーのすべてのメタ値を取得するには、ex $limit
パラメータを使います。
$post_meta_array = get_meta_value_by_key('custom_tags'.$userID, 999);
以下のようなものを使って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 />";
}
}