2014-10-22 2 views
0

По умолчанию на главной странице сайта WordPress показаны последние сообщения. Как я могу отображать последние сообщения на странице, которая не является главной страницей?Показать все сообщения, упорядоченные по дате

Мой первый гол «GOAL A» предназначен для того, чтобы страница отображала определенную категорию под названием «популярные сообщения» (вместо последних сообщений). «GOAL B» - это ссылка на меню для ВСЕХ постов, упорядоченных по дате, ака «последние сообщения».

Я достиг цели GO с кодом ниже. Как я могу выполнить «ЦЕЛЬ Б»? Я могу создать категорию под названием «Новый» и сделать ссылку в меню, но как я могу отобразить все сообщения, упорядоченные по дате? Или есть лучший метод?

.
КОД «ЦЕЛЬ A»: отображение определенной категории на домашней странице

function popular_category($query) { 
    if ($query->is_home() && $query->is_main_query()) { 
    $query->set('category_name', 'popular'); 
    } 
} 
add_action('pre_get_posts', 'popular_category'); 

ответ

2

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

Вот как:

ШАГ 1

Вы должны удалить код в ваш вопрос. Это не нужно будет здесь

ШАГ 2

Сделайте копию вашего page.php (или index.php) и переименовать его front-page.php. Откройте его и замените цикл специальным запросом, в котором будут отображаться только сообщения из нужной категории. К сожалению, pre_get_posts не работает на статической странице, поэтому здесь вам нужно будет использовать пользовательский запрос.

<?php 
// set the "paged" parameter (use 'page' if the query is on a static front page) 
$paged = (get_query_var('page')) ? get_query_var('page') : 1; 

// the query 
$the_query = new WP_Query('category_name=popular&posts_per_page=10&paged=' . $paged); 
?> 

<?php if ($the_query->have_posts()) : ?> 

<?php 
// the loop 
while ($the_query->have_posts()) : $the_query->the_post(); 
?> 
<?php the_title(); ?> 
<?php endwhile; ?> 

<?php 

// next_posts_link() usage with max_num_pages 
next_posts_link('Older Entries', $the_query->max_num_pages); 
previous_posts_link('Newer Entries'); 
?> 

<?php 
// clean up after the query and pagination 
wp_reset_postdata(); 
?> 

<?php else: ?> 
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p> 
<?php endif; ?> 

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

ШАГ 3

Сделайте копию index.php и переименовать его home.php. Это будет ваш блог шаблон страницы

ШАГ 4

Теперь вы можете установить статический титульный лист и страницу блога в спину. Вы должны прочитать here о создании статической главной страницы и страницы блога

Смежные вопросы