Intereting Posts
Как исправить ошибку ob_end_flush ()? Решить свойства продукта с помощью пользовательских таксономий? Сохранение внешних вызовов API в WordPress Удалите всю тему CSS & JS из wp_head (но только для 1-страничного шаблона) Список записей в алфавитном порядке по адресу archive.php Как вызвать уведомление о форме входа в систему? Как создать эскизы в wordpress с помощью jwplayer Как умножить сообщение для проверки результатов внутреннего поиска? исключить некоторые категории с его подкатегориями используя плагин проверки темы для удаления waring и ошибок из моей темы создать объединенный запрос, например UNION, и использовать значения тега post post, такие как параметры Форма контакта, подтверждение значения поля выпадающего списка Страница для входа в систему пользователя для редактирования / удаления собственного контента? Выбор категории силы перед созданием нового сообщения? строить сложные запросы с помощью WP User Query

Как запрашивать сообщения (в иерархическом пользовательском типе сообщений), в которых есть дети?

Я пытаюсь выяснить, как запрашивать сообщения в моем иерархическом настраиваемом типе сообщений, предположительно используя WP_Query с дочерними сообщениями. Я могу получить все страницы, у которых нет дочерних 'post_parent' => 0 установив 'post_parent' => 0 в моих аргументах WP_Query, но это возвращает все сообщения, которые не являются дочерними. Мне нужны только сообщения с дочерними сообщениями.

Вы можете использовать параметр post_parent__not_in :

 $args = array( 'post_type' => 'cpt', 'post_parent__not_in' => array( 0 ) ); $query = new WP_Query( $args ); 

для извлечения дочерних сообщений типа cpt .

Сгенерированный SQL затем включит эту часть:

 wp_posts.post_parent NOT IN (0) 

Насколько я понял ваше требование, я думаю, это то, что вам нужно.

Я документировал код, пожалуйста, пройдите через него.

 <?php /* Idea: Collecting all the posts child posts by --->'post_parent__not_in' => array( 0 )<--- in wp_query. Then find their parent posts by eliminating duplicates. */ $query_array = array( //Change this post type to your Custom-Post-Type. 'post_type' => 'news', //Showing all posts 'posts_per_page' => -1, //Giving all child posts only 'post_parent__not_in' => array( 0 ) ); $the_query = new WP_Query($query_array); //Array to collect all parent posts $collect_parents = array(); while($the_query->have_posts()): $the_query->the_post(); //if condition is used to eliminate duplicates, generated by same child post of parent. if(!in_array($post->post_parent, $collect_parents)){ //$collect_parents contains all the parent post id's $collect_parents[] = $post->post_parent; } endwhile; //Printing all the parent posts foreach($collect_parents as $parent){ ?> <!-- Printing parent post title --> <h2><a href="<?php echo get_permalink($parent ); ?>"> <?php echo get_the_title($parent); ?></a></h2> <!-- Printing parent post content --> <p><?php echo get_post_field( 'post_content', $parent); ?></p> <?php } ?> в <?php /* Idea: Collecting all the posts child posts by --->'post_parent__not_in' => array( 0 )<--- in wp_query. Then find their parent posts by eliminating duplicates. */ $query_array = array( //Change this post type to your Custom-Post-Type. 'post_type' => 'news', //Showing all posts 'posts_per_page' => -1, //Giving all child posts only 'post_parent__not_in' => array( 0 ) ); $the_query = new WP_Query($query_array); //Array to collect all parent posts $collect_parents = array(); while($the_query->have_posts()): $the_query->the_post(); //if condition is used to eliminate duplicates, generated by same child post of parent. if(!in_array($post->post_parent, $collect_parents)){ //$collect_parents contains all the parent post id's $collect_parents[] = $post->post_parent; } endwhile; //Printing all the parent posts foreach($collect_parents as $parent){ ?> <!-- Printing parent post title --> <h2><a href="<?php echo get_permalink($parent ); ?>"> <?php echo get_the_title($parent); ?></a></h2> <!-- Printing parent post content --> <p><?php echo get_post_field( 'post_content', $parent); ?></p> <?php } ?>