Wordpress发布文章时自动添加标签及分类和已有标签不再更新的方法

最近在开发一个站点,需要用wordpress程序来自动对发布文章增加标签,下面直接给大家分享下自己项目中写的代码,希望对大家有帮助。

add_action('save_post', 'default_category_and_tags');
function default_category_and_tags($post_id) {
    global $wpdb;
    // 设置默认分类ID
    $default_category_id = 3019;
     //此处还可以根据需要自己定义修改分类ID。
    
     $post_title = get_post($post_id)->post_title;
     // $content = get_post($post_id)->post_content;  
     wp_set_post_categories( $post_id, array( $default_category_id ) );
    // 以下自动匹配已有相关标签
    $i=0;
$taxonomy='post_tag';
$ptags = get_terms( array(
    'taxonomy' => 'post_tag', // 这里指定标签的分类法
    'hide_empty' => false,    
) );

    $cutText = mb_substr($post_title, 0, 2, "UTF-8");
    
/* 可以获取指定名称的标签
$ptags = get_terms( array(
    'name' => $tag_names,
    'taxonomy' => 'post_tag',
    'hide_empty' => false,
));*/
 

 foreach ($ptags as $tag ) {

    // 如果文章标题出现了已使用过的标签,自动添加这些标签,这里也可以对内容进行匹配,下面的post_title需要换为content
      if ( strpos($post_title, $tag->name) !== false && strpos($tag->name,'售后')===false){            
        if ($i == 1) { // 控制输出数量
          break;
         }
         $tagname=$tag->name;
         $i++;
      }
    }
     $istags = wp_get_post_tags($post_id);//判断是否已经有标签
 if($tagname && !$istags){
 wp_set_post_tags($post_id, array($tagname.'售后',$tagname.'售后服务',$tagname.'售后维修',$tagname.'售后维修电话'), true );//这里直接固定了4个对应包括已有标签的新标签。
 }

以上代码亲测可以用,希望可以帮到有这个需求的朋友。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值