个性化阅读
专注于IT技术分析

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。

有没有办法自动进入所有页面?

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


#1


你可以使用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; 
}

#2


接受的答案的返回数组不包含” post custom”(我的情况需要)。而且, 你可能需要检索具有特定属性的页面。使用args获得更多自定义结果:

<?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 />";
} ?>

在这里阅读更多


#3


另外, 如果你使用的是”二十十”主题(我不知道它在其他主题中将如何工作), 则可以轻松地将所有页面格式化:

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

#4


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

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

如果在不同页面上使用自定义模板, 仍然会遇到巨大的问题, 但是你只能获取内容, 而不能在一页上获取模板文件

赞(0)
未经允许不得转载:srcmini » WordPress在一页上显示所有页面

评论 抢沙发

评论前必须登录!