Apakah ada bahaya dalam menghapus semua transien?

9

Saya memiliki situs besar untuk klien, dan karena ini adalah instalasi wordpress yang benar-benar disesuaikan dengan banyak ekstensi pada fungsionalitas, saya tidak dapat menggunakan plugin caching.

Untuk meningkatkan kinerja, saya membuat banyak situs menggunakan transien (misalnya navigasi, google maps dengan semua spidol, dll.), Dan membiarkan dinamika konten dinamis.

Masalahnya di sini adalah jika saya mengubah apa pun, saya harus menghapus transient spesifik secara manual untuk melihat hasil saat ini. Situs ini menunjukkan menu dan googlemaps yang berbeda ketika dimasukkan dari saluran yang berbeda, jadi saya punya sepuluh transien untuk setiap area.

Apakah Anda membuat fungsi di mana saya menghapus semuanya sekaligus (dengan daftar nama-nama transien), atau tidak apa-apa hanya menghapus semua transien di situs?

Ini tidak terlalu mendesak, tetapi untuk pengembangan di masa depan saya ingin tahu apakah Anda memiliki masalah dengan hal-hal seperti itu, dan bagaimana Anda mengelola semua transien Anda.

Ceria, fischi

fischi
sumber

Jawaban:

6

Untuk pengembangan saya akan menyarankan untuk selalu bekerja dengan WP_DEBUGset ke truedan lakukan hal berikut:

$key = 'transient_key';
if( !WP_DEBUG && ( false !== ($transient = get_transient($key)) ){

   /* Generate transient manually */
   $expiration = 24*60*60;//How long to keep for
   set_transient($key,$transient, $expiration);
}

Secara umum - seharusnya menghapus transien yang baik, karena tidak boleh diasumsikan berada dalam database.

Stephen Harris
sumber
terima kasih @stephen, saya menggunakan solusi ini dalam fase pengembangan, tetapi membersihkannya pada fase refactoring sebelum melanjutkan hidup. seharusnya tidak melakukan itu;) tetapi dalam pengalaman Anda, apakah Anda pernah mengalami masalah dengan menghapus transien secara manual?
fischi
:) terima kasih atas info menghapus transien. Saya pikir sesuatu seperti itu, tetapi tidak sepenuhnya yakin.
fischi
1
Tidak, saya tidak pernah mengalami masalah menghapus transien secara manual - kecuali bosan dengan itu dan menggunakan pendekatan ini :).
Stephen Harris
1

Anda harus mengaitkan berbagai tindakan yang berjalan saat semuanya diperbarui untuk menghapus dan menyegarkan transien. Misalnya, ketika menu nav diperbarui, wp_update_nav_menutindakan diaktifkan, kaitkan fungsinya untuk menyegarkan transien menu nav Anda.

Milo
sumber
terima kasih @Milo, yang ini adalah ide yang bagus, tetapi tidak dapat digunakan untuk saya, karena transien tidak hanya mempengaruhi menu. ada banyak konten (tempat menarik di peta) yang ditambahkan setiap saat, dan situs ini cukup sibuk - jadi saya membangun misalnya daftar POI terbaru hanya sekali dalam satu jam, tidak hanya diwp_update_nav_menu
fischi
itu hanya satu contoh, segarkan setiap transien pada tindakan apa pun yang terkait
Milo
ya, kamu di sini. tidak semua transien saya terikat pada suatu tindakan. beberapa dari mereka digunakan tepat di file template (ketika saya membuat daftar besar), dan berisi html yang sebenarnya, masing-masing berlangsung satu jam. untuk transien yang ditetapkan untuk umur panjang, seperti yang Anda sebutkan, saya menggunakan metode Anda :)
fischi
1

Tidakkah lebih baik untuk melakukan pengembangan Anda pada lingkungan pengembangan sehingga kebutuhan untuk melihat perubahan Anda ketika mereka dibuat tidak berdampak pada situs publik?

Dengan menggunakan pendekatan ini Anda kemudian dapat menggunakan / mempromosikan produksi dan menyiram transien pada waktu lalu lintas rendah dengan dampak minimal terhadap kinerja situs dan pengalaman pengguna.

Steve
sumber
ya, tentu saja akan lebih baik - tetapi saya memulai proyek beberapa minggu setelah saya memulai bisnis saya, dan belajar banyak sejak itu. saya baru saja membangun infrastruktur lengkap saya - dan saya berencana mengembangkan tema dan plugin khusus di server saya, dan segera setelah mereka selesai menyebarkan pembaruan ke situs-situs dengan fungsi pembaruan wordpress. saya akui ini bukan metode terbaik yang saya pilih di sana.
fischi
Saya pikir kita semua been there and done thatpada satu waktu atau yang lain.
Steve