风君子博客

  • 首页
  • 业界
  • 前端
  • 运维
  • 建站
  • 软件
  • 生活
  • 后端
  • 创投
  • 运营
  • 程序人生
    • 影视
    • 游戏
    • 句子
    • bootstrap4教程
    • 资源
    • 日期计算器
  • 其他
    • 说说
    • 关于本站
  1. 首页
  2. 建站
  3. 正文

wordpress怎么防止发表重复标题的文章

2020年9月30日 6745点热度 0人点赞 1条评论

网站新闻是通过采集器进行发布的,有时会发布同样标题的文章,这个给时候就可以通过这串代码来进行一个简单的预判了。

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

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

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

/**
 * 发表文章时禁止与已存在的标题相重复
 * 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' ) ;

}

 

标签: function php wordpress
最后更新:2020年9月30日

风君子

独自遨游何稽首 揭天掀地慰生平

点赞
< 上一篇
下一篇 >

猜你喜欢

  • 威联通(QNAP)推出免授权费的一站式 WordPress 备份解决方案

  • JetBrains 详解最新成立的 PHP 基金会,公司每年捐赠 100000 美元

  • WordPress添加头部Meta property=og协议

  • wordpress升级常见问题解决方法

  • 宝塔面板 ImageMagick无法安装解决办法

  • php版zblog保存主题配置时提示Allowed memory size of 268435456 bytes exhausted (tried to allocate 12288 bytes)解决方法

  • WordPress无法建立到WordPress.org的安全连接解决方法

  • wordpress更新插件出现:cURL error 28: Operation timed out after 10001 milliseconds with 0 out of 0 bytes received

  • WordPress 后台更新升级失败的解决方法

  • 同一台服务器多个wordpress站点同时开启Memcached缓存冲突导致网站打开空白的问题

  • WordPress彻底清理已卸载主题及插件残留的wp_options数据表

  • wordpress后台文章管理默认单页数量是20篇如何修改

文章评论

  • youyou

    你好,咨询下你的文章后面的相关文章采用的是哪个插件,谢谢!

    2022年7月30日
    回复
  • 取消回复

    风君子

    独自遨游何稽首 揭天掀地慰生平

    最新 热点 随机
    最新 热点 随机
    小米 CyberOne 全尺寸仿生机器人“铁大”亮相 【IT之家开箱】小米 Buds 4 Pro 实拍图赏:亮哑反差,“声临其静” 小米米家智能净烟机 P1 发布,首发价 3699 元 由于通货膨胀降温,苹果公司股价 7 月上涨 2.4% 至 168.83 美元 小米进军电动汽车 500 天,雷军公布最新进展:目标 2024 年进入自动驾驶第一阵营 首发 4999 元,米家分区洗烘一体机发布 【IT之家开箱】小米 Watch S1 Pro 图赏:在低调中寻找格调 2999 元起,小米 Redmi K50 至尊版发布:骁龙 8+、1.5K 直屏、1 亿像素光学防抖、120W 快充 广汽集团、广汽乘用车、广汽埃安注资 9 亿元成立电驱科技公司 炼狱蝰蛇 V3 专业版发布:63g 重,首发 1099 元
    谷歌 Chrome OS 正式更名为 ChromeOS 品牌信用卡审核久是不是代表通过不了 这可不一定工行孩子王baby年费可以免吗?得看你消费能力够不够信用卡透支额度是什么 要怎么计算工行星级评定标准 这些知识你必须掌握统信 UOS 宣布成为国内首个 50 万 + 操作系统生态适配组合索尼宣布《如龙》系列 8 款游戏将于今年年内加入 PS+ 会员游戏库建行龙卡喜马拉雅fm信用卡制卡要多久?阿里云盘 iOS 版 3.9.0 更新:新增共享相簿,新版传图识字,iPad 支持扫码登录联想晒拯救者 Y70 手机背面照:7.99mm 轻薄机身,CNC 金属中框
    银行销卡必须去开户行吗 收购搜狗获无条件批准,腾讯港股大涨 5%,市值达 5.38 万亿港元 通用汽车计划到 2025 年在韩国推出 10 款电动汽车 Redmi K30 Pro变焦版DxO已安排 卢伟冰:成绩会有的 春雨医生、必胜客等20余款APP存涉嫌隐私不合规行为 【IT之家评测室】OnePlus Buds Pro 耳机评测:遮蔽车马喧嚣,留下虫鸣鸟叫 浦发腾讯王卡信用卡申请条件 满足了就能赢得360元话费 同样是集成灶 为啥有的很实用有的却很鸡肋 斗鱼虎牙组“百亿美元”团,挡得住B站抖快吗? 蚂蚁董事长井贤栋:新金融必须以数据和科技为中心
    标签聚合
    小米 iphone 额度 华为 投资理财 银行 马斯克 手机 三星 科技 股票 借款人 支付宝 特斯拉 理财知识 微软 秘籍 腾讯 信用卡 汽车 IT资讯 银行卡 美国 苹果 快科技 利息 电动汽车 京东 芯片 贷款
    注意事项 病虫 办法 品种 常见 水培 新买 家庭 处理 怎么 作文 什么时候 家里 回事 阳台 大全 原因 作用 什么 冬天 叶子发黄 防治 区别 适合 发黄 盆景 吊兰 虫害 有哪些 开花 栀子花 养花 植物 老舍 时间 君子兰 治方 图片 功效 绿萝 叶子 兰花 肥料 室内 怎么办 盆栽 烂根 方法 多久 花语
    Tags
    酒 胡萝卜 食物 私房菜 有什么好处 水果 能吃 鸡蛋 身体 会胖吗 副作用 吃什么 相克 好处 饮食 作用 土豆食谱 方法 牛肉 豆腐 糖 热量 茄子 好吃 营养 皮肤过敏 区别 菜谱 牛肉食谱 功效 怎么做 营养价值 豆腐食谱 维生素 土豆 热菜 食用方法 常吃 健康 排骨 汤类 高血压 牛奶 糖尿病人 做法 吃法 下饭菜 海鲜 一起吃 排骨食谱
    最近评论
    youyou 发布于 2 周前(07月30日) 站长,文章底部相关文章使用的是哪款插件,方便提供下吗,可发邮箱,谢谢!
    youyou 发布于 2 周前(07月30日) 你好,咨询下你的文章后面的相关文章采用的是哪个插件,谢谢!
    www 发布于 3 周前(07月19日) 听!我知道你们不会相信这一点,但我得到了这个 Minecraft 升级代码并且它被赎回了!你也可以从...
    鲜盖 发布于 2 个月前(06月24日) 感谢你的博客页!完美解决了困扰我的滚动条问题!
    仍搜 发布于 2 个月前(06月07日) 你好换个友情链接吧
    九九 发布于 3 个月前(05月06日) 也可能是 IP2LOCATION 数据
    风君子 发布于 8 个月前(12月20日) 直播这么赚钱的吗?
    wanif 发布于 8 个月前(12月18日) 采用你提供的pe制作u盘后无法识别mac硬盘,如何解决?
    robotunl 发布于 8 个月前(12月18日) 可以用了,感谢
    robotunl 发布于 8 个月前(12月17日) DISM++链接下不了了啊,能再发一个么。 还有怎么制作和博主一样的PE u盘。

    COPYRIGHT © 2022 风君子博客 ALL RIGHTS RESERVED.

    豫ICP备14018241号