0

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

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

4

2 回答 2

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 抓取帖子的内容和下一个帖子的链接。使用正则表达式将内容中围绕图像的 href 替换为下一篇文章的链接。然后将过滤器添加到 the_content 函数。

希望对你有用!

于 2012-10-31T15:58:38.757 回答
0

首先,我认为您正在做的事情可能有点hacky,您可能知道这一点,所以我将提出一个想法。

您可以使用get_next_posts_link() 检索下一篇文章的 url;

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

因此,您可以使用 jQuery 轻松地在帖子中查找图像,用您可以从 data-nextpostlink 属性获取的下一个帖子链接重写链接。

正如我所说,它很老套,绝不理想。但如果你想这样做,那么你可以尝试这样的事情。

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

于 2012-10-31T14:48:44.527 回答