优化、建站、营销知识
刻苦驴一直在做且免费分享

wordpress纯代码实现防止发布文章出现标题重复

由于,我们有些时候,写网站的文章,直接复制粘贴他人网站的,很容易就出现内容,标题重复,今天刻苦驴就给大家带来wordpress纯代码实现防止发布文章出现标题重复,这是一种纯代码的模式,因为使用插件很多时候不兼容或者多一个请求,导致网站变慢。

/**
 * 发表文章时禁止与已存在的标题相重复
 * 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.qq301.com
 * Reviser URI: https://www.qq301.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 ){
	   ?>
	   

将以上代码放在主题文件下面的functions.php文件里面即可。

赞(0)
未经允许不得转载:【刻苦驴笔记】 » wordpress纯代码实现防止发布文章出现标题重复

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址