Чтобы сделать архивную страницу в 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/
работают корректно и ведут на архив постов соответствующего автора.