Panduan untuk Transien di WordPress

Diterbitkan: 2023-02-12

Sebagai pengembang WordPress, Anda mungkin sudah tahu betapa pentingnya kinerja untuk situs web yang sukses. Namun, memahami transien di WordPress dan bagaimana transien membantu Anda mengoptimalkan proyek bisa sedikit rumit.

Untungnya, ketika Anda memecahnya, transien tidak terlalu sulit untuk dipahami. Selama Anda tetap mengingat beberapa pedoman utama, Anda seharusnya sudah siap untuk memasukkannya ke dalam plugin WordPress Anda berikutnya.

Dalam posting ini, kami akan memberikan ikhtisar tentang apa itu transien WordPress, bersama dengan bagaimana dan kapan menggunakannya. Ada banyak hal yang harus dibahas, jadi mari langsung ke sana!

Daftar isi
1. Apa Itu Transien WordPress?
2. Manfaat Menggunakan Transien di Situs WordPress Anda
3. Kerugian Menggunakan Transien di Situs WordPress Anda
4. Kapan Menggunakan Transien WordPress
5. Mengelola Transien WordPress
6. Operasi Dasar yang Digunakan dalam Transien
6.1. 1. Mengatur Transien
6.2. 2. Mengambil Transien
6.3. 3. Menghapus Transien
7. Kedaluwarsa Sementara: Bagaimana Cara Kerjanya?
8. Memahami API Transien WordPress
8.1. Dua implementasi backend Transients API yang paling umum:
9. Menerapkan Transien dalam Pengembangan Anda
10. Lakukan Lebih Banyak Dengan Situs WordPress Anda

Apa Itu Transien WordPress?

Untuk memahami transien, ada gunanya memiliki beberapa pengetahuan dasar tentang caching dan Antarmuka Pemrograman Aplikasi (API).

Caching data halaman web pada dasarnya adalah cara menyimpan sementara data situs web sehingga jika ada beberapa permintaan untuk data yang sama, situs tersebut tidak perlu menjalankan kembali MySQL atau PHP. Ini dapat menghemat waktu dan mengurangi beban server.

Idenya adalah untuk menyimpan data sementara, oleh karena itu kata "sementara." API Transien mirip dengan API Opsi WordPress. Anda memberi nama dan nilai pada data—yang bisa rumit, seperti larik PHP multi-level—dan menyimpan datanya. Nanti, bahkan mungkin pada permintaan yang berbeda, Anda dapat mengambil data tersebut menggunakan namanya. Perbedaannya adalah data di tabel Opsi akan bertahan selamanya. Artinya, Anda dapat menyimpan data, dan tiga tahun kemudian, itu akan tetap ada.

Setiap transien terdiri dari tiga bagian:

  • $sementara. Ini adalah string yang digunakan untuk mengidentifikasi transien Anda dan memanggilnya. Ini juga disebut sebagai 'kunci' atau 'nama' sementara.
  • $nilai. Ini adalah informasi yang diambil melalui API. Nilai sementara dapat berupa objek, larik, angka, atau string.
  • $kedaluwarsa. Ini adalah berapa lama sementara tinggal di database Anda, sebelum dihapus dan Anda harus mengakses informasi yang Anda perlukan melalui API lagi.

Di permukaan, hanya itu yang ada untuk transien WordPress. Namun, untuk menggunakannya dengan benar, masih ada lagi yang perlu Anda ketahui.

Namun, data transien tidak akan bertahan. Itulah intinya! Anda dapat meminta data, dan menemukan bahwa data tersebut hilang dalam salah satu dari dua cara. Pertama, saat Anda menyimpan data, Anda menentukan tanggal kedaluwarsa. Misalnya, Anda dapat mengatakan "simpan ini selama tiga jam". Jadi jika Anda memintanya setelah empat jam, itu akan hilang.

Cara kedua adalah sepotong data dibiarkan hilang begitu saja, kapan saja, dengan alasan apa pun. Kedengarannya aneh, saya tahu! Apa gunanya menyimpan data jika Anda tidak dapat mengandalkannya? Intinya adalah bahwa penyimpanan adalah permintaan yang akan diupayakan oleh WordPress, tetapi karena fleksibilitas ini, dimungkinkan untuk menggunakan berbagai jenis implementasi untuk penyimpanan sementara, dan itu berarti dimungkinkan untuk menggunakan teknologi canggih yang berbeda untuk membuat transien menjadi sangat efisien. , dan beroperasi dengan baik bahkan di lingkungan berkerumun multi-server.

Karena hal "lenyap kapan saja" ini, Anda biasanya menggunakan transien untuk cache. Artinya, jika Anda perlu menghitung sesuatu yang membutuhkan waktu nyata, seperti kueri MySQL yang lambat, atau mengambil data dari sumber eksternal seperti Twitter atau umpan RSS seseorang, Anda dapat menyimpan data yang dihitung secara sementara, mengetahui bahwa jika hilang selalu mungkin untuk membuatnya kembali. Namun dalam kasus biasa — jika TIDAK hilang — Anda memiliki data dengan cepat tanpa harus menghitung ulang.

Manfaat Menggunakan Transien di Situs WordPress Anda

Seperti yang kami sebutkan sebelumnya, manfaat utama transien adalah meningkatkan kinerja situs web. Berikut garis besar cara kerjanya, menggunakan plugin Google Site Kit sebagai contoh.

Saat plugin diaktifkan, ia menggunakan API untuk menampilkan data dari platform seperti Analytics dan Search Console di dasbor WordPress. Tanpa transien, WordPress harus mengambil informasi ini dari setiap alat setiap kali Anda melihat dasbor Site Kit Anda:

Sebagai gantinya, Site Kit menyertakan transien yang meng-cache data dari Analytics dan Search Console. Mereka disimpan selama satu hari (atau satu jam jika platform tidak mengembalikan data).

Setiap kali Anda mengakses dasbor Site Kit Anda, WordPress dapat dengan cepat mengambil informasi yang tersimpan dari database Anda alih-alih harus memanggil API lagi. Ketika masa kedaluwarsa habis, data lama dihapus.

Ini berarti Anda tidak perlu menunggu hasil Anda dimuat setiap saat. Ini sangat berguna dalam berbagai situasi, seperti menunjukkan jumlah berbagi media sosial untuk posting Anda atau menampilkan umpan berita.

Kerugian Menggunakan Transien di Situs WordPress Anda

Apa yang membuat Anda bermasalah dengan Transients adalah perbedaan, dan sulit untuk mereproduksi, perilaku yang Anda dapatkan saat plugin/tema Anda berjalan di bawah implementasi transien yang berbeda. Implementasi sementara yang berbeda berarti Anda HANYA akan mengalami masalah dalam konfigurasi tertentu dengan jenis situs tertentu, dan tidak pernah pada yang lain. Sebagai pengembang, jika Anda tidak mengetahui perangkap ini dan tidak mengkodekan sesuai, Anda akan menganggap kode Anda bagus, tetapi sebenarnya kode itu akan rusak di lapangan, dan Anda bahkan tidak akan tahu cara mereproduksinya. !

Kapan Menggunakan Transien WordPress

Transien dihapus dari database Anda setelah mencapai akhir periode kedaluwarsa. Oleh karena itu, Anda hanya ingin menggunakannya untuk informasi yang terus dibuat ulang.

Selain itu, meskipun dapat meningkatkan performa proyek Anda, transien paling baik digunakan untuk kueri besar dan panggilan jarak jauh. Jika akan membutuhkan lebih banyak kode untuk membuat sementara daripada hanya membuat permintaan baru untuk sumber daya setiap kali diperlukan, Anda lebih baik tidak melakukannya.

Mengelola Transien WordPress

Jika Anda ingin dengan mudah melihat dan mengelola transien yang sedang bekerja di situs WordPress Anda, Anda dapat menginstal plugin Transients Manager:

Ini memberikan daftar transien lengkap, yang dapat Anda temukan dengan menavigasi ke Tools > Transients :

Di sini Anda dapat melihat ketiga elemen sementara yang kami cantumkan sebelumnya – kunci (nama), nilai, dan periode kedaluwarsa. Anda dapat mengedit salah satu fitur ini dengan mengeklik tautan Edit :

Anda juga dapat menghapus transien satu per satu atau secara massal.

Operasi Dasar yang Digunakan dalam Transien

Ketika berbicara tentang pengkodean transien Anda sendiri, ada tiga operasi dasar yang mungkin perlu Anda gunakan. Kami telah menguraikan masing-masing di bawah ini, terus menggunakan Site Kit sebagai contoh.

1. Mengatur Transien

Membuat atau 'mengatur' transien adalah proses menentukan kunci, nilai, dan periode kedaluwarsa, dan menerapkan informasi tersebut ke data yang relevan. Untuk melakukannya, Anda akan menggunakan format berikut:

 Set_transient ('key', $value, expiration_period)

Berikut adalah kode yang digunakan di Google Site Kit untuk menyetel sementara yang menyimpan data analitik:

 // Cache "data found" status for one day, "no data" status for one hour. set_transient( $transient_key, (int) $has_data, $has_data ? DAY_IN_SECONDS : HOUR_IN_SECONDS ); } return (bool) $has_data; } }

Kunci sementara adalah googlesitekit_analytics_has_data (didefinisikan sebelumnya dalam kode), nilainya adalah $has_data atau $has_data ? , dan masa berlakunya adalah satu hari atau satu jam (tergantung nilainya).

2. Mengambil Transien

Mengambil transien sedikit lebih rumit. Pertama, Anda perlu menggunakan fungsi untuk meminta data yang diperlukan. Kemudian Anda akan memeriksa untuk melihat apakah ada transien terkait yang harus dimuat, alih-alih membuat permintaan API baru.

Hasilnya mungkin terlihat seperti ini:

 function some_function(){ $transient = get_transient('key');

Anda kemudian harus mengembalikan sementara, atau menghapus data kedaluwarsa dan melakukan panggilan baru ke sumbernya. Terakhir, Anda harus mengatur sementara setelah Anda mengembalikan data baru, sehingga akan disimpan lagi hingga masa berlakunya habis.

Di Google Site Kit, tampilannya seperti ini:

 /** * Checks whether Analytics data exists for the given URL. * * @since 1.4.0 * * @param string $url The url to check data for. * @return bool */ protected function has_data_for_url( $url ) { if ( ! $url ) { return false; } $transient_key = 'googlesitekit_analytics_has_data_' . md5( $url ); $has_data = get_transient( $transient_key ); if ( false === $has_data ) { /* @var Google_Service_AnalyticsReporting_Report[]|WP_Error $reports Array of reporting report instances. */ $reports = $this->get_data( 'report', array( 'url' => $url, 'metrics' => array( array( 'expression' => 'ga:users' ), array( 'expression' => 'ga:sessions' ), ), ) ); if ( is_wp_error( $reports ) ) { $reports = array(); // Bypass data check and cache. } foreach ( $reports as $report ) { /* @var Google_Service_AnalyticsReporting_Report $report Report instance. */ $report_data = $report->getData(); /* @var Google_Service_AnalyticsReporting_ReportData $report_data Report data instance. */ foreach ( $report_data->getTotals() as $date_range_values ) { /* @var Google_Service_AnalyticsReporting_DateRangeValues $date_range_values Values instance. */ if ( isset( $date_range_values[0], $date_range_values[1] ) && ( 0 < $date_range_values[0] || 0 < $date_range_values[1] ) ) { $has_data = true; break 2; } } }

Kode ini kemudian harus diikuti oleh cuplikan yang kami sertakan di bagian sebelumnya untuk menyetel transien.

3. Menghapus Transien

Dalam beberapa kasus, Anda mungkin menemukan bahwa Anda ingin menghapus sementara. Misalnya, jika Anda ingin selalu melihat analitik terbaru di Google Site Kit, akan lebih baik untuk tidak meng-cache data (walaupun kami tidak menyarankan Anda benar-benar menghapus transien Site Kit).

Jika tidak, plugin akan menampilkan hasil yang sama sepanjang hari, bahkan jika Anda memiliki pengunjung baru. Karena transien berlangsung selama 24 jam, data yang Anda lihat di sore hari hanya akan menjadi versi cache dari data yang Anda muat di pagi hari.

Cara termudah untuk menghapus transien adalah dengan menggunakan plugin Transients Manager. Namun, jika Anda ingin menggunakan kode, Anda dapat menggunakan fungsi delete_transient() . Yang Anda butuhkan hanyalah kunci sementara:

 delete_transient('key');

Namun, Anda harus mengulanginya untuk setiap transien yang ingin Anda hapus.

Kedaluwarsa Sementara: Bagaimana Cara Kerjanya?

Periode kedaluwarsa sementara dapat dinyatakan dalam beberapa cara berbeda. Dua opsi paling sederhana adalah:

  • Dalam hitungan detik ( set_transient('key', $value, 86400))
  • Menggunakan Konstanta Waktu WordPress ( set_transient('key', $value, DAY_IN_SECONDS))

Sebagai alternatif, Anda juga dapat menyetel transien yang tidak pernah kedaluwarsa. Ini dapat berguna dalam situasi di mana Anda ingin menyimpan data sementara yang sama, hingga Anda menghapus dan mengatur ulang informasi yang di-cache secara manual.

Membuat transien yang tidak pernah kedaluwarsa cukup sederhana. Cukup kosongkan parameter kedaluwarsa dalam fungsi set_transient , atau identifikasi sebagai nol.

Memahami API Transien WordPress

WordPress Transients API hanyalah sarana informasi yang di-cache di database situs Anda. Ini mengaktifkan semua operasi terkait yang telah kita diskusikan di seluruh posting ini, termasuk menyetel, mendapatkan, dan menghapus transien.

Dengan kata lain, API Transien hanyalah bagian dari inti WordPress yang memungkinkan Anda menggunakan transien.

Dua implementasi backend Transients API yang paling umum:

  1. Yang dibangun di WordPress, dan karenanya yang paling umum sejauh ini. Nilai sementara disimpan di tabel wp_options seperti opsi biasa. Dengan transien, opsi tambahan disimpan untuk menyimpan tanggal kedaluwarsa. Saat transien diakses, WordPress menarik tanggal kedaluwarsa terlebih dahulu. Jika kedaluwarsa, WordPress menghapus kedua opsi dari tabel, dengan demikian “membersihkan” data, dan berpura-pura bahwa data tersebut tidak pernah ada. Jika belum kedaluwarsa, konten akan diambil dari tabel opsi.
  2. Memcache. Memcached adalah perangkat lunak sisi server yang sangat sederhana namun efisien dan andal yang dirancang untuk melakukan persis seperti yang seharusnya dilakukan oleh Transients API — menyimpan data berdasarkan kunci, yang kedaluwarsa pada waktu tertentu, dan yang dapat hilang kapan saja jika dibutuhkan ke.

Menggunakan memcache alih-alih WordPress Transients memiliki dua manfaat khusus, oleh karena itu kami secara otomatis melakukan prakonfigurasi untuk Anda di WP Engine. Kami mendukung Anda

Saya. Memcached 10x-100x lebih cepat dalam menyimpan dan mengambil nilai daripada WordPress Transients, yang sangat menarik karena titik transien adalah untuk meng-cache data untuk meningkatkan kecepatan situs.

ii. Memcached menetapkan jumlah maksimum ruang yang akan diambil dengan data (mis. 64MB RAM), yang berarti jika sebuah situs menyimpan terlalu banyak data sekaligus, secara otomatis akan membuang data lama, dan karena itu tidak pernah kehabisan ruang. Tetapi Transien WordPress bawaan akan menyimpan sejumlah data yang sewenang-wenang dalam tabel opsi.

Menerapkan Transien dalam Pengembangan Anda

Misalkan Anda membaca dan menulis kunci Transien yang sama berulang kali, dan anggaplah itu 1k data. Dalam hal ini, Memcached dan WordPress Transients akan melakukan apa yang Anda harapkan, dan keduanya akan memakan sekitar 1k ruang (baik di tabel opsi atau di memcache).

Sekarang misalkan Anda sedang membaca dan menulis kunci Transien yang berbeda, berbeda untuk setiap sesi browser. Singkatnya, bagaimana jika Anda menyimpan data sesi pengguna di Transients? Ini masuk akal di permukaan. Data sesi tidak boleh bertahan selamanya, dan Anda tidak ingin repot dengan tabel database khusus. Selain itu, banyak perusahaan WordPress Hosting tidak mengizinkan sesi PHP, jadi ini benar-benar hal terbaik berikutnya. Bahkan cepat dan multi-server.

Di sinilah perbedaan muncul. Dengan Memcached, dan dengan situs dengan lalu lintas rendah, metode ini tampaknya berfungsi. Nilai bertahan untuk sementara, lalu dihapus saat kedaluwarsa. Namun, jika server memuat banyak, jumlah data sesi yang perlu disimpan server akan melebihi ruang yang tersedia di memcache, dan karena itu Anda akan mulai kehilangan data sesi lebih cepat dari yang Anda kira. Dan jika Anda tidak menguji di lingkungan yang tepat dan penuh beban ini, Anda tidak akan pernah mengetahuinya. Secara umum, lingkungan ini akhirnya mengisi memcache dengan sangat cepat sehingga memcache yang efektif dinonaktifkan karena tidak pernah dapat menyimpan data cukup lama untuk berguna. Anda secara efektif tidak memiliki cache API Sementara sama sekali!

Tetapi dengan Transien WordPress, Anda mendapatkan perilaku yang berbeda tetapi masih sangat tidak diinginkan. Karena nilainya ditulis ke database, bukan blok RAM berukuran tetap, semuanya tetap ada. Yang berarti bahkan dengan situs yang sarat muatan, Anda masih memiliki data sesi. Luar biasa!

Atau begitulah yang Anda pikirkan. Karena apa yang tidak dikatakan di Transient API adalah yang terjadi saat Anda menggunakan kunci unik seperti sesi. Dan apa yang terjadi dengan metode bawaan adalah bahwa tabel opsi terisi tanpa batas! Karena: "pembersihan data lama" WordPress hanya beroperasi saat Anda meminta kunci (seperti yang telah kita bahas sebelumnya). Jika Anda meninggalkan kuncinya, itu akan tetap ada di tabel opsi, selamanya. Tidak ada proses terpisah yang membersihkannya!

Kami tidak hanya menyadari masalah ini, kami ingin membantu pelanggan kami yang mungkin menjalankan kode yang tidak memahami hal ini. Di situlah "dikelola" di WordPress Terkelola masuk! Setiap malam, kami memiliki proses otomatis untuk memeriksa tabel opsi Anda untuk transien yang kedaluwarsa, dan menghapusnya (baik data maupun item tanggal kedaluwarsa). Ledakan! Mereka pergi, dan Anda tidak perlu khawatir tentang mereka.

Jadi luar biasa kami melakukan ini, tetapi sebagai pengembang plugin atau tema umum yang seharusnya beroperasi dengan baik di lingkungan hosting mana pun, Anda tidak dapat melakukan ini di semua lingkungan potensial yang mungkin diterapkan oleh plugin atau tema Anda, dan Anda ingin memastikan Anda memberikan kode yang paling optimal kepada pengguna dan pelanggan Anda.

Namun, sekarang setelah Anda tahu bagaimana Transien bisa serba salah, mungkin ide yang bagus untuk melihat dan melihat bagaimana Anda bisa membuat kode Anda lebih efisien. Kemungkinannya adalah, jika Anda telah membaca sejauh ini, Anda suka mengoptimalkan kode Anda, dan posting blog ini dapat memberikan tantangan bagi Anda dan memotivasi Anda untuk menulis ulang beberapa hal agar lebih terukur!

Lakukan Lebih Banyak Dengan Situs WordPress Anda

Sebagai pengembang WordPress, memberi pengguna akhir Anda akses ke data jarak jauh sambil mempertahankan kinerja cepat adalah kuncinya. Transien WordPress dapat membantu Anda mencapai hal itu.

Namun, tidak ada salahnya untuk mendapatkan sedikit bantuan tambahan dari hosting WordPress secepat kilat dan sumber daya pengembang profesional. Apakah Anda baru dalam pengkodean atau pro berpengalaman, kami siap membantu. Lihat rencana kami hari ini!