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


wordpress image path changing dependent on file

我的第一个wordpress主题的路径有问题。Post图片和东西不相关的css位于wordpress_folder/blog-images/和index.php当我链接到图像我使用这个路径:blog-images/img.jpg

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

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

有人知道发生了什么事吗?

如果您是从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,但如果你在一个有url yoursite.com/wordpress_folder/2011/09/category/my_great_post的帖子上,那么路径将解析为wordpress_folder/2011/09/category/blog_images/img.jpg,这显然是不正确的。

因此,你应该尝试使用绝对路径或完整URL,这样无论你从哪个文件/文件夹/URL链接,路径总是正确的。

你可能会遇到的主要缺点是,如果你要改变wordpress文件夹的名称,或者完全删除它,那么你可能需要做很多编辑来反映这一点。但是在任何情况下,你应该把/放在你的路径前面,这样它就可以从任何地方被引用。

还可以查看site_url()参考页面,它在底部列出了一些可能对您有用的其他有用函数

我认为这与drew的答案有点不清楚,所以我在一个单独的答案中添加了一点。他的建议很合理,我同意他的意见。

如果你在url前加上/,那么它将根据你的网站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" />

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

如果你要创建到主题目录文件夹的链接,那么你需要使用bloginfo('template_directory')