免插件为WordPress文章中标签添加内链
给文章标签添加内链,意思就是说,如果你文章中出现了和标签一样的文字,那么这个文字就会自动成为标签链接,你点击这个链接就会查看到所有含有该标签的文章,这个能方便用户浏览,据说还利于SEO。下面说说方法:
把下面的代码添加到function.php中就可以了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
//自动为文章标签添加该标签的链接 $match_num_from = 1; // 一个标签在文章中出现少于多少次不添加链接 $match_num_to = 1; // 一篇文章中同一个标签添加几次链接 add_filter( 'the_content' , 'tag_link' ,1); //按长度排序 function tag_sort( $a , $b ){ if ( $a ->name == $b ->name ) return 0; return ( strlen ( $a ->name) > strlen ( $b ->name) ) ? -1 : 1; } //为符合条件的标签添加链接 function tag_link( $content ){ global $match_num_from , $match_num_to ; $posttags = get_the_tags(); if ( $posttags ) { usort( $posttags , "tag_sort" ); foreach ( $posttags as $tag ) { $link = get_tag_link( $tag ->term_id); $keyword = $tag ->name; //链接的代码 $cleankeyword = stripslashes ( $keyword ); $url = "<a href=\"$link\" title=\"" . str_replace ( '%s' , addcslashes ( $cleankeyword , '$' ),__( 'View all posts in %s' )). "\"" ; $url .= ' target="_blank"' ; $url .= ">" . addcslashes ( $cleankeyword , '$' ). "</a>" ; $limit = rand( $match_num_from , $match_num_to ); //不链接的代码 $content = preg_replace( '|(<a[^>]+>)(.*)(' . $ex_word . ')(.*)(</a[^>]*>)|U' . $case , '$1$2%&&&&&%$4$5' , $content ); $content = preg_replace( '|(<img)(.*?)(' . $ex_word . ')(.*?)(>)|U' . $case , '$1$2%&&&&&%$4$5' , $content ); $cleankeyword = preg_quote( $cleankeyword , '\'' ); $regEx = '\'(?!((<.*?)|(<a.*?)))(' . $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))\'s' . $case ; $content = preg_replace( $regEx , $url , $content , $limit ); $content = str_replace ( '%&&&&&%' , stripslashes ( $ex_word ), $content ); } } return $content ; } |
看看效果图: