【问题标题】:Wordpress images in a subdirectory子目录中的 Wordpress 图像
【发布时间】:2016-05-16 21:12:29
【问题描述】:

我在子目录中安装了 WP,但在我的页面模板和 php 文件中,我引用了文档根目录,因此它返回到主目录以加载图像文件。有没有像 .htaccess 文件这样的快速方法,可以先将图像重定向到子目录?

MainURL: mysite.com/wordpress1
CPURL: mysite.com/wordpress1

<img src="/images/image1.jpg">

I want the image to load from: "/wordpress1/images/image1.jpg"

我不想手动硬编码子目录,以防我以后不需要使用它。我希望它是通用的...

【问题讨论】:

  • 你在问 - 稍微 - 错误的问题。 .htaccess 不是最好的方法。我添加了一个答案,概述了 Wordpress 的功能。

标签: php wordpress .htaccess


【解决方案1】:

使用 .htaccess 并不是最好的方法 - Wordpress 定义了一系列函数,以便您获得正确的目录。它是为这样的情况而设计的:Wordpress 最终所在的文件夹可能非常不同!

此函数将始终返回站点 URL:home_url(),例如:http://example.com/wordpress

所以你可以像这样引用你的图片:

<img src="<?php echo home_url(); ?>/images/image1.jpg">

还有一个 site_url() 函数,differences are explained in this question/answer

如果您正在开发主题也很有用,此函数将始终返回主题目录根:get_template_directory_uri(),例如:http://example.com/wordpress/wp-content/themes/mytheme

this Codex page 处有返回各种 URL 和服务器路径以供您的 Wordpress 安装的函数的完整列表。

【讨论】:

    【解决方案2】:

    如果您在模板中使用绝对路径,那么您编写模板的方式可能有问题,顺便说一句,这里是一个简单的重写规则

    RedirectMatch 301 ^/wp-content/uploads/(.*)$ /subdir/wp-content/uploads/$1
    

    subdir替换成你的子目录,这个例子是在wp-content的uploads子目录下做的,但你也可以应用到其他子目录。

    【讨论】:

    • 我不理解反对票,因为答案很明确:有没有像 .htaccess 文件一样快速将图像重定向到子目录的方法?和我给出的(在我提到错误方法之前)是 .htaccess 的重定向规则...
    猜你喜欢
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多