Flector

Как вывести на странице список всех записей сайта?

Очень часто на форумах поддержки WordPress возникает вопрос о том, как в записи или на странице вывести список всех существующих на сайте записей. Зачем это нужно каждый решает сам. Кто-то таким образом вручную создает карту сайта, а кому-то это надо для замены рубрик. В большинстве случаев, подобная задача решается с помощью сторонних плагинов. Но если вам надо просто вывести список записей и ничего больше, то использование сторонних плагинов тут будет неоправданным. Вывести список всех записей можно с помощью небольшого шорткода [allposts], который вы вольны добавить куда угодно. Совсем недавно я рассматривал вопрос о том, как вывести список всех меток или рубрик сайта в алфавитном порядке, с записями принцип практически тот же. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

//вывод списка всех записей сайта с помощью шорткода start
function wph_allposts_shortcode($atts, $content) {
 
    $args = array(
        'post_type' => 'post',
        'post_status' => 'publish',
        'posts_per_page'   => -1,
        'orderby' => 'title',
        'order' => 'ASC'
    );
    $query = new WP_Query( $args );
 
    if( $query->have_posts() ) {
        echo '<ul class="allposts">';
        while ( $query->have_posts() ) {
            $query->the_post();
            echo '<li><a href="'.get_the_permalink().'">' . 
            get_the_title() . '</a></li>';
        }
        echo '</ul>';
    }
 
    wp_reset_postdata();
}
add_shortcode('allposts', 'wph_allposts_shortcode');
//вывод списка всех записей сайта с помощью шорткода end

При желании вы можете поправить аргументы WP_Query, если вам надо получить список записей с какими-либо дополнительными условиями (фильтрация по рубрикам, датам и т.д.). По умолчанию шорткод выведет список в алфавитном порядке.


Комментарии (4 комментария)
  1. Veron:

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

  2. Спасибо за актуальную тему. Только разъясните пожалуйста подробнее для "чайника", как и куда нужно вставлять шорткод [allposts]? Если его просто в страницу вставляю, то он не воспринимается как шорткод.
    Спасибо

    • Flector:

      в контент записи. в режиме Текст или виджетом Шорткод.

  3. Станислав:

    А возможно ли вывести на страницу(запись) список рубрик? С описанием из раздела настройки рубрики? Спасибо

Написать комментарий

Для вставки кода воспользуйтесь кнопкой "Код". Используйте предпросмотр!