我有一个网站,它的博客使用WordPress(网站本身不是WordPress)。因此,结构是:
www.website.com (not WordPress)
www.website.com/blog (WordPress)
我有一个用于网站和博客的JavaScript文件。但是当我链接到函数中的文件时。php文件,WordPress尝试在主题中找到它:
// Register the script
wp_register_script(\'circle-bounce\', get_template_directory_uri() . \'/js/general.js\', array( \'jquery\', \'jquery-effects-core\', \'jquery-effects-bounce\'));
这是找将军的。wordpress子主题文件夹中的js文件。在源中,它链接到:
http://www.website.com/blog/wp-content/themes/twentytwelve/js/general.js?ver=4.2.2
我实际上需要它来获取网站根目录下js文件夹中的文件。因此,可以在以下位置找到该文件:
website.com/js/general.js
我实现这一目标的唯一方法是将注册更改为:
// Register the script
wp_register_script(\'circle-bounce\', \'http://www.website.com/js/general.js\', array( \'jquery\', \'jquery-effects-core\', \'jquery-effects-bounce\'));
如果可以的话,我想避免绝对链接。还有别的办法吗?
最合适的回答,由SO网友:Mathew Tinsley 整理而成
您的第一次尝试无效,因为get_template_directory_uri
返回主题目录的URL。
第二次尝试可以,但如果不想硬编码域,可以尝试使用根相对路径或获取站点url的域部分。
相对路径:
wp_register_script(\'circle-bounce\', \'/js/general.js\', array( \'jquery\', \'jquery-effects-core\', \'jquery-effects-bounce\'));
域:
$parts = parse_url(site_url());
$domain_url = $parts[\'scheme\'] . \'://\' . $parts[\'host\'];
wp_register_script(\'circle-bounce\', $domain_url . \'/js/general.js\', array( \'jquery\', \'jquery-effects-core\', \'jquery-effects-bounce\'));