从帖子/页面内部调用主题文件夹中的图像?

时间:2014-03-24 作者:user13286

我正在为我的一位客户建立一个网站,他希望自己能够进行一些小的布局更改。因此,我使用文本编辑器将一些布局直接编码到页面中。我面临的问题是动态地将模板目录中的图像包含到帖子/页面中。

通常我会使用<img src="<?php echo get_template_directory_uri(); ?>/images/image.png"> 但是,当将代码直接放入页面/帖子时,这不起作用,因为原始文本是输出的。

有谁能告诉我如何在不使用媒体库的情况下通过帖子/页面区域动态包含图像(因为我想将网站资产与附件分开)。

谢谢

2 个回复
最合适的回答,由SO网友:Chris Ferdinandi 整理而成

我知道这是7个月前发布的,但如果您仍在寻找解决方案,请将此添加到functions.php 文件:

/**
 * Add a shortcode for the current theme directory
 * @return string Current theme directory
 */
function yourtheme_get_theme_directory_uri() {
    return get_template_directory_uri();
}
add_shortcode( \'themeuri\', \'yourtheme_get_theme_directory_uri\' );
然后在WordPress编辑器中,您只需使用[themeuri] 包含当前活动主题目录URL的快捷码。

通常,您希望将这样的短代码作为插件包含在内,以便在更改主题时短代码不会消失。然而,因为您使用它来包含特定于您的主题的媒体,我认为这并不重要。

对于那些问你为什么要这样做的人:如果发布此问题的用户有需要在编辑器中加载的特定于主题的资产,并且可能会更改,但保留相同的文件名,那么这是一种比使用媒体上传器更聪明、对未来更友好的方法。

例如,在我自己的主题中,我有一个始终命名为icons.svg 但是,随着时间的推移,请添加新图标或删除一些图标。精灵是作为我的大口构建的一部分生成的。这样的方法可以避免每次更新精灵时都需要重新加载和更新URL。

SO网友:Monkey Puzzle

我不太清楚你想做什么(以及为什么)。。。但您知道,您可以将媒体库上载文件夹更改为“Wordpress目录”之外的内容,以便您的上载全部变为,例如www.yourdomain。com/文件/媒体1。jpg等。

Here\'s a good basic tutorial on this.

这能帮你解决吗?

结束

相关推荐

Custom post types templates

我已经注册了一个名为“Services”的自定义帖子类型,但当我给这篇帖子提供模板“single Services.php”时,它不接受这个,而是选择了“homepage.php”模板,你能告诉我这个问题吗?它也没有使用“archive services.php”模板,而是使用blog模板(index.php)使现代化代码如下:add_action(\'init\', \'services_register\'); function services_register() { $