L oop через сообщения с детьми и без детей - PullRequest
1 голос
/ 25 февраля 2020

У меня есть этот тип сообщения, через который я хочу l oop. Я должен создать два разных раздела. Вершина работает там, где она проходит через все. Но я хочу исключить родителя, который содержит детей (# 6474), и все, что в этом родителе, в l oop в другой строке.

Что у меня так далеко. Это работает в отношении публикации всех сообщений. Но на данный момент включает всех родителей и детей минус # 6474. Просто хочу, чтобы это показали те, которые являются только родителями.

Попытка выяснить, как приблизиться к созданию другой строки, которая будет показывать только детей в типе записи.


$customersPage_args = array (
    'post_type'     => array( $global_cat ),
    'post_status'   => array( 'publish' ),
    'posts_per_page'  => -1,
    'order'         => 'ASC',
    'orderby'       => 'publish_date',
    'post__not_in' => array(6474) //excluding the ID holding the children
);

$global_cat_query = new WP_Query( $customers_sort ); ?>

<h3 class="h2 display <?php echo $block[className]; ?>"><?php echo $block_heading; ?></h3>
<div class="card-row">
    <div class="card u-pb-0">
        <div class="row">
        <?php // The Loop
        if ( $global_cat_query->have_posts() ) :
            while ( $global_cat_query->have_posts() ) : $global_cat_query->the_post();  ?>
                <div class="col-md-3 col-sm-4 col-6">

                    <a href="<?php echo get_permalink(); ?>">
                        <div class="card card u-mt-0 u-mb-4 align-items-center">
                            <img src="<?php echo get_the_post_thumbnail_url(); ?>" alt="<?php the_title(); ?>" />
                        </div>
                    </a>
                </div>

            <?php endwhile;
        endif;
        // Restore original Post Data
        wp_reset_postdata(); ?>
        </div>
    </div>
</div>


<?php endif; ?>

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Если вы хотите только элементы верхнего уровня, вы можете использовать параметр post_parent. Если вы установите его на 0, он найдет только «родитель» (он же «посты верхнего уровня»):

$customersPage_args = array (
    'post_type'      => array( $global_cat ),
    'post_status'    => array( 'publish' ),
    'posts_per_page' => -1,
    'order'          => 'ASC',
    'orderby'        => 'publish_date',
    'post__not_in'   => array(6474), //excluding the ID holding the children
    'post_parent'    => 0, // Only get "Top Level" posts
);
0 голосов
/ 25 февраля 2020

Вы можете использовать эту функцию, чтобы определить, есть ли у сообщения родитель: https://developer.wordpress.org/reference/functions/wp_get_post_parent_id/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...