Intereting Posts
Добавление параметров видимости Переписать правила для настраиваемого пула сообщений Есть ли какие-либо требования к серверу для переходных процессов WordPress для правильной работы? Как получить тип oEmbed (аудио, видео, изображение и т. Д.)? Как заставить пользователя принять лицензионное соглашение перед загрузкой stats_get_csv (статистика WordPress), чтобы отображать только верхние сообщения (а не страницы) Получите роли «Контентное разрешение», как определено на странице Использовать / prefix / postname как slug в post_name? Использовать участников с 1 сайта на другом Условный заголовок в wordpress Запустит ли WordPress на Nginx «приседать» для своей производительности? Как удалить мистический текст из текста? Изображение включено Какие возможности назначены пользователям, не прошедшим проверку подлинности? url переписать парсинг пользовательского параметра URL не работает Измените имя и имя_файла для профиля в меню по умолчанию, без изменения основных файлов?

Обратный вызов короткого кода для add_action ('wp_footer')

Я пытаюсь создать короткий код Google Maps, используя gMap- плагин из Github, а не простой iframe. Для чего я должен повторить собственный встроенный скрипт для короткого кода EACH, непосредственно перед закрывающим тегом body, после загрузки jQuery и всех других скриптов.

Следующий короткий код работает, но он только добавляет встроенный скрипт один раз, а не для каждого короткого кода. Когда я добавляю три коротких кода [map], он должен добавить встроенный скрипт для каждого из коротких кодов, трех встроенных скриптов, в нижний колонтитул. Но он добавляет только один скрипт. Который является одним из последнего короткого кода.

class map_class { protected static $var = ''; public static function map_callback($atts) { extract(shortcode_atts(array( 'address' => 'Main Street, New York City, United States', 'zoom' => '14' ), $atts)); $id= rand(); $script = '<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>'; $script .= '<script type="text/javascript"> jQuery(document).ready(function(){ jQuery("#googlemap' . $id . '").gMap({ address: "' . $address . '", zoom: ' . $zoom . ' }); }); </script>'; self::$var = $script; add_action( 'wp_footer', array ( __CLASS__, 'footer' ), 20 ); return '<div id="googlemap' . $id . '" class="googlemap" style="height: ' . $height . '"></div>'; } public static function footer() { echo self::$var; } } add_shortcode( 'map', array ( 'map_class', 'map_callback' ) ); 

$ script содержит все три встроенных скрипта, но когда я пытаюсь вызвать $ script в add_action, вот так:

 add_action( 'wp_footer', array ( __CLASS__, $script ), 20 ); 

.. Я получаю следующую ошибку:

«Предполагается, что первый аргумент будет действительным обратным вызовом»

Я ценю любую помощь здесь.

Solutions Collecting From Web of "Обратный вызов короткого кода для add_action ('wp_footer')"

каждый раз, когда вы вызываете функцию shortcode, вы перезаписываете предыдущий скрипт var текущей версией. сделайте его массивом вместо строки:

 self::$var[] = $script; 

и затем выводить с помощью foreach:

 public static function footer() { foreach( self::$var as $script ){ echo $script; } }