Возвращает:
null
– если текущий пользователь не имеет прав на редактирование.null
– если второй параметр функции был изменён, и в него было передано название несуществующей таксономии.get_edit_tag_link( $tag_id, $taxonomy = 'post_tag' )
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-параметром 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 ); }
Не знаете, как работать с фильтрами?
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.