Использование
add_filter( 'author_link', 'filter_function_name_2728', 10, 3 ); function filter_function_name_2728( $link, $author_id, $author_nicename ){ // Фильтруем... return $link; }
- $link(строка)
- URL на архивную страницу автора.
- $author_id(число)
- ID автора, URL на архивную страницу которого нужно изменить.
- $author_nicename(строка)
- Универсальное имя автора, URL на страницу которого пропускается через фильтр.
Примеры
#1 Изменим ссылку на архивную страницу автора
По умолчанию WordPress генерирует следующую ссылку на архивную страницу автора:
Пусть вы решили отображать записи автора по адресу:
Получить такую ссылку поможет код:
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'; }
После вставки кода нужно сбросить реврайты, для этого достаточно зайти на страницу ЧПУ в админке.
Где используется хук
Код хука-фильтра author_link
... $author_nicename = $user->user_nicename; } $link = str_replace('%author%', $author_nicename, $link); $link = home_url( user_trailingslashit( $link ) ); } /** * Filters the URL to the author's page. * * @since 2.1.0 * * @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. */ $link = apply_filters( 'author_link', $link, $author_id, $author_nicename ); return $link; } /** * List all the authors of the site, with several options available. * * @link https://codex.wordpress.org/Template_Tags/wp_list_authors * * @since 1.2.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @param string|array $args { * Optional. Array or string of default arguments. ...