author_link
Позволяет изменить URL на архивную страницу автора.
Использование
add_filter( 'author_link', 'wp_kama_author_link_filter', 10, 3 );
/**
* Function for `author_link` filter-hook.
*
* @param string $link The URL to the author's page.
* @param int $author_id The author's ID.
* @param string $author_nicename The author's nice name.
*
* @return string
*/
function wp_kama_author_link_filter( $link, $author_id, $author_nicename ){
// filter...
return $link;
}
- $link(строка)
- URL на архивную страницу автора.
- $author_id(число)
- ID автора, URL на архивную страницу которого нужно изменить.
- $author_nicename(строка)
- Универсальное имя автора, URL на страницу которого пропускается через фильтр.
Примеры
#1 Изменим ссылку на архивную страницу автора
По умолчанию WordPress генерирует следующую ссылку на архивную страницу автора:
http://wp-test.ru/author/campusboy
Пусть вы решили отображать записи автора по адресу:
http://wp-test.ru/writer/campusboy
Получить такую ссылку поможет код:
add_filter( 'author_link', 'filter_author_link', 10, 3 );
function filter_author_link( $link, $author_id, $author_nicename ) {
return home_url( '/writer/' ) . $author_nicename;
}
Но если сейчас перейти на эту страницу, мы получим 404 ошибку, так как движок ничего не знает о подобной структуре ссылки. Сообщим ему об этом:
add_action( 'init', 'new_author_base' );
function new_author_base() {
global $wp_rewrite;
$wp_rewrite->author_base = 'writer';
}
После вставки кода нужно сбросить реврайты, для этого достаточно зайти на страницу ЧПУ в админке.
Список изменений
| С версии 2.1.0 | Введена. |
Где вызывается хук
author_link
wp-includes/author-template.php 398
$link = apply_filters( 'author_link', $link, $author_id, $author_nicename );