Intereting Posts
Расширение терминов Странная проблема с персонализированными сообщениями Glyphicons Dont Show в плагине WordPress Что означают числа в конце add_action ('save_post') …? Файлы FTP непосредственно в Media Library wp-content \ uploads Перечисление пользовательских терминов в персонализированной почтовой мета Как я загружаю, сохраняю и устанавливаю изображение с моего интерфейса? Предыдущая страница или URL-адрес reffer в worpress Импорт пользовательских типов сообщений с использованием WordPress Importer, как проверить значения метаданных Я хочу показать падение вниз значение В wordpress Как установить роль при регистрации по электронной почте? Установка сети под сопоставленным доменом «Meta_value_num» не работает, когда значение обернуто в теги html RESOLVE – тип пользовательских сообщений с числовой разбивкой по страницам Как подключить функцию только тогда, когда мне нужно постоянно удалять сообщение?

admin_url в плагинах

Я пытаюсь понять, когда требуется использование URL-адреса администратора. Если я сделаю это на моей странице плагинов, все они сделают то же самое.

<a href="<?php echo admin_url("admin.php?page=fap_playlist_manager"); ?>">Back to Playlist manager</a> <a href="admin.php?page=fap_playlist_manager">Back to Playlist manager</a> <a href="?page=fap_playlist_manager">Back to Playlist manager</a> 

От чего это зависит?

Первое правило разработки WordPress – всегда использовать базовый API, если он доступен, обычно есть веская причина для его существования.

В этом случае вы предполагаете что-то о том, как вызываются файлы и какие URL они находятся. Например, такое допущение не получится, это (редко спрашивают, но об этом спрашивают) случай, когда кто-то хочет «прикрыть» «URL-адрес администратора и замените /wp-admin/admin.php?... с помощью /admin/... Для такого рода функций люди, скорее всего, переопределяют результат admin_url , используя свой фильтр, и не удастся настроить ваши «жестко закодированные» URL-адреса, чтобы они вписывались.

Разумеется, для этого конкретного вопроса вероятность какой-либо заметной разницы между альтернативой 3 близка к нулю, но очень хорошая привычка никогда не принимать что-либо о структуре URL (или каталога) при разработке плагина или темы, которую вы намерение сделать доступным для всех.

Они все одинаковые, как вы упомянули.

Первый метод admin_url('URL HERE') выведет URL-адрес администратора, а затем добавит к нему введенный URL. Это стандартный метод, поскольку кто-то мог изменить адрес администратора с помощью разных методов.

Вторая выводит ядро ​​админ-файлов (которые используются для подключения к базе данных, отображения неосновных страниц и т. Д.), А затем вручную добавляет URL-адрес вашей страницы.

Третий добавляет ?page=fap_playlist_manager к текущему URL-адресу. Это может вызвать проблемы при некоторых условиях перезаписи.

Лучшая практика заключается в том, чтобы перейти к основной функции admin_url() а затем добавить к ней любой другой URL-адрес, используя admin_url('LINK HERE') или admin_url().'/LINK HERE/' . Оба они одинаковы.

EDIT: Как упоминалось @mark, этот admin_url().'/LINK HERE/' не фильтрует LINK HERE , ЕСЛИ его нужно фильтровать. В противном случае нет никакой разницы.