Как ссылаться на страницу настроек темы из любого места в админке?
Мне удалось добавить собственное меню в админ-бар. Я хочу, чтобы первый пункт меню ссылался на страницу настроек моей темы.
Например, будет ли этот вариант полностью надежным или существует более прямой метод?
echo '<a href="'.get_admin_url().'admin.php?page=functions.php">Настройки темы</a>';

Предполагая, что при установке никогда не будет зарегистрирована страница с таким же именем через плагин, это должно быть безопасно. Я бы рекомендовал дать вашей зарегистрированной странице уникальное имя с префиксом. Во-вторых, если имя страницы ссылается на файл функций вашей темы, не будет ли это означать прямой вызов файла (вам никогда не следует напрямую вызывать файл функций темы).
Вы можете передать get_admin_url
и также admin_url
путь для добавления, чтобы использовать это следующим образом...
echo get_admin_url( null, 'admin.php?page=functions.php' );
или аналогично...
admin_url( 'admin.php?page=functions.php' );
Нет необходимости в конкатенации, и, конечно, добавьте HTML ссылки обратно по мере необходимости (я опустил это для краткости).
Еще одно предложение — не использовать имя файла в качестве значения страницы, которое вы зарегистрировали. Я постоянно вижу, как плагины делают это, и это всегда сводило меня с ума. Логичнее просто передать коду регистрации страницы уникальную строку, а не имя файла (обычно это делается с помощью __FILE__
, что лично мне кажется некрасивым и костыльным).
Таковы мои первоначальные наблюдения. В идеале, я бы хотел увидеть код, который регистрирует страницу, и узнать, где находится этот код регистрации, т.е. в каком файле.

Как насчёт этого:
echo "<a href='".admin_url('/admin.php?page=functions.php')."'>Настройки темы</a>";
Кодекс для admin_url. Кстати, вы добавляете страницу меню/подменю для своих пользовательских настроек темы? Вы можете использовать её слаг здесь.
