wordpress图像路径改变依赖于文件

时间:2011-09-29 15:32:01

标签: php wordpress

我遇到了第一个wordpress主题的路径问题。发布图片和与css无关的内容位于wordpress_folder/blog-images/和index.php中,当我链接到图片时,我使用此路径:blog-images/img.jpg

现在的问题是,当我想从另一个文件(而不是index.php)链接到同一个图像时,在这种情况下,single.php会显示一篇博文,正确的路径现在是../../../blog-images/img.jpg

这会导致包括边栏等问题。sidebar.php从index.php调用时工作正常,但如果从single.php调用sidebar.php,则会更改图像路径。

有谁知道发生了什么事?

2 个答案:

答案 0 :(得分:3)

如果您是从php脚本中创建这些链接,我建议使用site_url()函数获取wordpress安装的URL,然后将图像路径附加到其末尾。如果您正在编辑像css这样的静态主题文件,那么您应该使用/wordpress_folder/blog_images/img.jpg。

<img src="<?php echo site_url() ?>/blog_images/img.jpg" />之类的东西应该足够来自主题文件。

路径处理的原因是因为如果您在wordpress_folder,那么路径blog_images/img.jpg会解析为wordpress_folder/blog_images/img.jpg,但如果您的帖子中包含网址yoursite.com/ wordpress_folder / 2011/09 / category / my_great_post然后路径将解析为wordpress_folder/2011/09/category/blog_images/img.jpg,这显然是不正确的。

出于这个原因,你应该尝试使用绝对路径或完整的URL,这样无论你链接的文件/文件夹/网址是什么,路径都将是正确的。

您可能遇到的主要缺点是,如果您要更改wordpress文件夹的名称,或者完全删除它,那么您可能需要进行大量编辑才能反映出来。但无论如何,你应该将/放在你的路径前面,这样它就可以从任何地方引用它。

另请查看site_url()参考页,其中列出了一些可能对您有用的其他有用功能。

答案 1 :(得分:1)

我认为这从画得的答案中有点不清楚,所以我在一个单独的答案中增加了一点点。他的建议是合理的,我同意他的意见。

如果您使用/添加网址,则会根据您的网站网址进行导航。没有斜线它使用相对导航。

以下是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" />

如果您是从php端动态创建链接,那么您将需要使用site_url()

如果要创建指向主题目录文件夹的链接,则需要使用bloginfo('template_directory')