Выводит HTML-ссылку на редактирование элемента таксономии (рубрики, метки или произвольной таксономии).
Ссылка не будет выведена, если у пользователя нет прав на редактирование термина.
Если вам нужно получить/вывести именно URL ссылки, то обратите внимание на get_edit_term_link().
edit_term_link( $link = '', $before = '', $after = '', $term = null, $echo = true )
Параметры
- $link
- (строка) Текст ссылки. По умолчанию
__( 'Edit This' )
(Редактировать) - $before
- (строка) Текст или HTML-код, который нужно добавить перед ссылкой.
- $after
- (строка) Текст или HTML-код, который нужно добавить после ссылки.
- $term
- (WP_Term) Передайте сюда объект определённого элемента таксономии, если ссылку на его редактирование нужно вывести. По умолчанию выводится ссылка на редактирование термина, на странице которого находимся на сайте.
- $echo
- (логический)
true
– выводит ссылку (по умолчанию),false
– возвращает.
Примеры
1. Ссылка на редактирование текущего термина
К примеру, воспользуемся этой функцией внутри файла шаблона taxonomy.php
.
// выводим заголовок термина single_term_title(); // его описание echo term_description(); // и ссылку на редактирование // <a href="http://...../wp-admin/edit-tags.php?action=edit&taxonomy=product_category&tag_ID=55&post_type=product">Редактировать</a> edit_term_link():
Также не забывайте читать описания функций single_term_title() и term_description().
2. Ссылка на редактирование определённого термина
Вот тут становится чуть интересней. А интересность в том, что наша задача – в четвёртный параметр функции передать объект термина WP_Term.
Сначала нам нужно этот объект получить, и сделать это можно функциями get_term_by() или get_term().
// допустим, что у нас это рубрика товара с ID 55 $term_id = 55; $taxonomy = 'product_category'; // получаем объект WP_Term $term = get_term_by( 'id', $term_id, $taxonomy ); edit_term_link( '', '', '', $term ): // типо первые три параметра не меняем
Или:
edit_term_link( '', '', '', get_term_by( 'id', 55, 'product_category' ) );
Хуки
edit_term_link
Этот хук позволяет изменить HTML ссылки <a href="...">...</a>
, однако важный момент – он никак не затрагивает переменные $before
и $after
и, если они указаны, то ссылка всё равно будет в них обёрнута.
В качестве примера давайте предположим, что мы хотим обернуть ссылку в теги <span>
и сделаем это сейчас при помощи параметров функции и при помощи функции.
Когда мы делаем это при помощи параметров функции, наши изменения коснутся только той функции, чьи параметры мы изменяем:
edit_term_link( '', '<span class="my-link">', '</span>' );
Если мы делаем это при помощи фильтра, то изменения затронут все использования данной функции на сайте:
add_filter( 'edit_term_link', 'true_add_span_to_link', 25, 2 ); function true_add_span_to_link( $link, $term_id ) { return '<span class="my-link">' . $link . '</span>'; }
Если же вы вдруг захотите использовать оба кода, то ссылка будет обёрнута в тег <span>
дважды.
Не знаете, как работать с фильтрами?