web-dev-qa-db-ja.com

概要からロールを除外する

最後の投稿画像を背景にして、リスト内のすべてのユーザーを表示する新しいWebサイトで古いコードを再利用しています。これはすべてうまくいきます(get_users_of_blogは廃止予定ですが、get_usersを使用するとコードが壊れます)。

<?php
$blogusers = get_users_of_blog();
if ($blogusers) { 
  foreach ($blogusers as $bloguser) { 
    $args = array( 
      'author' => $bloguser->user_id, 
      'showposts' => 1,
      'caller_get_posts' => 1
    ); 
    $my_query = new WP_Query($args); 

    if( $my_query->have_posts() ) { 
      while ($my_query->have_posts()) : $my_query->the_post(); ?>  
        ...........
      <?php endwhile; 
    } 
  } 
} 
?> 

重要なのは、名前順に並べることができず、リストから作者を除外することができないということです。私はこれをやってみました

$blogusers = get_users_of_blog(array('role' => 'editors', 'orderby => ID));

しかし、これはやっかいなことではありません。誰でも?ありがとうございました!

1
AKNL

はい、get_users_of_blog()関数は推奨されていません。 get_users() を使用した後でコードが壊れるのは->user_idの部分です。代わりに->IDを使用してください。

$blogusers = get_users();

if ($blogusers) { 

  foreach ($blogusers as $bloguser) { 

    $args = array( 
      'author'           => $bloguser->ID, 
      'showposts'        => 1,
    ); 

    $my_query = new WP_Query($args); 

    if( $my_query->have_posts() ) { 
      while ($my_query->have_posts()) : $my_query->the_post(); ?>  
        ...........
      <?php endwhile; 
    } 

  } 

} 

マルチサイトを利用している場合は、blog_idget_users引数をあなたのブログのIDに設定する必要があります。

さて、著者を除外することについて。 WP_Query()作者パラメータ を見ると、作者IDの配列を受け付けるauthor__not_in引数があります。そのため、クエリからtestロールを除外するには、get_users()role__inまたはrole引数をtestに設定してから、その結果をWP_Query()で使用します。あなたは正確な詳細を提供しなかったので私はあなたが何を見ているのか正確にはわかりません、しかしこれらはトリックをするべきです。

2
Jack Johansson