Saya menyukai gagasan mengaktifkan pengguna situs web saya untuk menyarankan pengeditan ke halaman. Mirip seperti sistem edit di Stack Exchange tetapi berbeda karena siapa pun harus dapat mengedit, bukan hanya pengguna terdaftar. Semua suntingan akan melalui proses persetujuan.
Bagaimana saya bisa menerapkannya?
plugins
user-access
Patrick Klug
sumber
sumber
Jawaban:
Bedakan dengan konten, judul, dan penulis
Seperti yang harus dilakukan terkait sesuatu beberapa bulan lalu, inilah cara bukti termudah dan paling masa depan (yang saya bisa baik-baik saja) untuk memeriksa apakah ada perubahan pada konten atau judul atau jika penulis berubah:
Untuk menjelaskan skenario saya secara singkat: Saya mengambil posting dari lokasi terpencil melalui API jarak jauh. Kemudian saya mengembalikan
global $post
, selama satu posting loop, berisi data asli atau data baru. Dengan cara ini saya berpindah pengaturan semua nilai posting lain yang saya tidak perlu memeriksa perubahan.Mengusulkan hasil edit
Fakta utama yang harus diingat ketika mencari tempat di mana salinan-edit konten posting dapat (sementara) disimpan adalah bahwa kontennya adalah entri db
longtext
. Jadi tempat di mana seseorang ingin menyimpan hasil edit yang disarankan harus memenuhi persyaratan itu. Komentar melakukan itu.Lalu ada fakta bagus bahwa mereka menawarkan API untuk menempatkan mereka dengan baik dalam satu lingkaran, sehingga terintegrasi dengan lancar, sangat dapat dikustomisasi dan dapat dengan cepat diatur. Terakhir namun tidak kalah penting, sebagian besar tema telah hadir dengan komentar yang terintegrasi sehingga mudah untuk membonceng sistem dan menghubungkan ke hampir semua tema yang tersedia.
Saya sarankan untuk hanya memperpanjang atau mengubah formulir komentar. Gunakan salah satu dari berikut ini atau tambahkan bidang tambahan dengan panggilan balik yang dikaitkan
comment_form_default_fields
.Jadi saya telah menambahkan
hidden
bidangcomment_approved
dengan nilai0
untuk mengaturnya dalam antrian. Tidak yakin apakah ini akan berfungsi atau apakah nilai (inti) ini benar-benar mengomentari data meta dan perlu ditambahkan dengan menggunakanadd_comment_meta()
saat menyimpan. Jika tidak, Anda bisa menggunakan sesuatu di sepanjang baris kode berikutMenampilkan komentar di sisi admin
Di sini saya akan pergi dengan ekstensi kelas sederhana dan halaman admin khusus:
Info lebih lanjut dapat ditemukan di WPEngineer .
Menyetujui pengeditan
Anda kemudian dapat menambahkan tindakan khusus dan memproses pengeditan yang diusulkan menggunakan kode pertama yang saya tunjukkan untuk memeriksa apakah ada perubahan dan kemudian cukup memperbarui kiriman. Komentar itu sendiri memegang nilai dengan kunci
comment_post_ID
, jadi mengidentifikasi ID tulisan yang diedit adalah lurus ke depan.Catatan akhir
Saya juga ingin melihat plugin terakhir. Tolong tautkan di sini :)
sumber
wp_text_diff()
untuk perbandingan yang sebenarnya. Suara positif untuk jawaban lainnya.Ide saya adalah sesuatu yang sederhana.
Anda dapat membuat
Edit Suggestion
tautan di bagian bawah posting yang memiliki templat yang ditentukan khusus, yang menggunakan kotak teks (mungkin dengan editor) yang ditautkan ke taksonomi khusus dengan nilai defaultpost content
.Setiap perubahan
content
akan dibandingkan denganoriginal post content
setelah mengirimkan (sebagai Draft) dan MemasukiCAPTCHA code
dengan algoritma Diff seperti PHP inline-diff paket atau Text-Diff PEAR Package atau alternatif menggunakan fungsi PHP menurut ini untuk teks tidak terlalu panjang dengan kombinasi CSS.Kemudian dengan menyimpan nilai dalam 3 Kotak Meta kustom (di halaman menambahkan / mengedit taksonomi back-end) yang ditampilkan
dan menyimpan
Post ID
mungkin denganupdate_option()
fungsi untuk digunakan nanti.Setelah membaca versi yang diedit dan diterima oleh admin, postingan itu akan diganti yang asli saat Anda menulis kode di functions.php.
sumber
Yah ini agak rumit, jawaban yang tepat akan membutuhkan waktu yang cukup lama untuk menulis. Jadi ini bukan jawaban nyata hanya beberapa pemikiran ..
Menggunakan WordPress build in
wp_update_post
via ajax akan memberi Anda riwayat revisi yang diperlukan tetapi bukan kemampuan yang diperlukan untuk menyetujui pengeditan.Membuat draft dari suntingan tidak dimungkinkan secara default tetapi telah dibahas di sini, Apakah ada cara untuk membuat konsep revisi halaman atau postingan yang diterbitkan? Penanganan apa yang telah Anda gunakan?
Anda dapat mencoba dan menggunakan Editor Front-end tetapi Anda tidak akan memiliki kontrol atas suntingan yang diterbitkan, jadi coba dan tumbuhkan dengan plugin lain seperti Revisionary yang memungkinkan untuk mengedit berdasarkan izin, saya tidak tahu apakah mereka akan bekerja sama.
Jika tidak, Anda harus meretas plugin berdasarkan 2 plugin di atas atau menulis sesuatu dari awal.
Pendekatan awal saya adalah memiliki tombol yang menuju ke halaman lain yang menampilkan konten posting / data menggunakan JSON , yang lebih mudah untuk dikerjakan saat menggunakan editor Ajax dan WYSIWYG. Tombol simpan akan memposting sebagai konsep alih-alih mempublikasikan dan dengan cara itu Anda akan memiliki kontrol atas pengeditan (lihat di atas diskusi WPSE tentang cara menyelesaikan ini, itu agak menakutkan).
Ada komplikasi tambahan ketika melakukan ini seperti sanitasi, encoding, spam, penanganan media, bidang kustom, cap waktu, memori, dll. Kabar baiknya adalah wordpress sudah memiliki sistem revisi yang dapat Anda pasang dan kemampuan yang baik untuk menangani banyak editor. .
ps. Ini adalah ide yang bagus untuk sebuah plugin.
sumber