我遇到了第一个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,则会更改图像路径。
有谁知道发生了什么事?
答案 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')