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

    防止发布相同标题的文章 

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

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

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

    将此函数放在主题根目录下的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' ) ;
    }
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,默认解压密码为"www.yuankufang.com",如遇到无法解压的请联系管理员!
    源库坊 » 怎么防止发表重复标题的文章?

    常见问题FAQ

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

    提供最优质的资源集合

    赞助本站svip 了解详情