2011-09-29 20 views
0

我遇到了第一個WordPress主題的路徑問題。發佈圖像和與CSS無關的東西位於wordpress_folder/blog-images/和index.php當我鏈接到圖像我使用此路徑:blog-images/img.jpgwordpress圖像路徑依賴於文件更改

現在的問題是,當我想鏈接到從另一個文件相同的圖像(不index.php)在這種情況下single.php顯示一個博客帖子,正確的路徑是現在../../../blog-images/img.jpg

這是包括像側邊欄等導致問題sidebar.php工作正常時,從index.php調用但如果從single.php調用sidebar.php,則圖像路徑會更改。

有誰知道發生了什麼事?

回答

3

如果您是從php腳本內創建這些鏈接,我會建議使用site_url()函數獲取您的wordpress安裝URL,然後將圖像路徑追加到最後。如果您正在編輯像css這樣的靜態主題文件,那麼您應該使用/wordpress_folder/blog_images/img.jpg。

<img src="<?php echo site_url() ?>/blog_images/img.jpg" />之類的東西應該足以從主題文件。

該路徑chaning的原因是因爲如果你在wordpress_folder那麼路徑blog_images/img.jpg解析爲wordpress_folder/blog_images/img.jpg,但如果你是一個具有URL yoursite.com/wordpress_folder/2011/09/category/my_great_post那麼一個帖子路徑將解析爲wordpress_folder/2011/09/category/blog_images/img.jpg,這顯然是不正確的。

因此,您應該嘗試使用絕對路徑或完整網址,以便無論您鏈接到哪個文件/文件夾/網址,路徑始終都是正確的。

您可能遇到的主要缺點是,如果您要更改wordpress文件夾的名稱,或者將其完全刪除,那麼您可能需要進行大量編輯才能反映出來。但無論如何,您應該將/放在您的路徑的前面,以便它可以在任何地方被引用。

同時查看site_url()參考頁面,它列出了底部可能對您有用的其他一些有用的功能。

1

我認爲這是從德魯的答案有點不清楚,所以我在一個單獨的答案中增加了一點點。他的建議很有道理,我同意他的看法。

如果您預先設定了一個帶有/的網址,那麼它會根據您的網站網址進行導航。沒有斜線,它使用相對導航。

因此,這裏如果是從PHP端創建動態鏈接,那麼你將要使用site_url()爲www.mydomain.com

//always shows the image located at http://www.mydomain.com/myfolder/pic.png 
//no matter what the url is 
<img src="/myfolder/pic.png" /> 

//shows the image located relative to the current path 
//if current url is http://www.mydomain.com/posts/ then the image will come from 
//http://www.mydomain.com/posts/myfolder/pic.png 
<img src="myfolder/pic.png" /> 

一些例子。

如果您正在創建鏈接到您的主題目錄文件夾,那麼您將要使用bloginfo('template_directory')