我有2个(或多个) WordPress 的站点,使用C站点调用A站点的 Rest API 发布文章(已经实现),接下来我需要在文章发布之后做一些操作,比如自动添加已有标签功能。
起初我用的是 save_post 这个钩子,但这个只能在后台点更新文章的时候才会自动添加标签,也就是需要按钮触发,而我是使用 API 发布文章的,无法触发 save_post 钩子。
我上网找很久,也问了 ChatGPT,之前提供给我的是 rest_after_insert_post 这个钩子,我调试半天也没生效。
最后经过折腾发现 wp_insert_post 这个钩子可以实现,得注意参数问题。这里把我的自动添加标签的代码附上:
/**
 * 自动给文章添加系统存在的标签
 *
 * @param $post_id
 * @param $post
 * @param $update
 *
 * @author 云轩
 */
function custom_add_tags($post_id, $post, $update)
{
    // 要排除的分类ID
    $except_category_id = 951;
    // 检查当前文章是否不属于分类ID
    if (!has_category($except_category_id, $post_id)) {
        $tags = get_tags(array('hide_empty' => false));
        $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);
                }
            }
        }
    }
}
add_action('wp_insert_post', 'custom_add_tags', 10, 3);PHP
	更多精彩内容:各种AI课程、技能课程、黑科技软件、网站小程序源码、副业小项目、PPT模板等精品素材、电商课程、推广引流课程等,尽在 云轩资源网 。