我不知道这是否是最佳实践,但我也遇到了类似的问题,我最终通过自定义sql查询检查标题是否已经存在于我的帖子类型中,并过滤了重复的帖子,我将其连接到wp_insert_post_data
过滤器挂钩。
add_filter(\'wp_insert_post_data\',\'prevente_duplicates\');
function prevente_duplicates($data,$postarr){
$count = $wpdb->get_results($wpdb->prepare("SELECT count(id)
FROM $wpdb->posts
WHERE post_type = \'MY_POST_TYPE_NAME\'
AND post_title = \'%s\'",$data[\'post_title\']));
if ($count > 0 ){
return false;
}
return $data;
}