分享所分享的

WordPress防止发表重复标题的文章[纯代码]

本文最后更新于2018年11月8日,因长期没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!

实所有插件后端代码都等同于加入到functions.php的代码片段,functions.php里的代码片段可以做成插件,那么反过来插件自然也可以集成到functions.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
 * Author URI: http://www.wallfa.com
 * Reviser URI: http://www.inlojv.com
 */


// 发表文章页面,前端抓取标题并使用AJAX发送请求
add_action( 'admin_print_footer_scripts', 'duplicate_titles_enqueue_scripts', 100 );
function duplicate_titles_enqueue_scripts() {
?>

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 "". _( '此标题已存在,请换一个标题!' , '' ) ." ";
	} else {
		echo ''._('恭喜,此标题未与其他文章标题重复!' , '').'';
	} 
	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 ){
	   ?>
	   

×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

打赏作者
历史上的今天
十一月
8
    哇哦~~~,历史上的今天没发表过文章哦
赞(4) 打赏
未经允许不得转载:Andy's Blog » WordPress防止发表重复标题的文章[纯代码]
分享到: 更多 (0)
标签:

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

WordPress防止发表重复标题的文章[纯代码]-海报

分享本文封面