我正在开发一个网站,用户可以使用与之关联的自定义字段发布帖子。我想显示所有帖子的元值,并包括哪个用户创建了元值来自的帖子。
到目前为止,我已经能够显示所有帖子中的所有元值。我的代码:
function get_meta_values( $key = '', $type = 'workout', $status = 'publish' ) {
global $wpdb;
if( empty( $key ) )
return;
$r = $wpdb->get_col( $wpdb->prepare( "
SELECT pm.meta_value FROM {$wpdb->postmeta} pm
LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
WHERE pm.meta_key = '%s'
AND p.post_status = '%s'
AND p.post_type = '%s'
", $key, $status, $type ) );
return $r;}
$workout_leader= get_meta_values( '1_rep', 'workout' );
foreach($workout_leader as $value){
echo $value;
}
如何检索每个元值的用户元数据(例如用户名)?
答案 0 :(得分:0)
我从wordpress stackexchange论坛得到了一些帮助,这回答了我的问题。对于任何有兴趣的人,都是代码:
function get_meta_values($ key,$ type ='workout',$ status ='publish'){ 全球$ wpdb;
if ( empty( $key ) )
return;
$r = $wpdb->get_results(
$wpdb->prepare( "
SELECT pm.meta_value, p.post_author FROM {$wpdb->postmeta} pm
LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
WHERE pm.meta_key = '%s'
AND p.post_status = '%s'
AND p.post_type = '%s'",
$key,
$status,
$type
)
);
if ( $r ) {
$user_ids = wp_list_pluck( $r, 'post_author' );
cache_users( $user_ids );
}
return $r;
}
$workout_leader = get_meta_values( '1_rep', 'workout' );
foreach ( $workout_leader as $data ) {
echo $data->meta_value;
echo $data->post_author; // User ID
// Any other user-related data.
echo get_the_author_meta( 'display_name', $data->post_author );
}