Intereting Posts
Несколько раз запрашивать загрузку плагинов при отправке одного запроса Избавление от пунктов меню в пользовательской таксономии Почему get_post_meta не работает со страницей сообщений? Woocommerce – удалить продукт из категории Как вернуть несколько аргументов из функции обратного вызова AJAX получить текущий номер страницы с помощью wp_link_pages () Как переключить тему, если текущий пользователь является администратором? Загружаются два сообщения вместо одного? remove_action on after_setup_theme не работает с дочерней темой Как я могу перечислить случайного автора? Выпадающий родительский элемент не отображается для пользовательского типа сообщения Форма переключателя Следующая / Предыдущая запись Два способа создания страниц WordPress Запросить сообщения из идентификатора терминов детской таксономии как добавить роль и возможности после создания нового пользователя

Как передать шаблон url в javascript в области ADMIN моей темы?

Мне нужно передать путь к файлу php (находящемуся в папке в моей теме) в файл JS, который используется в моей области администрирования, но я понятия не имею, как это сделать.

То, что я пытаюсь сделать, – это построить страницу, в которой выбор некоторых параметров в форме передаст значение ввода скрипту php через ajax. Но поскольку JS является клиентской стороной, я не знаю, как указать на правильное местоположение.

Я пробовал тестировать, используя это:

<?php wp_enqueue_script( 'some_handle' ); $translation_array = array( 'some_string' => __( 'Some string to translate' ), 'a_value' => '10' ); wp_localize_script( 'some_handle', 'object_name', $translation_array ); wp_enqueue_script("admin", $adminDir."js/admin.js", false, "1.0"); ?> 

с этим в моем admin.js:

  console.log(object_name.some_string); 

Но консоль просто читает:

 ReferenceError: object_name is not defined 

Solutions Collecting From Web of "Как передать шаблон url в javascript в области ADMIN моей темы?"

Если вы хотите использовать переменные из сценария admin.js, и вы хотите быть уверены, что это работает, вам нужно

  1. используйте в качестве дескриптора для wp_localize_script дескриптор скрипта, который должен использовать данные
  2. вызовите wp_localize_script после того, как этот скрипт установлен в очередь

     wp_enqueue_script( 'some_handle' ); wp_enqueue_script("admin", $adminDir."js/admin.js", false, "1.0"); $translation_array = array( 'some_string' => __( 'Some string to translate' ), 'a_value' => '10' ); wp_localize_script( 'admin', 'object_name', $translation_array ); 

Используя приведенный выше код и console.log(object_name.some_string); вы увидите переведенную строку на консоли.

Подробнее о wp_localize_script о Codex.

Вы можете сначала зарегистрировать скрипт и поставить его в очередь после wp_localize_script .

 wp_register_script( 'script_handle', $adminDir."js/admin.js", false, '1.0' ); //register script $translation_array = array( 'some_string' => __( 'Some string to translate' ), 'a_value' => '10' ); wp_localize_script( 'script_handle', 'object_name', $translation_array ); wp_enqueue_script("script_handle"); //enqueue 

Ссылка на функцию: wp_localize_script