纯代码实现自动为文章添加标签及标签内链接

tag标签对于一个站点是很重要的。由于wordpress没有自动获取标签,要我们发表文章的时候一个一个的输入设置比较麻烦,导致很多站长都选择不使用或者很少使用。下面,我们使用纯代码,就可以实现自动为文章添加标签及标签内链接。 1、WordPress纯代码实现自动添加文章标签的实现方法:只需要将以下代码添加到主题的functions.php文件最后一个?>即可。 /*自动为文章添加标签*/ add_…

tag标签对于一个站点是很重要的。由于wordpress没有自动获取标签,要我们发表文章的时候一个一个的输入设置比较麻烦,导致很多站长都选择不使用或者很少使用。下面,我们使用纯代码,就可以实现自动为文章添加标签及标签内链接。

1、WordPress纯代码实现自动添加文章标签的实现方法:只需要将以下代码添加到主题的functions.php文件最后一个?>即可。

/* 自动为文章添加标签 */
add_action(\’save_post\’, \’auto_add_tags\’);
function auto_add_tags(){
    $tags = get_tags( array(\’hide_empty\’ => false) );
    $post_id = get_the_ID();
    $post_content = get_post($post_id)->post_content;
    if ($tags) {
        foreach ( $tags as $tag ) {
            // 如果文章内容出现了已使用过的标签,自动添加这些标签
            if ( strpos($post_content, $tag->name) !== false)
                wp_set_post_tags( $post_id, $tag->name, true );
        }
    }
}

以上代码的功能就是在我们发布/保存/更新文章时,自动检测文章中的内容,是否出现曾经使用过的标签。如果出现过就会自动为文章添加这些标签。

2、WordPress纯代码实现自动为文章内的标签添加内链的方法:同样是将以下代码添加到主题的functions.php文件最后一个?>即可。

/* 自动为文章内的标签添加内链 */
$match_num_from = 1;        //一篇文章中同一个标签少于几次不自动链接
$match_num_to = 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, \’$\’),__(\’【查看含有[%s]标签的文章】\’)).""";
                $url .= \’ target="_blank"\’;
                $url .= " rel="noopener noreferrer">".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;
}
add_filter(\’the_content\’,\’tag_link\’,1);

以上代码的功能就是在我们发布/保存/更新文章时,自动检测文章中的内容,是否出现标签内容。如果出现过就会自动为文章内的标签添加内链。

3、给自动加内链代码加上自动加粗tag标签,我们只需在以上代码中找到如下句

$url = "<a href="$link" title="".str_replace(\’%s\’,addcslashes($cleankeyword, \’$\’),__(\’【查看含有[%s]标签的文章】\’)).""";

给这句a标签后面加上一个class或者直接加上style即可。

只要我们站点的Tag标签够多的情况下,使用这两个代码以实现WordPress站点自动为文章添加标签和标签内链,那么将会大大减少我们的工作量。如果大家平时不喜欢人工添加标签的,不妨试试这个方法。

本博客 [ 秋硕笔记 ] 内带有 原创 标签文章,均为秋硕独立创作。

撰文不易,转载请注明文章来源并保留原文链接:本文转载自 秋硕笔记。

本文链接:https://www.cuikaiyun.cn/pure-code-to-automatically-add-tags-and-links-within-tags-to-articles.html

主题标签标签内链接

原创文章,作者:秋硕笔记,如若转载,请注明出处:https://www.davidwu.net/archives/1461

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

邮件:itbound@sina.com

工作时间:周一至周六,9:30-18:30

 

QR code