Отображение массива определенных страниц с WP_Query в Wordpress - PullRequest
3 голосов
/ 08 апреля 2010

Я пытаюсь показать только определенные страницы в цикле. 3 определенные страницы, не больше, не меньше.

Я много чего пробовал, но просто не могу это сделать.

<?php
    $special_tabs = new WP_Query(array ('post_type'=>'page','post__in'=>array(100,102,104)))
?>

Насколько я понимаю, это означает, что он показывает массив страниц, а затем включает и эти идентификаторы.

<?php
    $special_tabs = new WP_Query('page_id=100');
?>

И это показывает только ОДНУ определенную страницу, он не поддерживает отображение массива различных идентификаторов.

Я уверен, что я не первый, у кого есть такие специфические потребности, и я уверен, что есть относительно простой способ достичь того, чего я пытаюсь достичь, но я просто не могу найти решение или найти. Кто-нибудь может помочь мне с этим?

Большое спасибо заранее!

Ответы [ 2 ]

1 голос
/ 08 апреля 2010

просто интересно, будет ли лучше использовать что-то вроде get_pages () вместо создания нового wp_query ()?

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

<ul>
<?php $special_tabs = get_pages ('sort_column=post_title&echo=0&include=2,3,4&title_li='); ?>
<?php 
foreach ($special_tabs as $tab) {
  $title = $tab->post_title;
  echo "<li>".$title."</li>";
}
?>
</ul>

если вы сделаете print_r для переменной $ special_tab, вы получите следующий массив

<code></php
echo"<pre>";
echo print_r($special_tabs);
echo"
"; ?> массив ( [0] => stdClass Object ( [ID] => 2 [post_author] => 1 [post_date] => 2010-03-24 15:26:18 [post_date_gmt] => 2010-03-24 15:26:18 [post_content] => Это пример страницы WordPress. [post_title] => О [post_excerpt] => [post_status] => опубликовать [comment_status] => открыть [ping_status] => открыть [post_password] => [post_name] => о [to_ping] => [pinged] => [post_modified] => 2010-03-24 15:26:18 [post_modified_gmt] => 2010-03-24 15:26:18 [post_content_filtered] => [post_parent] => 0 [guid] => http://example.com/about/ [menu_order] => 0 [post_type] => страница [post_mime_type] => [comment_count] => 0 [filter] => raw ) [1] => stdClass Object ( [ID] => 3 [post_author] => 1 [post_date] => 2010-03-27 10:48:29 [post_date_gmt] => 2010-03-27 10:48:29 [post_content] => [post_title] => testpage1 [post_excerpt] => [post_status] => опубликовать [comment_status] => открыть [ping_status] => открыть [post_password] => [post_name] => testpage1 [to_ping] => [pinged] => [post_modified] => 2010-03-27 10:48:29 [post_modified_gmt] => 2010-03-27 10:48:29 [post_content_filtered] => [post_parent] => 0 [guid] => http://example.com/testpage1/ [menu_order] => 0 [post_type] => страница [post_mime_type] => [comment_count] => 0 [filter] => raw ) [2] => stdClass Object ( [ID] => 4 [post_author] => 1 [post_date] => 2010-03-27 10:56:26 [post_date_gmt] => 2010-03-27 10:56:26 [post_content] => [post_title] => testpage2 [post_excerpt] => [post_status] => опубликовать [comment_status] => открыть [ping_status] => открыть [post_password] => [post_name] => testpage2 [to_ping] => [pinged] => [post_modified] => 2010-03-27 10:56:26 [post_modified_gmt] => 2010-03-27 10:56:26 [post_content_filtered] => [post_parent] => 0 [guid] => http://example.com/testpage2/ [menu_order] => 0 [post_type] => страница [post_mime_type] => [comment_count] => 0 [filter] => raw ) )

надеюсь, это то, что вы можете использовать .. :) просто не забудьте включить идентификатор вашей страницы в раздел get_pages (), вместо 2,3,4, которые уже есть ...

ref: http://codex.wordpress.org/Function_Reference/get_pages

0 голосов
/ 23 июня 2010

Вот ответ на вопрос 2+ месяцев:

Вы хотите показать определенные страницы, так что если вы вызываете WP_Query для каждой страницы в foreach:

$certain_pages = array(100,102,104);
foreach( $certain_pages as $a_page ) {
    $special_tabs = new WP_Query('page_id='.$a_page);
    /* (sample) loop goes here */
    if ($special_tabs->have_posts()) : while ($special_tabs->have_posts()) : $special_tabs->the_post();
        the_content();
    endwhile; endif;
    /* loop ends */
}

Не беспокойтесь о многократном вызове цикла, его эффект даже не заметен в этом масштабе.

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