Я использую url
У меня есть javascript (jquery) файл с именем custom.js, в котором я использую:
(function ($) { $(document).ready(function () { $('.days').countdown({ until: directorDate, layout: '{dn} {dl}', timezone: +7 }); $('#weather').openWeather({ city: 'directorCity //The city is in a string.It used to be 'New York,US' placeTarget: '.weather-place', iconTarget: '.weather-icon', customIcons: 'dark/files/img/icons/weather/' }); }); })(jQuery);
В моем заголовке я использую:
<script>var directorDate = new Date(<?php $date = get_option('director_date');?> <?php if( $date) : ?> <?php echo $date; ?> <?php endif; ?>); var directorCity = <?php $city = get_option('director_city');?> <?php if( $city) : ?> <?php echo $city; ?> <?php endif; ?></script>
В основном происходит то, что заголовок получает данные из файла themeoptions.php (форма в wordpress admin для ввода пользователем данных. Я не показывал его, потому что структура как director_city, так и director_date там же) и то custom.js получает данные из заголовка.
Теперь обратный отсчет работает, однако город не отображается. Почему это так?
Попробуйте в php заменить эту строку:
var directorCity = <?php $city = get_option('director_city');?> <?php if( $city) : ?> <?php echo $city; ?> <?php endif; ?>
с:
var directorCity = <?php $city = get_option('director_city');?> <?php if( $city) : ?> <?php echo "'".$city."';"; ?> <?php endif; ?>
Попробуйте, и если он не работает, отправьте результат html из этого php-файла.
Эта строка выглядит некорректно: city: 'directorCity //The city is in a string.It used to be 'New York,US'
. Он читает всю эту строку как строку (и, вероятно, бросает ошибку на N после второй одинарной кавычки?).
Похоже, вы после имени города directoryCity
, хранящегося в directoryCity
, поэтому попробуйте изменить эту строку на city: directoryCity,
Если это не сработает, можете ли вы проверить наличие ошибок в консоли javascript и, если хотите, опубликовать их?