Seperti diketahui bersama, sejatinya WordPress memiliki fasilitas Ping yang secara umum bertugas untuk mengirim paket data kepada alamat IP yang hendak diberitahu dan menunggu respon darinya. Misalnya saat tulisan ini dipublikasi, sistem Ping WordPress akan mengirimkan data ke https://rpc.pingomatic.com/ yang selanjutnya PingOMatic akan “memberitahu” layanan-layanan/bot-bot search engine tentang adanya tulisan Selamat Tinggal Plugin Ping Optimizer ini.
Secara “sederhana” si Ping akan berucap
“Woi, nih ada tulisan baru, dilihat dong, kalau sudah dilihat, diindex ya?”
Nah, ada beberapa kekeliruan tentang plugin-plugin yang katanya dapat mengoptimasi hasil Ping tersebut. Mengoptimasi dalam artian mencegah blog melakukan ping berulang kali untuk tulisan yang sama agar terhindar dari tuduhan bahwa blog kita adalah sang Spammer Ping.
Mengapa plugin-plugin seperti WordPress Ping Optimizer, cbnet Ping Optimizer atau MaxBlogPress Ping Optimizer tidak diperlukan lagi?
Karena, dalam versi WordPress saat ini, fungsi utama plugin di atas sudah tidak diperlukan lagi. Seperti kami sampaikan di atas, plugin optimizer dibuat untuk menghindari Ping “yang tidak perlu” karena dulu beranggapan bahwa, menyimpan draft saja bisa mem-ping. Bayangkan jika ada beberapa kali dalam sehari kita mengedit tulisan yang sama, berapa kali juga Ping terjadi?
Secara “rumit“, begini proses Ping di WordPress
- Saat tulisan dibuat, diupdate, ditambahkan, dimodifikasi, diedit dll, semuanya selalu melalui
wp_insert_post()
. wp_insert_post()
akan memanggilwp_transition_post_status()
.wp_transition_post_status()
memiliki beberapa tindak lanjut mengenai proses di atas, salah satu yang penting adalah:do_action("{$new_status}_{$post->post_type}", $post->ID, $post);
Jadi, hasilnya adalah terjadinya perintahnew-status
dannew-post-type
. Dalam kasus ini, publish status pada post tipe post, akan terkait pada tindakanpublish_post
.- Dalam
wp-includes/default-filters.php
, dapat kita lihat:add_action( 'publish_post', '_publish_post_hook', 5, 1 );
Hal tersebut menyebabkanpublish_post
untuk memanggil_publish_post_hook()
. _publish_post_hook()
akan bekerja, antara lain akan menambahkan'_pingme'
post meta ke tulisan yang dibuat, dan tindakando_pings
jika kita membuat tulisan terjadwal (schdule) yang akan ter-Ping saat tulisan tersebut sudah terpublikasi (karena terkait ketime()
saat melakukan penjadwalan (posting yang ter-schedule).- Dan juga, dalam
wp-includes/default-filters.php
, kita akan melihat:add_action( 'do_pings', 'do_all_pings' );
Fungsido_all_pings()
melakukan Ping untuk semua tulisan yang telah ditandai/ pada saat ini.
Terkait tentang draft, scheduled (tulisan yang diatur agar terpublikasi di tanggal/masa yang akan datang), and tulisan yang dimodifikasi:
- Tulisan dalam bentuk Draft memiliki post_status
draft
, artinya bahwawp_transition_post_status()
memanggildo_action()
padadraft_post
bukan padapublish_post
. Tulisan yang terjadwal (Scheduled posts) memiliki post_statusfuture
, yang artinya bahwa fungsiwp_transition_post_status()
memanggildo_action()
padafuture_post
bukan padapublish_post
. Dengan demikian, baik draft maupun tulisan yang dijadwalkan tidak akan mem-ping hingga tulisan tersebut telah benar-benar terpublish
, karena itulah fungsipublish_post
tidak akan terjadi; otomatis Ping juga tidak akan terjadi pada tulisan dengan status draft atau schedule. - Editing Tulisan: Merubah tulisan yang sudah terpublikasi akan mengirim ping, tapi
do_all_pings()
cukup pintar. Ia akan memanggil fungsipingback()
untuk mengirim pingback (Ping Balik) ke blog, dan hal tersebut akan memanggil fungsiget_pung()
untuk mendapatkan URL tulisan yang sebelumnya sudah pernah terpublish (dan sudah pernah ter-Ping sebelumnya).
Dengan memahami bagaimana suatu proses bekerja dan melihat tujuan awal plugin ping optimizer ini, akhirnya plugin sejenis ini tidak berfungsi lagi karena sesungguhnya, sistem WordPress sudah meminimalisir terjadinya Ping Spamming.
Bagaimana dengan Anda? Maaf jika tulisannya rada aneh. Sulit memang menulis bahasa program ke dalam bahasa sehari-hari Semoga bermanfaat.
-Berbagi Tidak Pernah Rugi-