Как сгруппировать посты в WordPress по алфавиту

Чтобы упростить пользователям поиск нужной информации на Вашем сайте, Вы можете сделать сортировку по дате, категории или алфавиту. Сегодня я расскажу как организовать сортировку записей по алфавиту на своем блоге.

Список записей по алфавиту будет иметь примерно такой вид:
А.
Алфавит

Б.
Базы данных

В.
Вордпресс

Для этого нужно добавить вот такой код в шаблон отдельной страницы:

<?php
$args=array(
  'orderby' => 'title',
  'order' => 'ASC',
  'posts_per_page'=>-1,
  'caller_get_posts'=>1
); // задаем условия выборки постов
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
  echo 'Записи по алфавиту. Всего ' . count($my_query->posts) . ' постов';
  while ($my_query->have_posts()) : $my_query->the_post();
    $this_char = mb_strtoupper(substr($post->post_title,0,1), 'UTF-8');
    if ($this_char != $last_char) {
      $last_char = $this_char;
      echo '<h2>'.$last_char.'</h2>'; // первая буква записи
    } ?>
    <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Постоянная ссылка на <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
    <?php
  endwhile;
}
wp_reset_query();
?>

После этого создайте отдельную страницу в wordpress и укажите созданный шаблон 😉 . Список статей по алфавиту готов!

Запись опубликована в рубрике WordPress с метками . Добавьте в закладки постоянную ссылку.

Один комментарий: Как сгруппировать посты в WordPress по алфавиту

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

    Если я правильно понял, то этот код создается на пустой странице, сохраняется под определенным именем и засовывается в папку, содержащую активную тему? а вот дальнейшие действия (желательно на живом примере)?

    Заранее спасибо!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">