共计 666 个字符,预计需要花费 2 分钟才能阅读完成。
对于文章数多的博客,在写文章时,如果发布了重复标题的文章,是一件很尴尬的事情,那么下面我们通过一些代码来防止这个问题出现。
将下面这些代码,放到主题目录 functions.php 下即可。
[cc lang=”html”]
// 发表文章页面,前端抓取标题并使用 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 ){
?>