首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过在运行"wp_insert_post"之前检查帖子标题是否存在来防止重复发帖?

要防止在运行 "wp_insert_post" 之前检查帖子标题是否存在来防止重复发帖,您可以使用以下方法:

  1. 使用 get_page_by_title 函数检查帖子标题是否存在:

在调用 wp_insert_post 函数之前,您可以使用 get_page_by_title 函数检查帖子标题是否已经存在。如果存在,则不调用 wp_insert_post 函数。

代码语言:php
复制
$title = '帖子标题';
$existing_post = get_page_by_title( $title, OBJECT, 'post' );

if ( ! $existing_post ) {
    $post_id = wp_insert_post( array(
        'post_title' => $title,
        'post_content' => '帖子内容',
        'post_status' => 'publish',
        'post_type' => 'post',
    ) );
}
  1. 使用 pre_get_posts 钩子:

您可以使用 pre_get_posts 钩子来检查帖子标题是否存在。如果存在,则不调用 wp_insert_post 函数。

代码语言:php
复制
function check_duplicate_title( $query ) {
    if ( $query->is_main_query() && $query->is_search ) {
        $query->set( 'post_title', '帖子标题' );
    }
}
add_action( 'pre_get_posts', 'check_duplicate_title' );
  1. 使用 save_post 钩子:

您可以使用 save_post 钩子来检查帖子标题是否存在。如果存在,则不保存帖子。

代码语言:php
复制
function check_duplicate_title_before_save( $post_id ) {
    $title = get_the_title( $post_id );
    $existing_post = get_page_by_title( $title, OBJECT, 'post' );

    if ( $existing_post && $existing_post->ID != $post_id ) {
        wp_delete_post( $post_id, true );
    }
}
add_action( 'save_post', 'check_duplicate_title_before_save' );

这些方法可以帮助您在运行 wp_insert_post 之前检查帖子标题是否存在,从而防止重复发帖。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券