js脚本文件中的WordPress路径URL

我添加了自定义脚本:

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文件夹位于themename文件夹中)

我尝试了../images-./image-/ images

通常, 无论js文件位于何处, 它都应返回1级。

我不想使用完整路径。

WordPress可以通过另一种方法识别javascript文件中的正确路径吗?

目前, 我只是对自己在做错的事情感到困惑。


#1


你可以通过在调用wp_head()之前保持模板URL的模板标题中设置一个JS变量来避免对完整路径进行硬编码。喜欢:

<script type="text/javascript">
var templateUrl = '<?= get_bloginfo("template_url"); ?>';
</script>

并使用该变量设置背景(我知道你知道该怎么做, 我只包括这些详细信息, 以防它们对其他人有所帮助):

Reset.style.background = " url('"+templateUrl+"/images/searchfield_clear.png') ";

#2


根据Wordpress文档, 你应该在functions.php文件中使用wp_localize_script()。这将在标头中创建一个Javascript对象, 该脚本对象将在运行时可供你使用。

参见法典

例子:

<?php wp_localize_script('mylib', 'WPURLS', array( 'siteurl' => get_option('siteurl') )); ?>

要在Javascript中访问此变量, 只需执行以下操作:

<script type="text/javascript">
    var url = WPURLS.siteurl;
</script>

#3


    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);

#4


如果从管理控制台加载了javascript文件, 则此javascript函数将为你提供WordPress安装的根目录。在构建需要从管理仪表板发出Ajax请求的插件时, 我会经常使用它。

function getHomeUrl() {
  var href = window.location.href;
  var index = href.indexOf('/wp-admin');
  var homeUrl = href.substring(0, index);
  return homeUrl;
}

#5


适用于使用Genesis框架的用户。

将以下内容添加到你的子主题functions.php中

add_action( 'genesis_before', 'script_urls' );

function script_urls() {
?>
    <script type="text/javascript">
     var stylesheetDir = '<?= get_bloginfo("stylesheet_directory"); ?>';
    </script>
<?php
}

并使用该变量在脚本中设置相对网址。例如:

Reset.style.background = " url('"+stylesheetDir+"/images/searchfield_clear.png') ";

来源:

https://www.srcmini02.com/66258.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?