web-dev-qa-db-fra.com

Obtenir l'identifiant de la publication actuelle sans passer par le shortcode

Est-il possible d’obtenir l’ID de la publication en cours sans passer en paramètre shortcode? Comme [related-post], je souhaite connaître l'identifiant de la publication dans laquelle sera utilisé ce shortcode.

add_shortcode( 'related-article', 'related_article_title' );
function related_article_title( $atts ) {
    $post_id = get_the_ID();
    echo $post_id; 
    ob_start();
    $query = new WP_Query( array(
        'post_type' => 'post',
        'posts_per_page' => 1,
        'order' => 'DESC',
        )
    );
    if ( $query->have_posts() ) {   ?>
    <div class="menu-row">
        <?php while ( $query->have_posts() ) : $query->the_post(); ?>
            Leggi anche: <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        <?php endwhile; wp_reset_postdata(); ?>
    </div>
    <?php $myvariable = ob_get_clean();
    return $myvariable;
}
}
5
Gorakh Shrestha
add_shortcode( 'related-article', 'related_article_title' );
function related_article_title( $atts ) {
    global $post;
    echo $post->ID; // currently viewing post id
    ob_start();
    $query = new WP_Query( array(
        'post_type' => 'post',
        'posts_per_page' => 1,
        'order' => 'DESC',
        )
    );
    if ( $query->have_posts() ) {   ?>
    <div class="menu-row">
        <?php while ( $query->have_posts() ) : $query->the_post(); ?>
            Leggi anche: <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        <?php endwhile; wp_reset_postdata(); ?>
    </div>
    <?php $myvariable = ob_get_clean();
    return $myvariable;
}
}
3
Vasim Shaikh

Tout comme @ gorakh-shrestha essayait, utiliser global $post puis $post->ID est un bon moyen de procéder, même à l'intérieur d'un shortcode

2
Erenor Paz