如何从the_content()函数获取的图像中删除href链接

时间:2012-10-31 06:50:16

标签: php wordpress

我有一个摄影组合网站。当单击single.php页面上的图像时,会调用the_content()函数并将用户重定向到图像的实际目录 例如; http://www.abcxyz.com/wp-content/uploads/2011/10/311565_33735319633456038_270235255_n.jpg

我希望用户在图片点击时被重定向到下一个/其他帖子,并且没有得到我需要更改的核心wordpress文件中的锚标记,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

好的,所以我想做这个WordPress风格而不是用jQuery破解它。所以这是你可以在你的functions.php中使用的。我认为它应该做你想做的事情:

function my_the_content_filter() {
$content = get_the_content();
$nextpost = get_permalink(get_adjacent_post(false,'',false));

$body = preg_replace("{<img\\s*(.*?)src=('.*?'|\".*?\"|[^\\s]+)(.*?)\\s*/?>}ims", '<a href='.$nextpost.'><img $1src=$2 $3/></a>', $content);    

return $body;
}
add_filter( 'the_content', 'my_the_content_filter' );

因此,my_the_content_filter函数会抓取帖子的内容和下一个帖子的链接。使用正则表达式将包含内容中图像的hrefs替换为下一篇文章的链接。然后将过滤器添加到the_content函数。

希望对你有用!

答案 1 :(得分:0)

首先,我认为你所做的事情可能有点过时,你可能知道这一点,所以我会提出一个想法。

您可以使用get_next_posts_link();

检索下一个帖子网址

您可以将其附加到包装该帖子的相关元素的数据属性。假设帖子包含div或article标签,您可以向其添加data-nextpostlink属性。

那么你可以使用jQuery在帖子中找到图像,很容易用下一个你可以从data-nextpostlink属性中获取的帖子链接重写链接。

正如我所说的那样,它很苛刻,绝不是理想的。但如果你想这样做,你可以试试这样的事情。

在WordPress术语中可能更好的另一种想法是使用add_filter并更改函数。您可能需要使用一些正则表达式来识别the_content函数中的图像。