web-dev-qa-db-fra.com

get_post_title ne fonctionne pas sur la page d'accueil

Mon shortcode simple fonctionne sur toutes les pages, à l'exception de la page d'accueil (statique) dans Wordpress 2016 Theme. Tout le contenu que je peux lire à l'exception du titre de l'article. Il revient vide. Je veux afficher les messages sur la page d'accueil avec les titres. Tout fonctionne. Cependant, le titre est vide. Merci,

//Recent post shortcode single
function mfbs_recent_post1x1($atts){
    $q = new WP_Query(
        array( 'orderby' => 'date', 'posts_per_page' => '4')
    );
    $list = '<div class="row mfbs1x1">';
    while($q->have_posts()) : $q->the_post();
        $title = $q->the_post()->post_title;
        $list .= '<div class="small-12 medium-12 large-12 columns">';
        $list .= $title;
        $list .= '<a href="' . get_permalink() . '">' ;
        $list .= get_the_post_thumbnail($the_post->ID , 'medium', array( 'class' =>     'alignleft' ) );
        $list .= '<br>' . get_the_title() .  '</a>' . '<br>' . get_the_excerpt() . '</div>';
    endwhile;
    wp_reset_query();
    return $list . '</div>';
}
add_shortcode('foodrecentpost1x1', 'mfbs_recent_post1x1');
1
jetpilot

Vous utilisez une requête dans une requête à ce stade. Pour cette raison, vous devez définir global $post en haut de votre fichier de fonctions afin qu'il ait quelque chose à affecter dans the_post(). Maintenant que vous avez un objet $post, vous pouvez remplacer tout votre code de test par $post->attribute:

//Recent post shortcode single
function mfbs_recent_post1x1($atts){
    global $post;
    $q = new WP_Query(
        array( 'orderby' => 'date', 'posts_per_page' => '4')
    );
    $list = '<div class="row mfbs1x1">';
    while($q->have_posts()) : $q->the_post();
        $title = $post->post_title;
        $list .= '<div class="small-12 medium-12 large-12 columns">';
        $list .= $title;
        $list .= '<a href="' . get_permalink() . '">' ;
        $list .= get_the_post_thumbnail($post->ID , 'medium', array( 'class' =>     'alignleft' ) );
        $list .= '<br>' . get_the_title() .  '</a>' . '<br>' . get_the_excerpt() . '</div>';
    endwhile;
    wp_reset_query();
    return $list . '</div>';
}
add_shortcode('foodrecentpost1x1', 'mfbs_recent_post1x1');
0
Howdy_McGee