Я добавил пользовательский script:
wp_enqueue_script('functions', get_bloginfo('template_url') . '/js/functions.js', 'search', null, false);
Он отлично работает, кроме functions.js
у меня есть:
Reset.style.background = "url('../images/searchfield_clear.png') no-repeat top left";
Раньше это работало до тех пор, пока я не переменился на довольно постоянные ссылки и .htaccess
Иерархия папок похожа:
themename/js themename/images
(изображения и папка js находятся в папке с именами)
Я пробовал.. /images -./image -/images
Обычно он должен возвращаться на 1 уровень, где находится файл js....
Я не хочу использовать полный путь.
Есть ли другой способ, который WordPress может распознать в файле javascript, чтобы иметь правильный путь?
В настоящее время я просто смущен тем, что делаю неправильно.
Вы можете избежать жесткого кодирования полного пути, установив JS-переменную в заголовок вашего шаблона, до вызова wp_head()
, удерживая URL-адрес шаблона. Как:
<script type="text/javascript">
var templateUrl = '<?= get_bloginfo("template_url"); ?>';
</script>
И используйте эту переменную для установки фона (я понимаю, что вы знаете, как это сделать, я включаю только эти данные, если они помогают другим):
Reset.style.background = " url('"+templateUrl+"/images/searchfield_clear.png') ";
Согласно документации Wordpress, вы должны использовать wp_localize_script()
в файле functions.php. Это создаст объект Javascript в заголовке, который будет доступен для ваших скриптов во время выполнения.
См. Codex
Пример:
<?php wp_localize_script('mylib', 'WPURLS', array( 'siteurl' => get_option('siteurl') )); ?>
Чтобы получить доступ к этой переменной внутри Javascript, вы просто выполните:
<script type="text/javascript">
var url = WPURLS.siteurl;
</script>
wp_register_script('custom-js',WP_PLUGIN_URL.'/PLUGIN_NAME/js/custom.js',array(),NULL,true);
wp_enqueue_script('custom-js');
$wnm_custom = array( 'template_url' => get_bloginfo('template_url') );
wp_localize_script( 'custom-js', 'wnm_custom', $wnm_custom );
и в custom.js
alert(wnm_custom.template_url);
Если файл javascript загружен из панели управления admin, эта функция javascript предоставит вам корень вашей установки WordPress. Я использую это много, когда создаю плагины, которые должны делать ajax-запросы с панели управления admin.
function getHomeUrl() {
var href = window.location.href;
var index = href.indexOf('/wp-admin');
var homeUrl = href.substring(0, index);
return homeUrl;
}
wp_localize_script()