Wordpress在一页上显示所有页面

时间:2011-08-11 09:00:24

标签: php wordpress-theming wordpress

我需要在一页上显示所有页面。

目前我正在使用它来引入每一页:

<?php 
$page_id = 5; //id example
$page_data = get_page( $page_id ); 
$content = apply_filters('the_content', $page_data->post_content); 
$title = $page_data->post_title; 
echo $content; 
?> 

但是如果创建了一个新页面,它就不会显示它,因为它不会有这个代码及其ID。

有没有办法自动显示所有页面?

任何帮助将不胜感激,谢谢

4 个答案:

答案 0 :(得分:12)

您可以使用get_pages();获取博客的所有页面,按此循环执行此操作:

$pages = get_pages(); 
foreach ($pages as $page_data) {
    $content = apply_filters('the_content', $page_data->post_content); 
    $title = $page_data->post_title; 
    echo $content; 
}

答案 1 :(得分:1)

另外,如果您使用的是Twenty Ten主题(我不知道它将如何在其他主题中使用),您可以轻松地将所有页面格式化:

echo "<h1 class=\"entry-title\">".$title."</h1>"
    ."<div class=\"entry-content\">".$content."</div>";

答案 2 :(得分:1)

接受的答案返回的数组并不包含&#34;邮政海关&#34; (在我的情况下我需要)。此外,您可能需要检索具有特定属性的页面。使用<?php $args = array( 'sort_order' => 'asc', 'sort_column' => 'post_title', 'hierarchical' => 1, 'exclude' => '', 'include' => '', 'meta_key' => '', 'meta_value' => '', 'authors' => '', 'child_of' => 0, 'parent' => -1, 'exclude_tree' => '', 'number' => '', 'offset' => 0, 'post_type' => 'page', 'post_status' => 'publish' ); $pages = get_pages($args); ?> 获得更多自定义结果:

<?php
    foreach ($pages as $page) {
    $title = $page->post_title; 
    echo $title. "<br />";
} ?>

并像这样使用它们:

{{1}}

Read more here

答案 3 :(得分:0)

您也可以通过此代码获取每个页面的内容。

$content = apply_filters( 'the_content', $content );

如果您为不同的页面使用自定义模板,您仍然可以获得内容而不是单页上的模板文件