web-dev-qa-db-fra.com

Comment puis-je obtenir l'ID de publication à partir d'une boucle WP_Query?

J'ai une boucle WP_Query qui obtient les messages d'un certain type. Ces publications ont une méta de publication personnalisée; je dois donc pouvoir obtenir l'ID de la publication sans la reprendre pour pouvoir afficher la méta de cette publication. Comment puis-je obtenir l'ID de la publication sans lui faire écho? Ceci est mon code:

$menu_id = get_the_id();
        $category_args = array(
            'post_type' => 'category',
            'post_parent' => $menu_id
        );

        $menu_categories = new WP_Query($category_args);
        while($menu_categories->have_posts()) : $menu_categories->the_post(); 
            $category_id = ??????; ?>
        <h4><?php echo the_title(); ?></h4><?php 

            $dish_args = array(
                'post_type' => 'dish',
                'post_parent' => $category_id
            );
            $category_dishes = new WP_Query($dish_args);
            while($category_dishes->have_posts()) : $category_dishes->the_post(); 
                $dish_meta = get_post_meta(???????);?>
            <h6><?php echo the_title(); ?> - <?php echo $dish_meta[0]['price']; ?></h6>
            <p><?php echo the_content(); ?></p><?php
            endwhile;
        endwhile; 
3
ShoeLace1291

get_the_ID() peut (seulement) être utilisé dans la boucle.

Ceci récupère la ID de la publication actuelle gérée par la boucle.


Vous pouvez l'utiliser seul si vous n'en avez besoin qu'une seule fois:

$dish_meta = get_post_meta( get_the_ID(), 'dish_meta', true );

Vous pouvez également la stocker en tant que variable si vous en avez besoin plusieurs fois:

$post_id = get_the_ID();

$dish_meta = get_post_meta( $post_id, 'dish_meta', true );

$drink_meta = get_post_meta( $post_id, 'drink_meta', true );

print_r( $post_id );

//etc

Référence: get_the_ID ()

11
N00b

la fonction get_the_ID () vous donnera l'identifiant de la publication ..,

            $args = array(

                          's' => $_POST['search_text'],
                          'posts_per_page' => -1,
                          'post_type' => 'address'

                     );

            $query = new WP_Query( $args );

            if ( $query->have_posts() ) {

               while ( $query->have_posts() ) {

                    $query->the_post();

                    $address_post_id = get_the_ID() ;
               }
            }
0
YoJey Thilipan