最新公告
  • 欢迎您光临HELLO资源,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 怎么防止发表重复标题的文章?

    防止发布相同标题的文章 

    平时发文章做外链啥的,站长都比较忙,有时会发布同样标题的文章,这个给时候就可以通过这串代码来进行一个简单的预判了。

    注意:推荐在传统编辑器下使用。

    可以在您发布文章的时候,进行一个文章标题重复的检查

    将此函数放在主题根目录下的functions.php 文件的 <?php下面保存即可

    // 发表文章页面,前端抓取标题并使用AJAX发送请求
    add_action( 'admin_print_footer_scripts', 'duplicate_titles_enqueue_scripts', 100 );
    function duplicate_titles_enqueue_scripts() {
    ?>
    <script>
    jQuery(function($){
    
    function checkTitleAjax(title, id,post_type) {
    var data = {
    action: 'title_checks',
    post_title: title,
    post_type: post_type,
    post_id: id
    };
    $.post(ajaxurl, data, function(response) {
    $('#message').remove();
    $('#poststuff').prepend('<div id=\"message\" class=\"updated below-h2 fade \"><p>'+response+'</p></div>');
    });
    };
    $('#title').change(function() {
    var title = $('#title').val();
    var id = $('#post_ID').val();
    var post_type = $('#post_type').val();
    checkTitleAjax(title, id,post_type);
    });
    
    });
    </script>
    <?php
    }
    
    
    
    // 接收前端ajax参数
    add_action('wp_ajax_title_checks', 'duplicate_title_checks_callback');
    function duplicate_title_checks_callback(){
    global $wpdb;
    $title = $_POST['post_title'];
    $post_id = $_POST['post_id'];
    $titles = "SELECT post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'
    AND post_title = '{$title}' AND ID != {$post_id} ";
    $results = $wpdb->get_results($titles);
    if($results) {
    echo "<span style='color:red'>". _( '此标题已存在,请换一个标题!' , '' ) ." </span>";
    } else {
    echo '<span style="color:green">'._('恭喜,此标题未与其他文章标题重复!' , '').'</span>';
    }
    die();
    }
    
    // 检测后端标题并且避免同名文章更新草稿
    add_action( 'publish_post','duplicate_titles_wallfa_bc' ) ;
    function duplicate_titles_wallfa_bc( $post ){
    global $wpdb ;
    $title = $_POST['post_title'] ;
    $post_id = $post ;
    $wtitles = "SELECT post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'
    AND post_title = '{$title}' AND ID != {$post_id} " ;
    $wresults = $wpdb->get_results( $wtitles ) ;
    if ( $wresults ){
    $wpdb->update( $wpdb->posts, array( 'post_status' =>
    'draft' ), array( 'ID' => $post ) ) ;
    $arr_params = array( 'message' => '10', 'wallfaerror' => '1' ) ;
    $location = add_query_arg( $arr_params , get_edit_post_link( $post , 'url' ) ) ;
    wp_redirect( $location ) ;
    exit ;
    }
    }
    
    
    
    /// 文章提交更新后的提示
    add_action( 'admin_notices', 'not_published_error_notice' );
    function not_published_error_notice() {
    if(isset($_GET['wallfaerror']) == 1 ){
    ?>
    <div class="updated">
    <p style='color:red' ><?php _e('貌似已经存在相同标题的文章,若您使用了文章别名作为固定链接,则可以通过修改本文的固定链接来使标题不再重复!' , '') ?></p>
    </div>
    <?php
    }
    }
    
    
    
    // 禁用自动保存
    add_action( 'wp_print_scripts', 'disable_autosave' ) ;
    function disable_autosave(){
    wp_deregister_script( 'autosave' ) ;
    }
    买服务器就选:你好VPS-助力各位站长上云
    HELLO资源 » 怎么防止发表重复标题的文章?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    HELLO资源网
    一个高级程序员模板开发平台
    • 305会员总数(位)
    • 1189资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 1809稳定运行(天)

    提供最优质的资源集合

    加入会员 充值中心