wordpress 插件开发 - 使用图像 - 找不到路径

Posted

技术标签:

【中文标题】wordpress 插件开发 - 使用图像 - 找不到路径【英文标题】:wordpress plugin development - using images - path not found 【发布时间】:2011-03-04 10:41:19 【问题描述】:

我正在为 wordpress 编写插件,但在处理图像时遇到了问题。如果我在 wp-content/plugins/my-plugin/ 中有我的插件,并且在其中有一个文件夹 images/test.png - 我如何在我的代码中引用该图像?我不想把图片放到主题中,因为当其他用户来获取我的插件时,图片将无法正常工作!

所以我的结构是

myplugin/plugin.php (which includes several files...)
myplugin/pluginstyle.css
myplugin/includes/page.php
myplugin/images/test.png

我的样式表工作得很好,但是当我尝试使用图像作为元素的背景时,它不起作用。

如何在插件中引用图片?

page.php 的测试输出

<div class="test"><p>hello</p></div>

css

.test  background: url(../images/test.png) repeat-x; 

我哪里错了?有没有我应该使用的方法? 感谢您的帮助!

【问题讨论】:

CSS 是外部的,还是嵌入在 html 中的? 见下面的帖子。我使用 wp_head 动作钩子调用 CSS。所以它是外部的,不是嵌入到我认为的 html 中? 【参考方案1】:

WordPress 的 PHP 常量 WP_PLUGIN_URL 包含插件文件夹的绝对 URL。因此,要获取 url,请使用WP_PLUGIN_URL . '/myplugin/images/test.png'。在样式表中,图像路径总是相对于样式表本身。使用

.test  background: url(images/test.png); 

应该可以工作,只要它在外部样式表中。如果是内联的,则应使用绝对 URL。

【讨论】:

好吧,我使用 wp_head() 钩子在我的插件中调用样式表。它只是输出 ...我真的不想在 PHP 文件中硬编码任何样式(这是我使用 WP_PLUGIN_URL 方法的地方...或者这是唯一的方法?调用时不会 images/test.png对于根中的那个图像文件夹?即:根/图像或页面是什么(使用永久链接)/图像?? 没有。通过包含 CSS 文件的方式,使用 url(images/test.png) 将在正确的文件夹中查找。外部样式表中的相对 URL 引用相对于样式表的 url 路径,而不是请求的文档。这与主题在样式表中使用图像的方式完全相同。相同的概念。 是的 - 只是使用 images/test.png 工作.. 不敢相信!当然,我先尝试了那个……显然做错了什么!【参考方案2】:

一种方法是:

plugins_url('images/test.png', __FILE__)

...即使用户更改了父目录的名称,它也会为您提供正确的 URL。

【讨论】:

【参考方案3】:

我是这样用科林的回答的:

    <img src="<?php echo plugins_url( 'images/test.png', __FILE__ ); ?>" border="0" />

【讨论】:

以上是关于wordpress 插件开发 - 使用图像 - 找不到路径的主要内容,如果未能解决你的问题,请参考以下文章

WordPress:主题可以开箱即用吗?

在Wordpress上使用ACF上的自定义字段时找不到“图库”字段类型

wordpress 插件是啥意思

带有 Javascript 的 Wordpress 插件

带有多个图像的 Wordpress 滑块

Wordpress 插件开发 - 文件上传:如何允许指定的文件类型?