Возвращает:
get_edit_tag_link( $tag_id, $taxonomy = 'post_tag' )
Параметры
- $tag_id
- (целое) ID метки URL страницы редактирования которой нужно получить.
- $taxonomy
- (строка) Если вы вдруг захотите, чтобы эта функция возвращала URL редактирования не меток, а какой-то произвольной таксономии, то можете изменить этот параметр. По умолчанию он равен значению
post_tag
, что соответствует меткам.
Примеры
Ниже пример, для которого вероятно лучше использовать функцию edit_tag_link().
// получаем URL редактирования метки с ID=55 $edit_tag_link = get_edit_tag_link( 55 ); // если у пользователя есть права на редактирование, выводим ссылку if( $edit_tag_link ) { echo '<a href="' . $edit_tag_link . '">Изменить метку</a>'; }
Если мы используем функцию на страницах архивов меток, то для получения ID текущей метки мы можем воспользоваться функциями get_query_var() или get_queried_object_id().
// получаем URL редактирования текущей метки $edit_tag_link = get_edit_tag_link( get_query_var( 'tag_id' ) ); // если у пользователя есть права на редактирование, выводим ссылку if( $edit_tag_link ) { echo '<a href="' . $edit_tag_link . '">Изменить эту метку</a>'; }
Хуки
get_edit_tag_link
Этот фильтр может быть полезен, когда таксономия меток присвоена к нескольким типам записей одновременно, например как у меня на сайте, к «Записи» и «Видеоуроки».
Возникает вопрос, какой пункт меню подсвечивать при переходе на страницу редактирования метки? Так вот, этот пункт меню задаётся $_GET-параметром post_type
.
То есть например, если мы хотим всегда подсвечивать пункт меню «Видеоуроки» для меток, то мы должны добавить ?post_type=videourok
(или какое там название типа было при регистрации).
Это можно сделать корректно функцией add_query_arg().
Теоретически вы даже можете не использовать фильтр-хук, и применить это сразу к функции:
$edit_tag_link = add_query_arg( 'post_type', 'videourok', get_edit_tag_link( 55 ) ); // http:// .... /wp-admin/term.php?taxonomy=post_tag&tag_ID=55&post_type=videourok
Хотя возможно более правильно – и вовсе использовать get_edit_term_link(), потому что у неё есть отдельный параметр под это.
$edit_tag_link = get_edit_tag_link( 55, 'post_tag', 'videourok' );
Но тогда оно сработает только там, где вы его добавите. Если же нужно сделать более глобально, то конечно используем фильтр:
add_filter( 'get_edit_tag_link', 'true_add_param_to_edit_tag_link', 25 ); function true_add_param_to_edit_tag_link( $link ) { return add_query_arg( 'post_type', 'videourok', $link ); }
Не знаете, как работать с фильтрами?