Як на сторінці вивести список усіх WordPress-записів

Привіт:) У цьому посту покажу, як програмно вивести список усіх опублікованих записів (постів) на сторінці.

У файл functions.php вставте код

function mp_all_posts_list_shortcode( $atts, $content ) {
    ob_start();
    $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="all-posts-list">';
        while ( $query->have_posts() ) {
            $query->the_post();
            echo '<li><a href="'.get_the_permalink().'">' .
                get_the_title() . '</a></li>';
        }
        echo '</ul>';
    }

    wp_reset_postdata();

    return ob_get_clean();
}
add_shortcode( 'all_posts_list_shortcode', 'mp_all_posts_list_shortcode' );

Щоб показати на сторінці або в пості список, вставте шорткод

[all_posts_list_shortcode]

Якщо потрібно вивести у коді шаблону теми:

echo do_shortcode( '[all_posts_list_shortcode]' );

Результатом роботи шорткоду буде список у вигляді

<ul class="all-posts-list">
    <li><a href="https://site.com/post-title/">Назва посту</a></li>
    <li><a href="https://site.com/post-title/">Назва посту</a></li>
    <li><a href="https://site.com/post-title/">Назва посту</a></li>
</ul>

Михайло Петров
Михайло Петров

Мене звати Михайло. Я є WordPress-розробником. Створюю сайти з "нуля", розробляю плагіни, оновлюю наявний функціонал та підтримую готові проєкти.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *