Функция get_author_posts_url()
в WordPress позволяет получить ссылку на архивную страницу автора (страницу с постами, написанными пользователем). Это полезно для вывода ссылок на авторские страницы в постах, профилях пользователей и других частях сайта.
get_author_posts_url( int $author_id, string $author_nicename = '' ): string
Параметры:
- $author_id (обязательный) — ID автора, на которого нужно получить ссылку.
- $author_nicename (необязательный) — Никнейм автора (slug). Этот параметр может быть полезен, чтобы избежать лишнего запроса к базе данных для получения slug по ID. По умолчанию: пустая строка
''
.
Возвращаемое значение:
Функция возвращает строку с URL-адресом страницы автора.
Пример 1: Ссылка на страницу автора для текущего поста
В этом примере мы создадим ссылку на архивную страницу автора для текущего поста. Мы используем функцию get_the_author_meta()
для получения ID текущего автора.
<a href="<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ); ?>" title="<?php echo esc_attr( get_the_author() ); ?>">
<?php the_author(); ?>
</a>
Этот код создаст ссылку на страницу автора, имя которого будет отображаться в теге ссылки, а URL будет указывать на архивную страницу автора.
Пример вывода:
<a href="http://example.com/author/johndoe" title="John Doe">John Doe</a>
Пример 2: Получение URL страницы автора с использованием его ID
Если у вас уже есть ID автора, вы можете напрямую передать его в функцию get_author_posts_url()
для получения ссылки на страницу автора.
$author_id = 3; // Пример ID автора
$author_url = get_author_posts_url( $author_id );
echo '<a href="' . esc_url( $author_url ) . '">Перейти на страницу автора</a>';
Пример вывода:
<a href="http://example.com/author/johndoe">Перейти на страницу автора</a>
В этом примере для автора с ID 3
будет создана ссылка на его страницу.
Пример 3: Ссылка на страницу автора с указанием никнейма (slug)
Если вы уже знаете никнейм (slug) автора, можете передать его как второй параметр для упрощения работы функции.
$author_url = get_author_posts_url( 5, 'superuser' );
echo '<a href="' . esc_url( $author_url ) . '">Страница автора Superuser</a>';
Пример вывода:
<a href="http://example.com/author/superuser">Страница автора Superuser</a>
Этот пример показывает, как использовать никнейм автора для создания ссылки, что может быть полезно для оптимизации производительности, так как не требуется дополнительный запрос к базе данных для получения никнейма по ID.
Пример 4: Ссылка на архивную страницу автора в посте
Вы можете использовать функцию get_author_posts_url()
для получения ссылки на архив автора, написавшего конкретный пост. В следующем примере получим ID автора с помощью функции get_post_field()
:
$author_id = get_post_field( 'post_author', get_the_ID() );
$author_url = get_author_posts_url( $author_id );
echo '<a href="' . esc_url( $author_url ) . '">Посты автора</a>';
Пример вывода:
<a href="http://example.com/author/johndoe">Посты автора</a>
Этот пример создает ссылку на архивную страницу автора, написавшего текущий пост.
Пример 5: Использование внутри цикла постов
Если вы выводите список постов и хотите для каждого из них вывести ссылку на страницу автора, это можно сделать в цикле:
if ( have_posts() ) :
while ( have_posts() ) : the_post();
$author_id = get_the_author_meta( 'ID' );
$author_url = get_author_posts_url( $author_id );
echo '<a href="' . esc_url( $author_url ) . '">' . get_the_author() . '</a>';
endwhile;
endif;
В этом примере для каждого поста создается ссылка на страницу автора. Это полезно, если вы выводите посты в блоге или на странице категорий.
Важные моменты:
- Функция возвращает URL-адрес страницы автора, где отображаются все посты, написанные этим пользователем.
- Escaping: Всегда используйте функцию
esc_url()
для экранирования URL, чтобы избежать уязвимостей XSS (межсайтового скриптинга). - Если вы передаете $author_nicename (slug) вручную, это может оптимизировать выполнение функции, так как не нужно будет делать дополнительный запрос в базу данных для его получения.
Заключение
Функция get_author_posts_url()
— удобный инструмент для получения ссылок на страницы авторов в WordPress. Она легко интегрируется с другими функциями, что делает её полезной для создания ссылок в блоге, профилях пользователей и других шаблонах WordPress.