WordPress WP_Query - только родительские страницы запроса

99
8

Я использую WP_Query для запросов к своим пользовательским сообщениям типа сообщения. Этот настраиваемый тип сообщения имеет родительскую и дочернюю страницы. Я пытаюсь вытащить первую родительскую страницу. Как мне это сделать?

спросил(а) 2021-01-25T17:39:00+03:00 4 месяца, 4 недели назад
1
Решение
186

$parent_only_query = new WP_Query(array(
'post_type' => 'my-custom-post-type',
'post_parent' => 0
));

while ($parent_only_query->have_posts()){
$parent_only_query->the_post();
// etc...
}

wp_reset_query(); // if you're not in your main loop! otherwise you can skip this

ответил(а) 2021-01-25T17:39:00+03:00 4 месяца, 4 недели назад
77

Вы можете достичь этой функциональности, выполнив запрос к базе данных;


<?php

$parent_posts= $wpdb->get_results( "SELECT ID, post_title FROM $wpdb->posts WHERE post_parent=0 AND post_type='page' AND post_status='publish' ORDER BY menu_order ASC" );

foreach($parent_posts as $record){ ?>

<a href="<?php echo get_permalink($record->ID) ?>" >
<h1><?php echo $record->post_title; ?></h1>
</a>
<p><?php echo $record->post_title;?></p>

<?php } ?>

Примечание: - $wpdb - глобальная переменная.

ответил(а) 2021-01-25T17:39:00+03:00 4 месяца, 4 недели назад
64

После того, как вы запустили свой запрос, и вы зацикливаетесь на нем, вы можете получить доступ к идентификатору родителя каждого сообщения с помощью $post->post_parent, а если это не null, вы можете получить это сообщение с get_post():


<?php
if($post->post_parent):
$parent = get_post($post->post_parent);
?>
<h2><?=$parent->post_title;?></h2>
<p><?=$parent->post_content;?></p>
<?php
endif;
?>

ответил(а) 2021-01-25T17:39:00+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема