web-dev-qa-db-fra.com

Boucle à travers l'objet WP_Post

J'ai un tableau de publication WordPress personnalisé qui ressemble à ceci:

Array ( 
[1] => Array ( 
    [sno] => 1 
    [post] => WP_Post Object ( 
        [ID] => 1452 
        [post_author] => 12 
        [post_date] => 2017-06-04 18:09:47 
        [post_date_gmt] => 2017-06-05 01:09:47 
        [post_content] => Content here 
        [post_title] => Title here 
        [post_excerpt] => 
        [post_status] => publish 
        [comment_status] => open 
        [ping_status] => closed 
        [post_password] => 
        [post_name] => title-here 
        [to_ping] => 
        [pinged] => 
        [post_modified] => 2017-07-14 09:35:35 
        [post_modified_gmt] => 2017-07-14 16:35:35 
        [post_content_filtered] => 
        [post_parent] => 0 
        [guid] => https://urlhere.com&p=1452 
        [menu_order] => 0 
        [post_type] => sfwd-lessons 
        [post_mime_type] => 
        [comment_count] => 0 
        [filter] => raw 
    ) 
    [permalink] => https://urlhere.com/ 
    [sub_title] => 
    [status] => notcompleted 
    [sample] => is_not_sample 
    [lesson_access_from] => 
    )
)   

J'essaie de parcourir les posts de ce tableau avec cette logique. Si 'status' est égal à 'terminé', le titre de la sortie et le lien du post. Je pense qu'une boucle foreach de base devrait fonctionner, mais elle ne semble pas fonctionner. Le tableau est créé comme ceci:

$lessons = learndash_get_course_lessons_list( $course_id );

Ma boucle foreach ressemble à ceci:

foreach ($lessons as $key => $lesson) {
  echo $lesson["post_title"];
}

Cela ne retourne rien cependant. Que dois-je faire pour parcourir les données du tableau?

1
Andrew

En vous basant sur ce que vous avez dit à propos de la publication d'un message, vous pouvez vérifier si son statut est completed et si c'est le cas, pointez sur le titre:

foreach ( $lessons as $lesson ){
    if( $lesson['status'] == 'completed' ){
        echo $lesson['post']->post_title;
    }
}
2
Jack Johansson