Intereting Posts
Как указать общедоступный URL-адрес на внутренний (скрытый) сервер со всеми вытекающими ссылками. Где я могу найти схему основной архитектуры плагина wordpress? Пользовательский размер изображения не работает Получить тип сообщения из таксономии или категории Отображение части каждой дочерней страницы? Показывать публикацию авторов на одной странице только при входе в систему Список категорий для автора: list_categories функция внутри функция list_authors Получите общее количество всех комментариев и результат отображения Как запустить внешний файл JavaScript на wp-admin, если администратор, и другие, если обычный пользователь? Использование настраиваемого значения поля для перенаправления с 404 страницы WordPress, изменяющий мой пользовательский запрос, как его исправить? После обновления сайта для использования SSL все изображения в сообщениях указывают на http: // Страница TwentyThirteen topic Posts показывает сообщения вместо содержимого страницы Объедините результаты двух циклов PHP-массив для массива jQuery "Uncaught SyntaxError: Неожиданный токен <"

JQuery добавляет функцию

Я пытаюсь понять, где я ошибся с этим кодом. Я пытался добавить аватар и пользовательскую мета поверх меню администратора. Я получаю уже отправленные заголовки, так как код находится прямо под тегом body.

function profile_script() { echo '<script type="text/javascript"> /* <![CDATA[ */ (function($) { $("#adminmenu").prepend($menuprofile); })(jQuery); /* ]]> */ </script>'; } add_action( "admin_footer", 'profile_script' ); 

Solutions Collecting From Web of "JQuery добавляет функцию"

Ключ admin_menu не предназначен для отображения меню, на самом деле это часть процесса построения меню, чтобы точно определить, что входит в меню, и здесь вы должны делать вызовы таких функций, как add_submenu_page . Поэтому, когда это действие запущено, ничего еще не распечатано, пока нет тегов с заголовком / телом.

Но даже тогда я не вижу, как работает ваш код. Вторая функция пытается добавить код через AJAX, но он вызывает переменную PHP в середине кода Javascript. Для того, чтобы это работало, требуется, чтобы в коде существовали какие-то сверхъестественные психические силы. Этот код JQuery не знает переменные PHP.

Но давайте скажем, что у этого были эти сверхъестественные психические силы, или сказать, что Google Engineer появился с технологией магии soem, которая позволила вашему javascript проникнуть в память процесса PHP (который уже вышел после того, как страница закончила загрузку в любом случае), у нас есть совершенно новый проблема.

Вы пытаетесь использовать переменную $ menuprofile, но эта переменная не объявлена ​​нигде. И если она была объявлена, что бы она содержала? Он не будет содержать ваш профиль html в профиле, который получил echo'd в интерфейсе, он не попал в переменную с именем $menuprofile .

Помните, что все в коде есть по какой-то причине, оно в определенном порядке по определенной причине, если вы не знаете, почему вы помещаете «эхо» там, вы должны читать, потому что вы, вероятно, потратите больше времени на копирование приклеивание случайных вещей на случайный случай, когда он работает.

Поэтому давайте начнем с вашего JS-кода:

 function profile_script() { echo '<script type="text/javascript"> /* <![CDATA[ */ (function($) { var menuprofile = ?; // where do we get this value from? $("#adminmenu").prepend(menuprofile); })(jQuery); /* ]]> */ </script>'; } add_action( "admin_footer", 'profile_script' ); 

Нам нужно получить menuprofile откуда-то, у нас есть 2 варианта:

  • Выполните код как строку js и создайте из него элемент html в JS
  • Повторите это в PHP, затем захватите элемент с помощью JQuery и переместите его в правильное положение

Я собираюсь использовать второй вариант в качестве примера:

 function profile_script() { echo '<div id="example>Hello World</div>"; echo '<script type="text/javascript"> /* <![CDATA[ */ (function($) { var menuprofile = $("#example"); // grab that html element from before $("#adminmenu").prepend(menuprofile); })(jQuery); /* ]]> */ </script>'; } add_action( "admin_footer", 'profile_script' ); 

Вы также должны проставлять имена своих функций или, по крайней мере, префикс их, чтобы предотвратить столкновение с другими людьми, которые пишут функции, которые имеют одинаковые идеи именования. Вы также должны подождать, пока DOM будет готов:

 function wpse73532_profile_script() { echo '<div id="example>Hello World</div>"; echo '<script type="text/javascript"> /* <![CDATA[ */ jQuery(document).ready(function(){ var menuprofile = jQuery("#example"); // grab that html element from before jQuery("#adminmenu").prepend(menuprofile); }); /* ]]> */ </script>'; } add_action( "admin_footer", 'wpse73532_profile_script' ); 

Вместо этого вы рассмотрели возможность изменения панели администратора? И что вы будете делать, когда меню рухнет? или если CSS и макет меню изменяются в будущей версии WordPress?

Отказ от ответственности: в этом ответе использовалось большое количество сарказма, но не было совершено никакого преступления