在 localhost、Wordpress 和自定义字段上重写 img src url

Posted

技术标签:

【中文标题】在 localhost、Wordpress 和自定义字段上重写 img src url【英文标题】:Rewrite img src url's on localhost, Wordpress and Custom Fields 【发布时间】:2012-08-02 04:46:20 【问题描述】:

我正在尝试通过自定义字段加载图像,而不是使用特色图像。

我的自定义字段如下

name:  image-small
value: /images/thumbs/small/example.jpg

php

<img src='<?php echo get_post_meta($post->ID, 'image-small', true); ?>'>

而不是将 img src 写为

http://localhost/project.co.uk/images/thumbs/small/example.jpg

它显示

http://localhost/images/thumbs/small/example.jpg

有没有办法编写 htaccess 以便它重新路由 url,或者我是否必须将它硬编码到 html 中直到我上线,然后用上面的代码替换代码?还是有更简单的方法来做到这一点?

我找到了

relative paths to image file in wordpress (3.3.1) custom fields?

但它并没有帮助我解决它。

【问题讨论】:

或许:&lt;img src='&lt;?php echo get_post_meta($post-&gt;ID, $_SERVER['SERVER_NAME'] . 'image-small', true); ?&gt;'&gt;? 我会试试的。谢谢戴夫/大卫:) 【参考方案1】:

您的问题是该字段中的 URL 以“/”开头,这意味着“回到域的根目录”。由于就您的浏览器而言,域是“localhost”,因此您将获得“http://localhost/images/...”分辨率。

请注意,执行此解释的是您的浏览器,而不是 PHP 代码。

您需要做的是在 src="" 属性的开头回显您要放在 URL 上的基数,以便从“http://”开始输出完整的 URL。查看您的示例,这可能是home_url() 或site_url()

也就是说,你的代码会变成这样:&lt;img src='&lt;?php echo home_url() . get_post_meta($post-&gt;ID, 'image-small', true); ?&gt;'&gt;

【讨论】:

以上是关于在 localhost、Wordpress 和自定义字段上重写 img src url的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress 自定义演示侧边栏未出现在帖子上

WordPress 创建自定义功能

Wordpress 中的自定义重写规则

PHP WordPress:自定义子导航

scss Wordpress的自定义社交分享按钮

带有 localhost 和 8090 端口的 Wordpress 多站点