wordpress代码实现检测文章相似度达到80%禁止发布

97次阅读

共计 944 个字符,预计需要花费 3 分钟才能阅读完成。

的功能,你可以编写一个函数,该函数接受两篇文章的 ID 作为参数,并使用上述方法计算它们的相似度。别人不多说,我们只需要把这面的代码放到 function.php 中即可:

// 检测是否有重复文章

function check_duplicate_post($post_id) {

$post = get_post($post_id);

$title = $post->post_title;

$content = $post->post_content;

$args = array(

‘post_type’ => ‘post’, // 确定文章类型

‘post_status’ => ‘publish’, // 仅检查已发布的文章

‘s’ => $title, // 匹配标题

‘posts_per_page’ => -1. // 获取所有匹配文章

);

$query = new WP_Query($args); // 查询并获取符合条件的文章

if ($query->have_posts()) {

while ($query->have_posts()){

$query->the_post();

$post_content = get_post_field(‘post_content’, $query->post->ID);

// 计算相似度

similar_text($content, $post_content, $percent);

if ($percent > 80) {// 如果相似度大于 80. 阻止保存新文章

wp_die(‘ 您将发布的文章与 ID 为 ‘ . $query->post->ID . ‘ 的文章相似度达到 ‘ . $percent . ‘%,请勿发布重复文章。’);

}

}

wp_reset_postdata();

}

}

add_action(‘save_post’, ‘check_duplicate_post’,10.1);

注意事项:

为什么有的网友说填写该代码后,文章还是可以发布出去,这个问题很可能是因为您的文章已经被保存在草稿或预览模式下,但没有正式发布。如果文章处于草稿或预览状态,则代码不会找到匹配的文章,并且不会阻止保存新文章。

因此最好的方法是将文章发布为公开状态而不是草稿或预览模式,如果文章相似直接发布就会马上停止。

同时,如果您使用了缓存插件或服务器缓存,您可能需要清除缓存才能看到修改后产生的效果。

正文完
 
天天
版权声明:本站原创文章,由 天天 2023-07-08发表,共计944字。
转载说明:

本文由 天天资讯网 整理发布,转载请注明出处.
版权声明:部分文章内容或图片来源于网络,我们尊重作者的知识产权。如有侵犯,请联系我们在第一时间删除。