get_posts-著者IDですべての投稿を取得します


11

特定の作成者ID(現在のユーザー)のすべての投稿を取得したい。後で、このユーザー(ASC)が作成した最初の投稿を選択します。get_postsで正しい引数を使用していないと思いますか?$ current_user_postsには常に、複数の異なるWP_Postオブジェクト内のすべてのブログ投稿の配列が含まれています。

global $current_user;
get_currentuserinfo();                      

$args = array(
    'author'        =>  $current_user->ID, // I could also use $user_ID, right?
    'orderby'       =>  'post_date',
    'order'         =>  'ASC' 
    );

// get his posts 'ASC'
$current_user_posts = get_posts( $args );

1
get_currentuserinfo()は、バージョン4.5.0以降では非推奨です。交換してください:$current_user = wp_get_current_user();
クリスチャンLescuyer

回答:


19

少し混乱しています。あなたがposts配列から要素だけを取得したい場合は、次のようにそれを取得することができます:

  • reset($ current_user_posts)-最初の投稿
  • end($ current_user_posts)-緯度経度の投稿

ただし、投稿を1つだけ取得したい場合get_posts()は、posts_per_page引数を使用して結果を制限できます。

$args = array(
    'author'        =>  $current_user->ID,
    'orderby'       =>  'post_date',
    'order'         =>  'ASC',
    'posts_per_page' => 1
    );

WPクエリクラスのリファレンスページで取得できるパラメーターの詳細(get_posts()WPクエリと同じパラメーターを取ります)。


1
$ argsは正常に動作しますが、最初の答えは得られません。$ current_user_postsの使用方法。見せてもらえますか?
kindo

最初の投稿のタイトルを印刷したい場合は、以下を使用してくださいecho $current_user_posts[0]['title']。「タイトル」は、配列から必要なもののキーです。で取得できるキーの完全なリストprint_r(array_keys($current_user_posts))。「使い方」は何をしたいかによります。
マリンベンザリ2013

著者の最初の投稿のIDを取得する
kindo '12

$ current_user_posts [0] ['ID']
MarinBînzari

@kindo、それは助けになりましたか?これはあなたが必要とした答えですか?
マリンベンザリ2013

6
global $current_user;                     

$args = array(
  'author'        =>  $current_user->ID, 
  'orderby'       =>  'post_date',
  'order'         =>  'ASC',
  'posts_per_page' => -1 // no limit
);


$current_user_posts = get_posts( $args );
$total = count($current_user_posts);

現在のユーザー投稿をループするだけです


上記のコードがコードの投稿に加えて何をするかについて説明してもらえますか、それは役に立ちます。ありがとう
bravokeyl

1

(wp4.9.7)によるその作業

 $user_id = get_current_user_id();
 $args=array(
 'post_type' => 'POSTTYPE',
 'post_status' => 'publish',
 'posts_per_page' => 1,
 'author' => $user_id
  );

$current_user_posts = get_posts( $args );
$total = count($current_user_posts);
wp_die( '<pre>' .  $total . '</pre>' );
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.