Intereting Posts
Заголовок архивной страницы Показаны неправильные месяцы после импорта Как загрузить пользовательский плагин post type после страницы настроек acf (или получить настройки оттуда другим способом)? Исключить термин таксономии с пользовательским типом сообщения в поиске Ресурсы Avada по-прежнему загружаются с локального хоста после миграции базы данных wp_login_form () перенаправить не перенаправлять пользователей <admin Разбивка страниц выполняется везде, но указательная страница Количество товаров категории Woocoomerce, включая подкатегории WP_Query и использование переменной для 'cat' => в массиве args = WP Bug? Ошибки при загрузке изображений в WP 3.5 Проблема с контекстом в multisite – получение основных данных сайта в каждом блоге (get_pages ()) Отфильтровать сообщение перед * редактированием * Как я могу заставить iFrame работать с url из post_meta? Создание определенных категорий меню add_rewrite_rule, активация плагина и деактивация плагина Стиль боковой панели не совпадает с моей другой боковой панелью?

Можно ли использовать wp_localize_script для создания глобальных переменных JS без определенного дескриптора скрипта?

Можем ли мы каким-то образом использовать wp_localize_script () для создания глобальных переменных js без конкретного дескриптора скрипта, к которому можно получить доступ из всех js-файлов, даже если скрипты js не установлены в очередь с помощью wp_enqueue_script?

Это код, который я использую, который создает varibale для дескриптора «ajaxscript», поэтому я не могу получить доступ к объекту «ajaxobject» в файле js, который включен в header.php напрямую с помощью <script src="xxx" .... />

 wp_register_script( 'ajaxscript', get_bloginfo( 'template_url' ) . '/js/ajaxscript.js', array(), $version ); wp_enqueue_script( 'ajaxscript' ); wp_localize_script( 'ajaxscript', 'ajaxobject', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'ajaxnonce' => wp_create_nonce( 'itr_ajax_nonce' ) ) ); 

Solutions Collecting From Web of "Можно ли использовать wp_localize_script для создания глобальных переменных JS без определенного дескриптора скрипта?"

Вместо использования wp_localize_script в этом случае вы можете привязать переменные js к wp_head, таким образом, он будет доступен для всех js-файлов, таких как:

 function my_js_variables(){ ?> <script type="text/javascript"> var ajaxurl = '<?php echo admin_url( "admin-ajax.php" ); ?>'; var ajaxnonce = '<?php echo wp_create_nonce( "itr_ajax_nonce" ); ?>'; </script><?php } add_action ( 'wp_head', 'my_js_variables' ) 

Также, как было предложено @Weston Ruter, вы можете json закодировать переменные:

 add_action ( 'wp_head', 'my_js_variables' ); function my_js_variables(){ ?> <script type="text/javascript"> var ajaxurl = <?php echo json_encode( admin_url( "admin-ajax.php" ) ); ?>; var ajaxnonce = <?php echo json_encode( wp_create_nonce( "itr_ajax_nonce" ) ); ?>; var myarray = <?php echo json_encode( array( 'foo' => 'bar', 'available' => TRUE, 'ship' => array( 1, 2, 3, ), ) ); ?> </script><?php } 

Вы можете экспортировать любые данные, которые вы хотите в wp_head , как показывают вышеприведенные ответы. Тем не менее, вы должны использовать json_encode для подготовки данных PHP для экспорта в JS вместо того, чтобы вставлять необработанные значения в JS-литералы:

 function my_js_variables(){ ?> <script> var ajaxurl = <?php echo json_encode( admin_url( "admin-ajax.php" ) ) ?>; var ajaxnonce = <?php echo json_encode( wp_create_nonce( "itr_ajax_nonce" ) ) ?>; var myarray = <?php echo json_encode( array( 'food' => 'bard', 'bard' => false, 'quux' => array( 1, 2, 3, ), ) ) ?>; </script> <?php } add_action ( 'wp_head', 'my_js_variables' ) 

Использование json_encode упрощает работу с вами и предотвращает случайные синтаксические ошибки, если ваша строка содержит любые кавычки. Что еще более важно, использование json_encode предотвращает атаки XSS.

Я закончил это. Он работает сейчас! Спасибо @ dot1

 function itr_global_js_vars() { $ajax_url = 'var itrajaxobject = {"itrajaxurl":"'. admin_url( 'admin-ajax.php' ) .'", "itrajaxnonce":"'. wp_create_nonce( 'itr_ajax_nonce' ) .'"};'; echo "<script type='text/javascript'>\n"; echo "/* <![CDATA[ */\n"; echo $ajax_url; echo "\n/* ]]> */\n"; echo "</script>\n"; } add_action( 'wp_head', 'itr_global_js_vars' );