Wordpress - использовать параметр темы в файле JS

I'm creating a Wordpress theme and have added an option which allowed users to change a font family using (simplified code):

update_option('mytheme_font', $_POST['mytheme_font']);

Как мне получить значение этой опции в файле JS темы? Мне это нужно, потому что я использую Cufon для замены некоторых H1 и H2. Спасибо!


person Rik de Vos    schedule 19.10.2011    source источник


Ответы (2)


У вас есть четыре варианта, я полагаю.

Выведите свой javascript на свою страницу внутри тегов script. Самый простой

<script>
   <?php echo 'var x = 3;' ?>
</script>

Выведите переменную на свою страницу, а затем прочитайте ее из файла javascript. Неуклюжий, но это означает, что вам не нужно создавать глобальные js.

<div id="x" style="display: none;">3</div>
var x = document.getElementById('x').innerHTML();

[Добавлено] — Используйте AJAX для запроса данных и анализа после загрузки страницы.

Последнее, и я не рекомендую это, но настройте php для анализа файлов .js для динамического создания файлов javascript. Таким образом, вы можете поместить вызов <?php ?> в свои файлы .js.

person mrtsherman    schedule 19.10.2011
comment
Запросы AJAX могут быть очень медленными, так что это тоже не лучший вариант. - person Rik de Vos; 20.10.2011

Вы можете повторить что-то подобное в <head> файла header.php

<?php 

$defaultThemeFont = "myDefaultValue";
$userThemeFont = get_option("mytheme_font");

if($defaultThemeFont == NULL)
    $userThemeFont = $defaultThemeFont
?>
<script>

<?php echo "var mytheme_font = $userThemeFont;"; ?>

</script>

Теперь вы можете получить доступ к этой переменной из любого файла JS.

person brenjt    schedule 19.10.2011
comment
Я уже думал об этом, но единственный ли это вариант? Кстати, люди: не забудьте экранировать одинарные кавычки: ‹?php echo str_replace(', \', $userThemeFont); ?› - person Rik de Vos; 20.10.2011