1

ページにすべてのユーザーのリストを表示しようとしています。名前、電子メールアドレス、WebサイトのURL、およびいくつかのカスタム作成者メタフィールドを表示する必要があります。

私は次のクエリから始めました:

<?php
//displays all users with their avatar and their posts (titles)
$blogusers = get_users_of_blog();
if ($blogusers) {
  foreach ($blogusers as $bloguser) {
    $user = get_userdata($bloguser->user_id);
    echo get_avatar( $user->ID, 46 );
    echo '<div><p>User ID ' . $user->ID . ' ' 
                            . $user->user_firstname . ' ' 
                            . $user->user_lastname . ' ' 
                            . $user->user_url . ' ' 
                            . $user->user_description 
             . '</p></div>';
    $args=array(
      'author' => $user->ID,
      'post_type' => 'post',
      'post_status' => 'publish',
      'posts_per_page' => -1,
      'caller_get_posts'=> 1
    );

  }
}
?>

これにより、基本的なユーザー情報が表示されますが、カスタム作成者のメタフィールドは表示されません。私はこれに微調整しました:

<?php
//displays all users with their avatar and their posts (titles)
$blogusers = get_users_of_blog();
if ($blogusers) {
  foreach ($blogusers as $bloguser) {
    $user = get_userdata($bloguser->user_id);
    echo get_avatar( $user->ID, 46 );
    echo '<div><p>User ID ' . $user->ID . ' ' 
                            . $user->user_firstname . ' ' 
                            . $user->user_lastname . ' ' 
                            . $user->user_url . ' ' 
                            . $user->user_description 
           . '</p>'; ?>
        <?php the_author_meta('position', $user);?>
        <?php the_author_meta('telephone');?>
        <?php the_author_meta('linkedin');?>
        <?php the_author_meta('vcard');?>
    <?php echo '</div>';?><?php 
    $args=array(
      'author' => $user->ID,
      'post_type' => 'post',
      'post_status' => 'publish',
      'posts_per_page' => -1,
      'caller_get_posts'=> 1
    );

  }
}
?>

これは最初のユーザーに対しては機能しますが、2番目以降のユーザーについては、最初のユーザーのカスタム作成者メタデータが表示されます。

各ユーザーが独自のカスタム作成者メタデータを表示するようにさらに変更する方法を理解するために1時間費やしましたが、機能させることができません。

これはどのように変更できますか?

また、特定のユーザーIDを除外できるようにする必要があります。「exclude」を追加して除外したいIDを入力しようとしましたが、機能しませんでした。

助けてください

4

3 に答える 3

1

関数を使用して特定のユーザーのメタを取得するthe_author_meta()には、ユーザー ID を渡す必要があります。

php the_author_meta('telephone' 25); // will get the telephone field's value of user with id 25

したがって、コードで使用できます

<?php the_author_meta('position', $user->ID);?><?php the_author_meta('telephone', $user->ID);?><?php the_author_meta('linkedin', $user->ID);?><?php the_author_meta('vcard', $user->ID);?>

in_array一部のユーザーを除外するには、関数を使用してユーザー ID を確認できます。

$excluded_users = array(10, 11, 12); // User Ids to exclude
foreach ($blogusers as $bloguser) {
    if (!in_array($bloguser->user_id, $excluded_users))
    {
        $user = get_userdata($bloguser->user_id);
        echo get_avatar( $user->ID, 46 );
        //...
    }
}

参照: ブログ機能のユーザーの取得は廃止され、the_author_metaについての詳細。

于 2012-08-30T19:14:50.717 に答える
0

the_author_meta( $key);、作成者に関するメタ情報を常に取得します。任意のユーザーからのメタが必要な場合は、id として使用get_user_meta($user_id, $key, $single);および使用する必要があります。$user->ID

詳細については、Codexを参照してください。

于 2012-08-30T19:13:27.300 に答える
0

それを試してみてください

echo get_the_author_meta('address', $user->ID);

URLを見る

https://wordpress.stackexchange.com/questions/10091/author-custom-fields-post-meta-the-code

于 2012-08-30T19:16:11.237 に答える