flexbe banner 468x60flexbe banner 728x90flexbe banner 930x180kwork banner 468x60kwork banner 728x90kwork banner 930x180skillbox banner 468x60skillbox banner 728x90skillbox banner 930x180

Как на WordPress сделать архивную страницу со всеми авторами и структуру ссылок домен/authors/author

Чтобы сделать архивную страницу в WordPress, которая перечисляет всех авторов и предоставляет доступ к их страницам профилей через структуру ссылок вида домен/authors/author, нужно выполнить следующие шаги:

1. Создание пользовательской страницы для архива авторов

Создайте файл шаблона: В вашей активной теме создайте файл page-authors.php. Это будет специальная страница, отображающая список всех авторов.

Добавьте код для вывода авторов: В файл page-authors.php добавьте следующий код:

<?php
/* Template Name: Authors Archive */
get_header();
?>

<main>
    <h1>Наши авторы</h1>
    <ul>
        <?php
        $authors = get_users([
            'who' => 'authors',
            'has_published_posts' => true, // Только авторы с публикациями
        ]);
        foreach ($authors as $author) {
            echo '<li>';
            echo '<a href="' . esc_url(get_author_posts_url($author->ID)) . '">' . esc_html($author->display_name) . '</a>';
            echo '</li>';
        }
        ?>
    </ul>
</main>

<?php get_footer(); ?>

Создайте страницу в админке WordPress: В панели управления WordPress создайте новую страницу с названием, например, «Authors» (или «Авторы»), и выберите для нее шаблон Authors Archive, который вы только что создали.

2. Настройка структуры ссылок для авторов

Обновите настройки пермалинков: В WordPress перейдите в Настройки > Постоянные ссылки, и убедитесь, что выбран один из вариантов человеко-понятных URL (например, /%postname%/).

Используйте фильтр для изменения URL автора: По умолчанию ссылки на страницы авторов выглядят как /author/username. Чтобы изменить их на /authors/username, добавьте следующий код в файл functions.php вашей темы:

add_filter('author_link', function ($link, $author_id, $author_nicename) {
    return home_url('/authors/' . $author_nicename . '/');
}, 10, 3);

Добавьте правило перезаписи ссылок: Чтобы WordPress корректно обрабатывал новые URL авторов, нужно добавить правило перезаписи:

add_action('init', function () {
    add_rewrite_rule('^authors/([^/]+)/?', 'index.php?author_name=$matches[1]', 'top');
});

Обновите пермалинки: После добавления этого кода перейдите в Настройки > Постоянные ссылки и нажмите «Сохранить изменения», чтобы обновить правила перезаписи.

3. Кастомизация страницы профиля автора

Если вы хотите изменить оформление страницы профиля автора (архив его публикаций), отредактируйте файл author.php в вашей теме или создайте его, если он отсутствует.

Пример базового кода для author.php:

<?php
get_header();
?>

<main>
    <h1>Статьи автора: <?php echo get_the_author(); ?></h1>
    <p><?php echo get_the_author_meta('description'); ?></p>

    <?php if (have_posts()) : ?>
        <ul>
            <?php while (have_posts()) : the_post(); ?>
                <li>
                    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                </li>
            <?php endwhile; ?>
        </ul>
    <?php else : ?>
        <p>У этого автора пока нет опубликованных записей.</p>
    <?php endif; ?>
</main>

<?php
get_footer();
?>

4. Проверка и тестирование

  • Убедитесь, что страница /authors/ отображает всех авторов.
  • Убедитесь, что ссылки /authors/username/ работают корректно и ведут на архив постов соответствующего автора.
flexbe banner 480x320flexbe banner 728x90flexbe banner 120x600etxt banner 480x320etxt banner 728x90etxt banner 120x600skillbox banner 480x320skillbox banner 728x90skillbox banner 120x600

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Похожие посты

Как из стандартного типа записи post удалить «uncategorized» из ссылки в WordPress?

При создании записей в WordPress без указания категории по умолчанию им присваивается категория «Без рубрики» («Uncategorized»). Это приводит к появлению лишней части ссылки, например: https://example.com/bez-rubriki/nazvanie-zapisi. Если вы хотите убрать «bez-rubriki» из URL, то вам потребуется немного модифицировать настройки и добавить пользовательский код. В этой статье я покажу, как это сделать и избежать ошибок 404. Шаг…
Подробнее

Как сделать функцию для редиректа со старых ссылок сайта на новые в WordPress?

Для создания функции редиректа в WordPress со старых ссылок на новые, можно использовать файл .htaccess или написать специальный код в functions.php темы. Рассмотрим оба варианта: 1. Редирект через .htaccess Если вам нужно выполнить редиректы для множества старых URL, проще всего это сделать через файл .htaccess в корне вашего сайта. Для этого откройте или создайте файл…
Подробнее

С помощью каких инструментов можно сделать перенос мультисайта (сети сайтов WordPress) на другой домен/хостинг?

Для переноса мультисайта WordPress на другой домен или хостинг можно использовать следующие инструменты: 1. Мануальный перенос: 2. Плагины для переноса: 3. Хостинг-панели: 4. Командная строка: 5. Консультации у хостинг-провайдеров:
Подробнее