get_posts - ruft alle Beiträge nach Autoren-ID ab


11

Ich möchte alle Beiträge nach bestimmter Autoren-ID (aktueller Benutzer) erhalten. Später möchte ich den ersten Beitrag dieses Benutzers (ASC) auswählen. Ich denke, ich verwende nicht die richtigen Argumente in get_posts, oder? $ current_user_posts enthält immer ein Array mit allen Blog-Posts in mehreren verschiedenen WP_Post-Objekten.

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 () ist seit Version 4.5.0 veraltet. Ersetzen durch:$current_user = wp_get_current_user();
Christian Lescuyer

Antworten:


19

Ich bin ein bisschen verwirrt. Wenn Sie nur ein Element aus dem Posts-Array abrufen möchten, können Sie es folgendermaßen abrufen:

  • reset ($ current_user_posts) - erster Beitrag
  • end ($ current_user_posts) - lat post

Wenn Sie jedoch nur einen Beitrag mit dem erhalten möchten, get_posts()können Sie das posts_per_pageArgument verwenden, um die Ergebnisse einzuschränken.

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

Weitere Informationen zu Parametern finden Sie auf der Seite WP Query Class Reference (verwendet get_posts()dieselben Parameter wie WP Query).


1
Ihre $ args funktionieren gut, aber ich bekomme Ihre erste Antwort nicht. Verwendung von $ current_user_posts. Könntest du mir zeigen?
irgendwie

Wenn Sie den Titel des ersten Beitrags drucken möchten, sollten Sie Folgendes verwenden : echo $current_user_posts[0]['title']. Der 'Titel' ist der Schlüssel für das, was Sie vom Array benötigen. Die vollständige Liste der Schlüssel, mit denen Sie arbeiten können print_r(array_keys($current_user_posts)). "Wie man es benutzt" hängt davon ab, was Sie damit machen wollen.
Marin Bînzari


Sie können die ID erhalten mit: $ current_user_posts [0] ['ID']
Marin Bînzari

@kindo, hat es geholfen? Ist das die Antwort, die du brauchst?
Marin Bînzari

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

und schleife einfach die aktuellen Benutzerbeiträge


Können Sie auch erklären, was der obige Code zusätzlich zum Posten des Codes tut, wird es hilfreich sein, danke
bravokeyl

1

seine Arbeit von (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>' );
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.