Wordpress отображать все страницы на одной странице - PullRequest
2 голосов
/ 11 августа 2011

Мне нужно отобразить все страницы на одной странице.

В настоящее время я использую это, чтобы вывести на каждую страницу:

<?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; 
?> 

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

Есть ли способ автоматически ввести все страницы?

Любая помощь будет оценена, спасибо

Ответы [ 4 ]

12 голосов
/ 11 августа 2011

Вы можете получить все страницы своего блога, используя 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 голосов
/ 05 февраля 2017

Возвращенный массив принятого ответа не содержит "почтовых таможен" (которые мне понадобились в моем случае). А также вам может понадобиться получить страницы с определенными атрибутами. Используйте 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 />";
} ?>

Подробнее здесь

1 голос
/ 03 сентября 2012

Кроме того, если вы используете тему «Двадцать десять» (я не знаю, как она будет работать в других), вы легко сможете отформатировать все страницы:

echo "<h1 class=\"entry-title\">".$title."</h1>"
    ."<div class=\"entry-content\">".$content."</div>";
0 голосов
/ 14 июня 2013

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

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

Тем не менее существует огромная проблема, если вы используете пользовательские шаблоны для разных страниц, вы можете получить контент, но не файлы шаблонов на одной странице

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