2017-05-12 56 views
0

我遷移當前WordPress 4.7.3網站成爲全返回不同的結果SSL,當我登錄到該網站使用https://前綴的函數調用來get_template_directory_uri()bloginfo('template_directory')會跳過路徑的主題部分。WordPress的get_template_directory_uri()和代碼bloginfo(「template_directory」)與HTTPS

一個例子代碼行,我是能夠注意到的是:

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

... 
<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版本和舊的模板,所以這就是爲什麼我如果這是由任何一個特定的wp_option或其他設置導致這種行爲,我無法弄清楚的情況下引起的興趣。

爲了清楚起見,siteurlhome都設置爲https://example.com,當然,這不是實際的域名。這是一個乾淨的WP安裝,它的核心沒有變化,只有一個不應該衝突的主題和幾個插件(askimet,S3上傳)。

爲什麼在https://調用中跳過/wp-content/themes/mytheme的任何線索?

+0

要澄清一下,你用'bloginfo'將'get_template_directory_uri()'替換成了'右邊'? –

+0

@ChinLeung我沒有取代。以上我只提到一個案例。我看到'bloginfo'的其他例子返回相同的模式,如' fagiani

+0

@ChinLeung I'我已經編輯了這個問題,試圖讓這個場景更加清晰,讓我知道你是否需要更多的信息 – fagiani

回答

1

它結束了,這已經發生了,由於在主題幾個配置:

add_theme_support('root-relative-urls'); // Enable relative URLs 
add_theme_support('rewrites');    // Enable URL rewrites 

刪除後,我能夠得到預期的結果,並且該網站現在使用SSL使用https://

爲了找到這個問題,我不得不比較其他模板工作的每個文件,並通過試用和錯誤得到這個。

希望它能幫助別人在將來不會浪費太多時間在類似的問題上!

+1

很高興知道!不錯的發現:) –

0

如果用bloginfo('template_directory')更換get_template_directory_uri(),這是正常的,你要沒有主題路徑的路徑,因爲功能bloginfo不返回任何價值,它只是echo值。側節點,如果你查看頁面源,你應該看到某處DOM:

https://example.com/example.com/wp-content/themes/mytheme 

因此,當你排隊的風格,它只是排隊'/assets/css/fancybox/jquery.fancybox.css'

你想要的是get_bloginfo而不是將返回值,而不是回聲:

wp_enqueue_style('fancybox', get_bloginfo('template_directory') . '/assets/css/fancybox/jquery.fancybox.css', false, null); 
+0

其他主題/網站使用相同的函數,並且它可以很好地處理'https'。改變主題,看看這個WP設置/設置是否有一些具體的細節,導致這個奇怪的行爲,然後我開始黑客入侵主題。 – fagiani

相關問題