我正在将当前WordPress 4.7.3
网站迁移为完整SSL
,当我使用https://
前缀登录网站时,该函数会调用get_template_directory_uri()
和{{1将跳过路径的主题部分。
我能注意到的一个示例代码行是:
bloginfo('template_directory')
另一个示例代码行是:
wp_enqueue_style('fancybox', get_template_directory_uri() . '/assets/css/fancybox/jquery.fancybox.css', false, null);
如果我使用<img src="<?php bloginfo('template_directory'); ?>/assets/img/myimg.png" class="pull-left img-responsive"/>
http://example.com
这与使用...
<link rel="stylesheet" href="http://example.com/wp-content/themes/mytheme/assets/css/fancybox/jquery.fancybox.css">
...
<img src="http://example.com/wp-content/themes/mytheme/assets/img/myimg.png" class="pull-left img-responsive"/>
...
https://example.com
我最近迁移了具有相同WP版本的其他网站和使用相同功能的旧版模板,它们只是工作,这就是为什么我很感兴趣,如果这是一个特定的...
<link rel="stylesheet" href="https://example.com/assets/css/fancybox/jquery.fancybox.css">
...
<img src="https://example.com/assets/img/myimg.png" class="pull-left img-responsive"/>
...
或其他设置,会造成我无法弄清楚的这种行为。
为清楚起见,wp_option
和siteurl
都设置为home
,当然,这不是实际的域名。这是一个干净的WP安装,它的核心没有任何变化,只有主题和几个插件(askimet,S3上传)不应该发生冲突。
有关为https://example.com
来电跳过/wp-content/themes/mytheme
的原因的任何线索?
答案 0 :(得分:1)
由于主题上的几个配置,最终发生了这种情况:
add_theme_support('root-relative-urls'); // Enable relative URLs
add_theme_support('rewrites'); // Enable URL rewrites
删除后,我能够获得预期的结果,该网站现在可以使用https://
使用SSL。
为了找到这个,我必须比较其他工作模板中的每个文件,并通过试验和错误进行比较。
希望将来不会浪费太多时间浪费在类似问题上的人!
答案 1 :(得分:0)
如果您将get_template_directory_uri()
替换为bloginfo('template_directory')
,那么您正在获取没有主题路径的路径是正常的,因为函数bloginfo不会返回任何值,它只是{{ 3}}价值。侧节点,如果您查看页面源,您可能应该看到DOM中的某个位置:
https://example.com/example.com/wp-content/themes/mytheme
因此,当您将样式排入队列时,它只会排队'/assets/css/fancybox/jquery.fancybox.css'
。
你想要的是echo,它将返回值而不是echo:
wp_enqueue_style('fancybox', get_bloginfo('template_directory') . '/assets/css/fancybox/jquery.fancybox.css', false, null);