北极寒流 » 网络资源 » 为文章图片自动添加到当前文章链接功能(WordPress) - 2012.09.25

为文章图片自动添加到当前文章链接功能(WordPress)

为文章图片自动添加到当前文章链接功能,这标题有点拗口,一下子可能让人不明白啥意思。先解释一下吧,就是当文章中有图片时,自动让图片链接到当前文章页面。本来想找插件来实现,不过找了很久都没有找到这样的插件,倒是找到一段代码。

原来实现文章图片自动添加到当前文章链接功能很简单,只需要通过正则替换文章中的图片,添加链接地址而已。

function auto_post_link($content) {
    global $post;
        $content = preg_replace('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', "<a href=\"".get_permalink()."\" title=\"".$post->post_title."\" ><img src=\"$2\" alt=\"".$post->post_title."\" /></a>", $content);
    return $content;
}
add_filter ('the_content', 'auto_post_link',0);

将这段代码,贴到主题文件的function.php里就行了,文章的图片,会自动添加当前文章页面的链接了。

另外,随手又加了一个小功能,将文章标签作为关键词,将文章内的关键词自动加上链接,有利于SEO,别人复制的时候,就会留下链接了。在上面的函数里继续添加一段代码即可。

function auto_post_link($content) {
        global $post;
        $content = preg_replace('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i', "<a href=\"".get_permalink()."\" title=\"".$post->post_title."\" ><img src=\"$2\" alt=\"".$post->post_title."\" /></a>", $content);
        $posttags = get_the_tags();
     if ($posttags) {
         foreach($posttags as $tag) {
             $link = get_tag_link($tag->term_id);
             $keyword = $tag->name;
               $content = preg_replace('\'(?!((<.*?)|(<a.*?)))('. $keyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))\'s','<a href="'.$link.'" title="'.$keyword.'">'.$keyword.'</a>',$content,2);//最多替换2个重复的词,避免过度SEO
         }
     }
       return $content;
}
add_filter ('the_content', 'auto_post_link',0);

资料来源:http://zhaokaihua.com/article/405.htm

评论关闭