为什么WordPress会自动修改图片URL?(从RSS跟踪像素)

时间:2012-02-04 作者:Erik Westermann

你能解释一下WordPress在保存一篇删除绝对URL并使其成为相对URL的文章时所应用的挂钩或过滤器吗?

背景

我的网站使用我付费的RSS提要,在每篇文章的末尾都有一个跟踪像素。跟踪像素位于一个IMG标签中,后面有一组参数-如下所示:

<img src=\'http://example.com/trackingPixel.gif?param1=123abc456\' />

RSS提要中每个项目的跟踪像素都会发生变化(示例中的“param1”之后),因此我不能自己添加像素,我必须使用提要内容中的像素。问题是WordPress将跟踪像素替换为如下相对URL:

/uploads/2012/02/trackingPixel.gif

修改后的URL使跟踪像素无用。

我已经寻找了几个小时的解决方法-我检查了默认过滤器,删除了默认过滤器,修改了$allowedtags全局变量,注释了wp\\u strip\\u all\\u tags函数,查看了主题、RSS阅读器等。

1 个回复
最合适的回答,由SO网友:krembo99 整理而成

关于HTML编辑器,如果您想使用不同的路径,而不需要下面列出的所有函数/挂钩,那么您应该使用“从URL上载”选项卡,而不是“从计算机上载”。。这将保留原始URL。

我不确定跟踪像素,如何在RSS(格式)或系统中的其他变量中获得它,但将图像发送到编辑器的函数是一个名为image\\u send\\u to\\u editor()的函数;

因此,使用下一个函数,将改变URLSENT TO THE EDITOR..

add_filter(\'image_send_to_editor\', \'change_image_url\', 20, 8);
$original_URL = \'your_url/not_sure_how/\'; // this part you have to pass the original URL..
function change_image_url($html, $id, $caption, $title, $align, $url, $size, $alt)
{
$url = $original_URL ;
return $url;
}
对于在编辑器外部使用,可以通过多种方式拦截上传路径,具体取决于您真正需要做什么(如我所说,我不知道您如何获得RSS,但首先要检查并挂接这些功能:

update_attached_file( $attachment_id, $file ) 
您将在此处挂钩的是$文件部分,它最初是:

$file = _wp_relative_upload_path($file);
如您所见,它调用了另一个带有$path参数的函数,您可以钩住该参数,即:

 _wp_relative_upload_path( $path )
此函数将图像的$路径更改为相对于upload 目录。

功能update_attached_file(); 还将更新post\\u meta hidden字段_wp_attached_file 使用:

update_post_meta( $attachment_id, \'_wp_attached_file\', $file );
这是控制路径的另一种方式。您可以根据需要操纵该custom\\u字段。这其实是最简单的方法。。。

结束

相关推荐

images are broken

我有一段代码,用于显示来自RSS提要的每篇帖子上的图像,这些图像将从yahoo images search获取,我将把这段代码粘贴到我的单曲中。php文件,这样它就会出现在我的帖子之后,我在其中一个网站上找到了这段代码,这段代码用于获取图像,但不是从yahoo获取图像,而是从不同的feed获取图像我使用的代码如下:- <?php include_once(ABSPATH.WPINC.\'/rss.php\'); // path to include script $f