Добавление "внешней" ссылки в меню админки в бэкенде
Пытаюсь добавить ссылку в меню админки (консоль/бэкенд), ведущую на фронтенд WordPress. По сути, мне нужна ссылка в меню, которая будет вести на блог.
Я нашел несколько способов добавления новых элементов в меню админки, но не смог сделать ссылку на home_url. Похоже, меню админки предназначено только для ссылок внутри wp-admin. Кто-нибудь добился успеха в этом?
Редактирование:
Пробовал такой вариант: https://gist.github.com/792b7aa5b695d1092520
add_admin_menu_item('Обзор', array(
'title' => 'Просмотр сайта',
'slug' => get_bloginfo('url')
));
Что дает мне ссылку вида hxxp://myurl.com/myurl.com
С этим плагином (hxxp://wordpress.org/extend/plugins/admin-menu-editor/), получается:
hxxp://myurl.com/wp-admin/www.test.com

Вы можете создать функцию, которая перенаправляет на фронтенд сайта, например так:
function redirect_home_987(){
wp_redirect( home_url() ); // Перенаправление на главную страницу
exit; // Обязательно завершаем выполнение скрипта
}
И затем вызвать эту функцию в стандартной функции WordPress add_menu_page вот так:
add_menu_page(
'redirecting', // Название страницы
'Просмотр сайта', // Текст пункта меню
'read', // Требуемые права доступа
'my-top-level-handle', // Ярлык меню
'redirect_home_987' // Функция для выполнения
);
Надеюсь, это поможет

Не уверен, что правильно вас понял. Я добавил это в свой functions.php:
add_action('admin_menu', 'add_viewsite');
function add_viewsite() { add_menu_page( 'redirecting', 'View Site', 'read', 'my-top-level-handle', 'redirect_home_987'); }
// Эта функция создаст ссылку на "главную страницу" function redirect_home_987(){ wp_redirect( home_url() ); exit; }
Что дает мне ссылку, которая выглядит так: http://www.url.com/wp-admin/admin.php?page=my-top-level-handle

У меня была та же проблема - некоторые заголовки уже были отправлены. Попробовал несколько вариантов; единственное, что сработало (хотя мне это не очень нравится) - это комбинация вышеуказанного с javascript, как в этом ответе

Вы не можете добавлять элементы в меню администратора, которые ведут на внешние URL. Функции добавления меню не поддерживают это и не позволят сделать.
Однако, если вы подключите колбэк к хуку admin_menu
, вы можете вручную вставить некоторые элементы и полностью обойти проблему с внешними ссылками в меню. Я сам так делаю и удивлён, что никто ещё не указал на проблему с внешними ссылками в меню.
Я привёл пример в ответе на вопрос Добавление произвольной ссылки в меню администратора?
Дайте знать, если это поможет.

На самом деле, этот вопрос кажется точной копией этого. Поэтому я проголосовал за его закрытие!

add_action('admin_menu', 'example_admin_menu');
/**
* Добавляет внешнюю ссылку в раздел Инструменты
*/
function example_admin_menu() {
global $submenu;
$url = 'http://www.example.com/';
$submenu['tools.php'][] = array('Пример', 'manage_options', $url);
}
