Intereting Posts
Как установить плагины на отдельных сайтах в сети wordpress? получать сообщения и postmetas в массиве поиск запроса для публикации, а также идентификатор сообщения Отображение пользовательского типа сообщений на главной странице Список подкатегорий с изображением Что происходит с дочерней темой, если я перехожу к новой версии родительской темы? Могу ли я настроить сеанс в пользовательской странице WordPress? Добавить пользовательские поля в профиль пользователя Получить общее количество авторов на сайте Как перенаправить главную страницу на фактический URL? Как получить доступ к моему wordpress через IP в общем хостинге Панель избранных изображений отсутствует в пользовательском типе сообщений в WordPress 3.2 Контент против шаблона в пользовательской почте Как включить фоновое изображение в мои таблицы стилей в плагине? Wp_enqueue не печатает версию

Включая javascript для короткого кода

Я создаю плагин, который позволяет пользователю использовать короткий код. Этот короткий код зависит от кучи javascript, который должен присутствовать после загрузки короткого кода.

У меня возникают проблемы с тем, чтобы решить, когда и где загрузить javascript. Кусочки кода, который вырывает короткий код, являются элементами, которые должны присутствовать, но недоступны для использования jQuery.

Есть ли особый способ загрузки и прикрепления скриптов, на которые основан короткий код?

function build_total_search_method( $atts ) { $shorcode_php_function = include( dirname(__FILE__) . "/includes/total_search.php" ); return $shorcode_php_function; } add_shortcode( 'total_search', 'build_total_search_method' ); 

Кажется, что это работает, но также печатает 1 на странице. Этот метод в порядке?

Solutions Collecting From Web of "Включая javascript для короткого кода"

Используйте wp_enqueue_script в вашем обработчике коротких сообщений, в WordPress> = 3.3 он будет добавлен на страницу в действие wp_footer . Передайте любые данные из PHP на JavaScript через wp_localize_script .

wp_enqueue_script() включает wp_localize_script() – правильное решение. Разбирайте аргументы короткого кода или выставляйте всегда скрипт.

Если у вас много данных, и вы будете использовать это в объекте Json. Некоторые подсказки, которые должны помочь, если дело касается проблем или которые напрямую связаны с решениями через JSON. Функция wp_localize_script() расшифровывает HTML-объекты, что является важным, но не всегда идеальным решением. Функция использует json_encode() , что может привести к проблемам в многомерных массивах в связи с расшифровкой объектов. Альтернативным решением является отправка данных как объекта json, как пример ниже.

 add_action( 'admin_enqueue_scripts', 'fb_print_scripts' ); function fb_print_scripts() { global $current_screen; if ( isset( $current_screen -> id ) && ! in_array( $current_screen -> id, array( 'post', 'page' ) ) ) return; if ( is_plugin_active_for_network( plugin_basename( __FILE__ ) ) ) $options = get_site_option( 'my_options_id' ); else $options = get_option( 'my_options_id' ); if ( ! $options ) return; ?> <script type="text/javascript"> var my_json_object = <?php echo json_encode( $options ); ?>; </script> <?php }