之前小辰一直使用WP keyword link这个插件给文章中的关键字增加内链,以优化SEO。但插件多了对博客的速度肯定有影响,所以找了个无插件实现的方法。只需在主题文件夹中的function.php最后一个?>之前增加以下代码即可实现tag自动内链:
不用插件WordPress怎样实现自动设置tag标签自动内链? – WordPress – 免费资源网
//自动TAG转内链 $match_num_from = 2; // 一个TAG标签出现几次才加链接 $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 ; } |
如果有冲突出现问题,我们需要检查是不是不兼容。检查不出来的话,就只能使用插件了。
本文固定链接:http://www.iayuidc.com/524.html
未经允许不得转载:主机推荐 » WordPress不用插件怎样实现自动设置tag标签自动内链