web-dev-qa-db-fra.com

Meta tags en shortcode

La vignette et le titre apparaissent comme il se doit, mais la méta de la publication apparaît en haut de la page. Quel est le code correct pour récupérer les métadonnées de la publication?

function evasmat_posts_shortcode(){
    $q = new WP_Query(
        array( 'orderby' => 'date', 'posts_per_page' => '4')
    );

    $list = '<div class="cards">';

    while($q->have_posts()) : $q->the_post();

        $list .= '<div class="card">' .  get_the_post_thumbnail() . '<h2 class="entry-title-index"><a href="'.get_permalink().'">'.get_the_title() .'</a></h2>'  .'<div class="entry-meta">' . get_post_meta (evasmat_posted_on() ) .'</div></div>';


    endwhile;

    wp_reset_query();

    return $list . '</div>';

}

add_shortcode('recent-posts', 'evasmat_posts_shortcode');
2
Eva

evasmat_posted_on() étant une fonction de votre thème, vous n'avez pas besoin d'utiliser get_post_meta pour obtenir la date. Vous pouvez appeler la fonction directement pour:

function evasmat_posts_shortcode(){
    $q = new WP_Query(
        array( 'orderby' => 'date', 'posts_per_page' => '4')
    );

    $list = '<div class="cards">';

    while($q->have_posts()) : $q->the_post();

        $list .= '<div class="card">' .  get_the_post_thumbnail() . '<h2 class="entry-title-index"><a href="'.get_permalink().'">'.get_the_title() .'</a></h2>'  .'<div class="entry-meta">' . evasmat_posted_on() .'</div></div>';


    endwhile;

    wp_reset_query();

    return $list . '</div>';

}

add_shortcode('recent-posts', 'evasmat_posts_shortcode');
1
input