Wp фильтрация постов

psics
На сайте с 02.04.2009
Offline
130
580


$my_posts = new WP_Query;
$myposts = $my_posts->query( array(
'post_type' => 'page',
'post_parent__in' => array( 1990,1993,1995,1998 ),
'posts_per_page' => 34,
) );

вот запрос к бд

получаю


<?php
$array = array
(
[0] => WP_Post Object
(
[ID] => 2128
[post_author] => 1
[post_date] => 2015-01-20 18:09:46
[post_date_gmt] => 2015-01-20 14:09:46
[post_content] => [gallery ids="2129,2130,2131,2132,2133,2134" link="file" itemtag="div" icontag="span" captiontag="p"]
[post_title] => Жилой дом с нежилыми помещениями
[post_excerpt] =>
[post_status] => publish
[comment_status] => closed
[ping_status] => open
[post_password] =>
[post_name] => zhiloj-dom-s-nezhilymi-pomeshheniyami
[to_ping] =>
[pinged] =>
[post_modified] => 2015-04-14 13:51:07
[post_modified_gmt] => 2015-04-14 09:51:07
[post_content_filtered] =>
[post_parent] => 1998
[guid] => http://site.ru/?page_id=2128
[menu_order] => 0
[post_type] => page
[post_mime_type] =>
[comment_count] => 0
[filter] => raw
)

[1] => WP_Post Object
(
[ID] => 2119
[post_author] => 1
[post_date] => 2015-01-20 18:07:29
[post_date_gmt] => 2015-01-20 14:07:29
[post_content] => [gallery ids="2120,2121,2122,2123,2124,2125,2126,2066" link="file" itemtag="div" icontag="span" captiontag="p"]
[post_title] => Крытый теннисный корт
[post_excerpt] =>
[post_status] => publish
[comment_status] => closed
[ping_status] => open
[post_password] =>
[post_name] => krytyj-tennisnyj-kort
[to_ping] =>
[pinged] =>
[post_modified] => 2015-04-14 13:51:11
[post_modified_gmt] => 2015-04-14 09:51:11
[post_content_filtered] =>
[post_parent] => 1998
[guid] => http://site.ru/?page_id=2119
[menu_order] => 0
[post_type] => page
[post_mime_type] =>
[comment_count] => 0
[filter] => raw
)
.....

Теперь получить отсюда только посты с родителем 1998 к примеру...

А то делать несколько запросов вредно же)

psics
На сайте с 02.04.2009
Offline
130
#1

может обрисую задачу полную станет яснее...

Нужно сделать табами 8 вкладок (тут я для примера 4 выложил).

Вкладка 1 - 7, и восьмая все вкладки.

В админке выглядит это так:

Страница родитель > страницы дочерние

Каждое название вкладки это название страницы родителя, а содержимое вкладки - это дочерние страницы.

Вот и хочу за один запрос получить все страницы, которые будут иметь родителей (1-7) - это можно сразу отправлять во вкладку "Все"

А вот теперь нужно как то разнести по оставшимся семи вкладкам...

То есть "Вкладка 1" - содержимое "Дочерние страницы родителя 1"

"Вкладка 2" - содержимое "Дочерние страницы родителя 2"

ну и так далее.

Выводить за 8 запросов не хочется - знаю, это не правильно. И чувствую, что можно сделать из общего запроса вытянуть... Вопрос как.

PN
На сайте с 22.08.2012
Offline
103
#2
psics:
может обрисую задачу полную станет яснее...
Нужно сделать табами 8 вкладок (тут я для примера 4 выложил).
Вкладка 1 - 7, и восьмая все вкладки.
В админке выглядит это так:
Страница родитель > страницы дочерние
Каждое название вкладки это название страницы родителя, а содержимое вкладки - это дочерние страницы.
Вот и хочу за один запрос получить все страницы, которые будут иметь родителей (1-7) - это можно сразу отправлять во вкладку "Все"
А вот теперь нужно как то разнести по оставшимся семи вкладкам...
То есть "Вкладка 1" - содержимое "Дочерние страницы родителя 1"
"Вкладка 2" - содержимое "Дочерние страницы родителя 2"
ну и так далее.
Выводить за 8 запросов не хочется - знаю, это не правильно. И чувствую, что можно сделать из общего запроса вытянуть... Вопрос как.

вкладки - на JS? Соответственно нужно в браузер выдать сразу все содержимое? Значит берем массив и распределяем по вкладкам.

Мой совет помог? Не скупись! Bitcoin 1Lseddet1o1B6odgXQHbGaWGwRkt1Db8Ef Ethereum 0x450f1a17461e25194B7F9226cDEe70173F39e1e1
psics
На сайте с 02.04.2009
Offline
130
#3
proksey-net:
вкладки - на JS? Соответственно нужно в браузер выдать сразу все содержимое? Значит берем массив и распределяем по вкладкам.

ну насколько я понимаю. там массив и объект...

Вкладки да js. Но это не принципиально.

Вопрос как его разложить по этим 7 контейнерам оставшимся...

LY
На сайте с 28.05.2010
Offline
50
#4

Так можно попробовать, ну или с if, как удобнее.

<?php

$pages = [];
for($i = 0, $size = count($array); $i < $size; ++$i) {
switch($array[$i]['post_parent']){
case 1998:
echo "<div id='tab1'>Blabla</div>";
break;
case 1995:
echo "<div id='tab1'>Blabla</div>";
break;
// и т.д.
}
}
?>
Магазин аккаунтов с балансом Litres,DNS,Ozon,Rotapost и еще 50+ других сервисов тут - vk.cc/7QK0Sk

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий