获取元值和关联的用户元

时间:2014-04-12 15:34:34

标签: php wordpress

我正在开发一个网站,用户可以使用与之关联的自定义字段发布帖子。我想显示所有帖子的元值,并包括哪个用户创建了元值来自的帖子。

到目前为止,我已经能够显示所有帖子中的所有元值。我的代码:

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; 
 }

如何检索每个元值的用户元数据(例如用户名)?

1 个答案:

答案 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 );
}