wp_localize_script() — локализация JavaScript, получение данных из PHP

Итак, как именно это работает: мы передаем в функцию параметры, которые могут быть взяты из базы данных, либо являться результатом выполнения других функций, после этого функция выводит все эти параметры в виде JSON-объекта непосредственно перед подключением нужного нам js-файла.

wp_localize_script( $handle, $object_name, $l10n )
$handle
(строка) идентификатор файла JavaScript
$object_name
(строка) название JSON-объекта, который в результате будет содержать значения параметров
$l10n
(массив) ассоциативный массив вида параметр=>значение, может быть многоуровневым

Пример локализации

Обратите внимание, что wp_localize_script() должна быть вызвана только после того, как скрипт будет зарегистрирован или поставлен в очередь на вывод.

function true_localize_example(){
	wp_enqueue_script( 'truescript', get_stylesheet_directory_uri() . '/truescript.js' );
	wp_localize_script( 'truescript', 'true_object', array( 'param_1' => __( 'Options saved.' )) );
}
 
add_action('wp_enqueue_scripts', 'true_localize_example');

В итоге, непосредственно перед вставкой файла truescript.js, функция добавит следующий код:

<script type='text/javascript'>
/* <![CDATA[ */
var true_object = {"param_1":"Настройки сохранены."};
/* ]]> */
</script>

Теперь вы можете обратиться к значению в объекте прямо из truescript.js следующим образом:

alert( true_object.param_1 );

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Vladislav: Подправил имеющийся у меня код, по вашим рекомендациям, миниатюры начали отображаться, но они стали очень огромными, что...

  • Миша: Лишь предложил решение. Думаю можно нашаманить и так, чтобы чисто для рубрик было, не уверен только, что обойдётся без и...

  • Алексей: так надо комментарии в рубриках, а не на страницах в category.php а не в page.php

  • Миша: Здравствуйте! Сам WordPress это не поддерживает, но можно пойти хитрым путём. Первое, что пришло мне в голову, это:...

  • Алексей: Миша, здравствуйте! Подскажите, пожалуйста, что нужно, чтобы сделать комментарии на страницах рубрик. Я когда то давно...