WordPress代码实现防止发布标题重复的文章。如果对你有帮助,请看看。
事实上,所有插件在function.php都相当于代码片段。function.php的插件也可以集成到插件中,插件又可以集成到function.php。插件的好处是容易管理,但是也增加了一个静态的资源请求,导致插件越多,网站就会卡住,有点远,直接添加代码。
该功能利用率低,使用频率低,但对于大型内容网站来说,屏蔽重复内容标题是一个非常好的功能。我们也在使用这个函数。因此,在主题中增加了一套重复的标题检索功能。如果重新使用标题,则在您发布内容时,系统会自动提醒您并自动将其保存为草稿格式,并且不会成功发布。 方法简单。继续增强主题的functions.php文件。
//发布文章页面时,前端获取标题并使用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 ){ ?>