Wordpress: отображать все статьи месяца на одной странице - PullRequest
1 голос
/ 04 марта 2010

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

  • при отображении домашней страницы должны отображаться 10 самых последних статей, 10 из которых является настройкой, которую можно изменить через панель администратора (posts_per_page)
  • при отображении статей за конкретный месяц (заданных через URL-адрес, подобный следующему: ?m=200906&order=ASC, я хотел бы отобразить на одной странице все статьи этого месяца (другими словами, я не хочу, чтобы для просмотра статей, используя предыдущие записи или следующие записи .

РЕДАКТИРОВАТЬ: Я забыл кое-что еще, что я хотел бы изменить:

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

Возможно ли это сделать? Как?

Ответы [ 3 ]

4 голосов
/ 04 марта 2010

в вашем archive.php, добавьте это поверх вашего шаблона:

$allowedOrder = array('ASC', 'DESC');
if(isset($_GET['m'])){
   $order = isset($_GET['order']) ? (in_array($_GET['order'], $allowedOrder) ? $_GET['order'] : $allowedOrder[0]) : $allowedOrder[0];
   $m = $_GET['m'];
   $y = substr($m, 0, 4);
   $m = substr($m, -2);
   $query = "posts_per_page=-1&year=$y&monthnum=$m&order=$order";
   query_posts($query);
 }

Или, если у вас есть только один большой файл шаблона index.php, сделайте это:

$allowedOrder = array('ASC', 'DESC');
if(is_month()){
   $order = isset($_GET['order']) ? (in_array($_GET['order'], $allowedOrder) ? $_GET['order'] : $allowedOrder[0]) : $allowedOrder[0];
   $m = $_GET['m'];
   $y = substr($m, 0, 4);
   $m = substr($m, -2);
   $query = "posts_per_page=-1&year=$y&monthnum=$m&order=$order";
   query_posts($query);
}

Подробнее смотрите на странице кодекса:

0 голосов
/ 04 марта 2010

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

  1. http://codex.wordpress.org/Custom_Queries
  2. http://codex.wordpress.org/Function_Reference/WP_Query
  3. http://codex.wordpress.org/Template_Tags/query_posts
0 голосов
/ 04 марта 2010

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

http://codex.wordpress.org/Template_Tags/query_posts

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