我有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
更多精彩内容:各种技能学习课程、黑科技软件、网站小程序源码、副业小项目、电商课程、推广引流课程等,尽在 天边资源网 。