Haibor는 ID 제어에 대한 개념이 있고 깨끗하고 단순한 것을 좋아하기 때문에 WordPress 새 버전의 자동 초안 저장 기능으로 인해 로그 ID가 많이 낭비되고 따라서 로그 ID가 불연속적으로 발생합니다. 이 기능을 없애주세요! !
먼저 상황을 설명하겠습니다. ID 불연속성은 주로 세 가지 기능으로 인해 발생합니다. 하나는 자동 저장 기능 Auto-Save, 두 번째는 기록 버전 Post Revisions, 세 번째는 자동 초안 기능 Auto-Draft입니다! 다양한 WordPress 버전에 따라 솔루션도 다릅니다! 해당 솔루션을 선택해주세요!
WordPress 3.1 이전 버전(3.1 제외):
1. wp-config.php 파일을 열고 "$table_prefix = 'wp_';" 앞에 다음 코드를 추가합니다.
정의('WP_POST_REVISIONS', false);
정의('AUTOSAVE_INTERVAL', false);
2. wp-adminpost-new.php 및 wp-adminpost.php 두 파일을 찾아 열고 "wp_enqueue_script('autosave');"에 댓글을 달거나 삭제합니다.
//wp_enqueue_script('자동저장');
3. wp-adminincludespost.php 파일을 찾아 열고 "if ($create_in_db) {"를 찾아 그 앞에 다음 줄을 추가합니다.
$create_in_db = 거짓;
WordPress 3.1 이상 버전(3.1 포함):
버전 3.1부터 프로그램은 자동 초안 기능을 변경했습니다. 위 방법의 세 번째 단계는 백그라운드에서 기사를 게시할 때 작업 권한이 없다는 메시지를 표시합니다!
먼저 위 방법의 1단계와 2단계를 수행하여 자동 저장 기능과 이전 버전의 Post Revisions 기능을 비활성화해야 합니다. 다음으로 자동 초안 기능 비활성화를 처리해 보겠습니다.
위 방법의 세 번째 단계가 유효하지 않기 때문에 더 이상 $create_in_db = false 코드를 추가할 수 없습니다. 이때 기사 게시 기능은 정상이지만 "새 기사 추가"를 클릭하기만 하면 됩니다. 마지막에 저장을 클릭하지 않는 한 기사를 편집하거나 편집 페이지를 직접 닫는 등 초안으로 저장을 클릭하지 않는 한 프로그램은 기본적으로 제목과 함께 보이지 않는 자동 초안 로그를 자동으로 추가합니다. "자동 초안" 및 "자동 초안" 상태이며 phpmyadmin을 사용하여 데이터베이스에서 데이터를 추출할 수만 있습니다. 그러니 좋은 블로그 아이디어가 없다면 쉽게 새 글을 추가하려고 클릭하지 마세요!
아래에는 매우 완벽한 두 가지 솔루션이 나와 있습니다. 기본 코드는 컴퓨터의 "Pending" 폴더에서 제공됩니다. 소스를 찾을 수 없습니다. 파티, 인터넷 및 원본 작성자에게 감사드립니다. 여기에서 정리하고 개선하여 모두와 공유하겠습니다. 이 시점에서 ID 관리가 아닌 사용자는 아래 댓글로 바로 이동할 수 있습니다. 하하! !
참고: 아래에 언급된 줄 수는 WordPress 3.2 버전을 기준으로 합니다.
옵션 1: 보이지 않는 자동 초안을 보이는 초안 로그 초안으로 변경합니다.
위의 3단계를 참조하여 wp-adminincludespost.php 파일을 찾아 열고 "if ($create_in_db) {"를 찾아 약 423줄을 찾습니다.
$post_id = wp_insert_post( array( 'post_title' => __( '자동 초안' ), 'post_type' => $post_type, 'post_status' => '자동 초안' ) );
위 코드를 다음과 같이 변경합니다.
$post_id = wp_insert_post( array( 'post_title' => __( '자동 초안' ), 'post_type' => $post_type, 'post_status' => 'draft' ) );
팁: 이 솔루션은 "새 기사 추가"를 클릭할 때 초안이 자동으로 생성되는 것을 막지는 않지만, 이때 생성되는 것은 기사 목록에서 볼 수 있는 초안 로그이며 클릭하여 편집할 수 있습니다! 물론, 새 기사를 추가하기 위해 여러 번 클릭하면 초안 로그가 여러 개 생성되는데 별로 좋지 않습니다. 하하!
옵션 2: 가장 빠른 자동 초안을 얻어 현재 기사로 사용하는 것이 원칙입니다. 이렇게 하면 원래 자동 초안 기능을 기반으로 기사 ID의 연속성을 유지할 수 있으며 7일 전 자동 초안을 삭제하는 기능을 제거할 수 있습니다.
여전히 wp-adminincludespost.php 파일을 찾아 열고 "if ($create_in_db) {"를 찾은 다음 418~427행을 찾으세요.
if ($create_in_db) {
// 7일이 지난 오래된 자동 초안을 정리합니다.
$old_posts = $wpdb->get_col( "$wpdb->게시물에서 ID 선택 post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date" );//7일 전 자동 초안 삭제
foreach((배열) $old_posts를 $delete로)
wp_delete_post( $delete, true ) // 강제 삭제
$post_id = wp_insert_post( array( 'post_title' => __( '자동 초안' ), 'post_type' => $post_type, 'post_status' => '자동 초안' ) );
$post = get_post( $post_id );
if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) && get_option( 'default_post_format' ) )
set_post_format( $post, get_option( 'default_post_format' ) );
} 또 다른 {
다음으로 교체
if ($create_in_db) {
global $current_user;//현재 로그인 관리 사용자를 가져옵니다.
$post = $wpdb->get_row( "SELECT * FROM $wpdb->posts WHERE post_status = 'auto-draft' AND post_type = '$post_type' AND post_author = $current_user->ID ORDER BY ID ASC LIMIT 1" ); //가장 빠른 자동 초안 가져오기
if ( !$post ) {
$post_id = wp_insert_post( array( 'post_title' => __( '자동 초안' ), 'post_type' => $post_type, 'post_status' => '자동 초안' ) );
$post = get_post( $post_id );
}
if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) && get_option( 'default_post_format' ) )
set_post_format( $post, get_option( 'default_post_format' ) );
} 또 다른 {
옵션 2의 원리는 위에서 설명했습니다. 필요한 경우 코드 주석과 함께 읽어보세요. 옵션 2의 해결책은 데이터베이스에 이미 보이지 않는 자동 초안 로그가 있는 경우 클릭하여 새 기사를 추가하는 것입니다. 새 기사는 자동으로 생성되지 않습니다. 보이지 않는 자동 초안 대신 가장 먼저 보이지 않는 초안이 현재 기사에 필요한 데이터베이스 레코드로 직접 호출됩니다. 동시에 ID 중단을 피하기 위해 "자동 초안 삭제"라는 코드 문이 있습니다. 7일 이상 경과'는 삭제됩니다. !
네, 어린이 신발이 필요하시면 자리에 앉아주세요. 더 좋은 제안이나 질문이 있으시면 교환 메시지를 남겨주세요!
이 기사는 Nuodou의 원본입니다. 재인쇄할 때 이 기사에 대한 링크를 삭제하지 마십시오: http://www.nuodou.com/item/622.html .
귀하의 기여에 대해 haibor에게 감사드립니다