最新公告
  • 欢迎您光临大资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!怎么把网页设置成桌面图标
  • WordPress代码实现防止发表重复标题的文章

    WordPress代码实现防止发表重复标题的文章 最后编辑:2021-04-26
    增值服务: 自动发货 使用说明 安装指导 环境配置二次开发BUG修复

    WordPress代码实现防止发表重复标题的文章

    其实所有的插件这些的就等于放到function.php的代码片段。function.php里面的插件集成出来也可以做成一个插件,反过来插件也可以集成到function.php里面,插件的好处就是方便管理,但也添加了静态的资源请求,所以就导致了,插件越多也会导致网站卡顿的情况,扯得有点远了,直接上代码。

    主要修改的地方是:将 js 转为 script 标签内容,等于消除一个请求,翻译也省了,换成中文。 将下面代码复制粘贴到你主题的 functions.php 文件里面,这个不用解释了吧?

    实例代码:

    /**

    * 发表文章时禁止与已存在的标题相重复

    * Modify from Plugin: Duplicate Title Validate

    * Description: this plugin help , not allow publish Duplicate Title .

    * Author: hasan movahed

    * Reviser: INLOJV

    * Version: 1.0

    */

    // 发表文章页面,前端抓取标题并使用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’ ) ;

    }

    猜你在找

    常见问题FAQ

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

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-300)
      4、网站的问题处理(需额外付费,500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 3482249445@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者
    • 12139会员总数(位)
    • 107192资源总数(个)
    • 2751本周发布(个)
    • 340今日发布(个)
    • 3726稳定运行(天)

    开通VIP 知识课堂
    升级SVIP尊享更多特权立即升级
    召唤伊斯特瓦尔