Wordpress多站点主题使用$ template_url调用主站点URL

时间:2016-10-27 14:01:50

标签: wordpress themes multisite

我有一个主题似乎是从主站点网址加载一些css / javascript,这导致了一些问题。

例如,两个Jquery在网站URL上加载正常,但是引导程序没有加载,因为他们试图从他们无法访问的网址中提取。

<script type='text/javascript' src='http://live-site.co.uk/wp-includes/js/jquery/jquery.js?ver=1.12.3'></script>
<script type='text/javascript' src='http://live-site.co.uk/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.0'></script>
<script type='text/javascript' src='//internal-site.co.uk/live/wp-content/themes/live-site-1/bootstrap.min.js?ver=1.0.159'></script>
<script type='text/javascript' src='//internal-site.co.uk/live/wp-content/themes/live-site-1/script.js?ver=1.0.159'></script>

我已经浏览了模板并在函数中找到了使用wp_register_script和wp_enque_script调用的函数,它们使用$ template_url获取路径,该模板是从get_bloginfo()

创建的
 $template_url = str_replace( array( 'http:', 'https:' ), '', get_bloginfo('template_url', 'display'));

wp_enqueue_script( 'jquery', false, array(), $version, 'all' );

wp_register_script("theme-bootstrap", $template_url . '/bootstrap.min.js', array('jquery'), $version);
wp_enqueue_script("theme-bootstrap");

wp_register_script("theme-script", $template_url . '/script.js', array('jquery', 'theme-bootstrap'), $version);
wp_enqueue_script("theme-script");

这个get_bloginfo网址是否导致问题?

1 个答案:

答案 0 :(得分:0)

我刚改变了行

$template_url = str_replace( array( 'http:', 'https:' ), '', get_bloginfo('template_url', 'display'));

$template_url = get_stylesheet_directory_uri();

get_bloginfo(&#39; template_url&#39;)不识别子主题,虽然这不是一个子主题,但它是一个子站点,所以可能这就是它加载主站点URL的原因。 get_stylesheet_directory识别子站点,因此使用您所在站点的完整URL,以解决我的问题。可能会有更优雅的解决方案。

我猜测,在获取资产时,多站点中的子站点在某些方面的处理方式类似于子主题