Хук author_link
позволяет изменить URL, который ведет на архивную страницу автора в WordPress. Используя этот хук, вы можете динамически настраивать ссылки для авторов, изменяя их структуру или добавляя параметры. Это может быть полезно, если вы хотите, чтобы ссылки на архивы авторов соответствовали вашему стилю или логике сайта.
apply_filters( ‘author_link’, string $link, int $author_id, string $author_nicename )
Параметры
- $link (string): URL на архивную страницу автора.
- $author_id (int): ID автора, для которого генерируется ссылка.
- $author_nicename (string): Универсальное имя автора (slug), которое используется в URL.
Пример 1: Изменение ссылки на архивную страницу автора
Допустим, вы хотите изменить структуру ссылки на архивную страницу автора. Вместо стандартного пути /author/author_name
, вы хотите использовать путь /writer/author_name
. Это можно сделать с помощью фильтра author_link
:
add_filter( 'author_link', 'filter_author_link', 10, 3 );
function filter_author_link( $link, $author_id, $author_nicename ) {
return home_url( '/writer/' ) . $author_nicename;
}
После этого, ссылка на архив автора будет иметь формат http://example.com/writer/author_name
, а не http://example.com/author/author_name
. Однако, чтобы избежать 404 ошибок, необходимо сообщить WordPress о новом формате ссылки:
add_action( 'init', 'new_author_base' );
function new_author_base() {
global $wp_rewrite;
$wp_rewrite->author_base = 'writer'; // Меняем "author" на "writer"
}
Не забудьте сбросить перезапись URL (через настройки ЧПУ в админке), чтобы изменения вступили в силу.
Пример 2: Условное изменение ссылки для конкретных авторов
Иногда нужно изменять ссылки только для определенных авторов, например, для редакторов или администраторов. Для этого можно использовать ID авторов или их универсальные имена:
add_filter( 'author_link', 'custom_author_link', 10, 3 );
function custom_author_link( $link, $author_id, $author_nicename ) {
// Проверяем ID автора
if ( $author_id == 3 ) {
// Для автора с ID = 3 устанавливаем кастомный URL
$link = home_url( '/custom-author/' . $author_nicename );
}
// Для других авторов используем стандартный формат
return $link;
}
В этом примере ссылка на архив для автора с ID 3 будет изменена на http://example.com/custom-author/author_name
, а для остальных авторов — оставаться неизменной.
Пример 3: Добавление параметров к ссылке автора
Вы можете добавить дополнительные параметры к URL для авторов. Например, вы хотите, чтобы ссылки на архивы авторов включали параметр role
в зависимости от их роли в системе:
add_filter( 'author_link', 'modify_author_link_with_role', 10, 3 );
function modify_author_link_with_role( $link, $author_id, $author_nicename ) {
$author = get_user_by( 'ID', $author_id );
// Добавляем параметр "role" в URL
$role = $author->roles[0]; // Получаем роль первого пользователя
return add_query_arg( 'role', $role, $link );
}
В результате, URL на архивную страницу автора будет выглядеть как http://example.com/author/author_name?role=editor
для пользователя с ролью «editor».
Заключение
Хук author_link
в WordPress предоставляет множество возможностей для настройки ссылок на страницы авторов. С его помощью вы можете менять структуру URL, добавлять параметры, а также применить изменения только для конкретных авторов, ролей или других условий. Этот хук является мощным инструментом для кастомизации вашего сайта, улучшая навигацию и адаптируя URLs под нужды вашего проекта.