edit_term_link()

Выводит 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' ) );

Хуки

Этот хук позволяет изменить 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> дважды.

Не знаете, как работать с фильтрами?

Источник: Блог Миши Рудрастых

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: