Karena Haibor memiliki beberapa konsep kontrol ID dan menyukai hal-hal yang bersih dan sederhana, saya sangat frustrasi dengan fungsi penyimpanan draf otomatis di WordPress versi baru. Hal ini menyebabkan banyak ID log terbuang dan ID log terputus-putus. singkirkan fungsi ini! !
Izinkan saya menjelaskan situasinya terlebih dahulu: Diskontinuitas ID terutama disebabkan oleh tiga fungsi: Yang pertama adalah fungsi penyimpanan otomatis Simpan Otomatis, yang kedua adalah versi historis Pasca Revisi, dan yang ketiga adalah fungsi draf otomatis Draf Otomatis! Berdasarkan versi wordpress yang berbeda, solusinya berbeda! Silakan pilih solusi yang sesuai!
Versi sebelum wordpress 3.1 (tidak termasuk 3.1):
1. Buka file wp-config.php dan tambahkan kode berikut di depan "$table_prefix = 'wp_';":
mendefinisikan('WP_POST_REVISIONS', salah);
mendefinisikan('AUTOSAVE_INTERVAL', salah);
2. Cari dan buka dua file wp-adminpost-new.php dan wp-adminpost.php, lalu beri komentar atau hapus "wp_enqueue_script('autosave');".
//wp_enqueue_script('simpan otomatis');
3. Cari dan buka file wp-adminincludespost.php, cari "if ($create_in_db) {" dan tambahkan baris berikut sebelumnya:
$buat_in_db = salah;
WordPress 3.1 dan versi yang lebih baru (termasuk 3.1):
Sejak versi 3.1, program telah melakukan perubahan pada fungsi draf otomatis. Langkah ketiga dalam metode di atas akan menyebabkan prompt bahwa tidak ada izin operasi saat menerbitkan artikel di latar belakang!
Pertama-tama, kita harus mengikuti langkah 1 dan 2 pada metode di atas untuk mewujudkan penonaktifan fungsi Simpan Otomatis dan fungsi Post Revisi versi historis. Selanjutnya, mari kita coba menangani penonaktifan fungsi Konsep Otomatis!
Karena langkah ketiga pada metode di atas tidak valid, Anda tidak dapat lagi menambahkan kode $create_in_db = false; Saat ini, fungsi penerbitan artikel normal, tetapi selama Anda mengklik "Tambahkan Artikel Baru", tidak peduli apakah Anda mengedit artikel atau tidak, selama Anda tidak mengklik Simpan di akhir. Atau klik Simpan sebagai Draf (seperti langsung menutup halaman pengeditan), program akan secara otomatis menambahkan log draf otomatis yang tidak terlihat secara default, dengan judul "Auto-Draft" dan status "auto-draft", dan hanya dapat menggunakan phpmyadmin untuk mengekstrak data dari database. Oleh karena itu, jika Anda tidak memiliki ide blog yang bagus, jangan klik untuk menambahkan artikel baru dengan mudah!
Dua solusi yang cukup sempurna diberikan di bawah ini. Kode dasar berasal dari folder bernama "Tertunda" di komputer. Sumbernya tidak dapat ditemukan. Terima kasih kepada pihak, Internet, dan penulis asli! Di sini saya akan mengatur dan memperbaikinya serta membagikannya kepada semua orang. Pada titik ini, pengguna kontrol non-ID dapat langsung melompat ke komentar di bawah haha! !
Catatan: Jumlah baris yang disebutkan di bawah ini didasarkan pada versi WordPress 3.2.
Opsi 1: Ubah draf otomatis yang tidak terlihat menjadi draf log draf yang terlihat.
Mengacu pada langkah 3 diatas, cari dan buka file wp-adminincludespost.php, cari "if ($create_in_db){", dan cari kurang lebih 423 baris:
$post_id = wp_insert_post( array( 'post_title' => __( 'Draf Otomatis' ), 'post_type' => $post_type, 'post_status' => 'draf otomatis' ) );
Ubah kode di atas menjadi:
$post_id = wp_insert_post( array( 'post_title' => __( 'Draf Otomatis' ), 'post_type' => $post_type, 'post_status' => 'draft' ) );
Tip: Solusi ini tidak menghalangi pembuatan draf secara otomatis ketika Anda mengklik "Tambahkan Artikel Baru", namun yang dibuat saat ini adalah log draf yang dapat dilihat di daftar artikel, dan Anda dapat mengklik untuk mengedit! Tentu saja, jika Anda mengklik untuk menambahkan artikel baru beberapa kali, beberapa draft log akan dihasilkan, dan itu tidak terlalu bagus, haha!
Opsi 2: Prinsipnya adalah mendapatkan draf otomatis paling awal dan menggunakannya sebagai artikel saat ini. Hal ini dapat menjaga kelangsungan ID artikel berdasarkan fungsi draf otomatis asli, dan menghilangkan fungsi penghapusan draf otomatis 7 hari yang lalu.
Masih cari dan buka file wp-adminincludespost.php, cari "if ($create_in_db){", dan cari sekitar baris 418 hingga 427:
jika ( $buat_in_db ) {
// Bersihkan draf otomatis lama yang berumur lebih dari 7 hari
$old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date" );//Hapus draf otomatis 7 hari yang lalu
foreach ( (array) $old_posts sebagai $delete )
wp_delete_post( $delete, true ); // Hapus paksa
$post_id = wp_insert_post( array( 'post_title' => __( 'Draf Otomatis' ), 'post_type' => $post_type, 'post_status' => 'draf otomatis' ) );
$posting = 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( $posting, get_option( 'default_post_format' ) );
} kalau tidak {
Ganti dengan
jika ( $buat_in_db ) {
global $current_user;//Dapatkan pengguna manajemen login saat ini
$post = $wpdb->get_row( "PILIH * DARI $wpdb->posts WHERE post_status = 'auto-draft' AND post_type = '$post_type' AND post_author = $current_user->ID ORDER BERDASARKAN ID ASC LIMIT 1" ); //Dapatkan draf otomatis paling awal
jika ( !$posting ) {
$post_id = wp_insert_post( array( 'post_title' => __( 'Draf Otomatis' ), 'post_type' => $post_type, 'post_status' => 'draf otomatis' ) );
$posting = 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( $posting, get_option( 'default_post_format' ) );
} kalau tidak {
Prinsip dari opsi kedua sudah dijelaskan diatas, silahkan dibaca dengan kode komentar jika anda memerlukannya. artikel baru tidak akan dibuat secara otomatis. Alih-alih draf otomatis yang tidak terlihat, draf paling awal yang tidak terlihat langsung disebut sebagai catatan database yang diperlukan untuk artikel saat ini. Pada saat yang sama, untuk menghindari diskontinuitas ID, pernyataan kode "hapus draf otomatis lebih tua dari 7 hari" dihapus. !
Oke, silakan duduk jika Anda membutuhkan sepatu anak-anak. Jika Anda memiliki saran atau pertanyaan yang lebih baik, silakan tinggalkan pesan untuk ditukar!
Artikel ini asli dari Nuodou. Harap jangan menghapus tautan ke artikel ini saat mencetak ulang: http://www.nuodou.com/item/622.html .
Terima kasih kepada haibor atas kontribusi Anda