WordPress Filter: Cara Menggunakan WordPress add_filter

Di WordPress, filter adalah hook yang memanipulasi data internal sebelum ditampilkan di browser. Anda bisa membuat filter dengan menambahkan fungsi add_filter di file functions.php website.

Dalam pengembangan WordPress, user menggunakan filter ini untuk memodifikasi plugin, tema, atau fungsi website tertentu. Sebagai contoh, Anda bisa mengubah panjang cuplikan postingan website atau menambahkan catatan footer ke artikel.

Nah, di tutorial WordPress kali ini, kami akan menjelaskan cara menggunakan WordPress add_filter untuk membuat hook filter. Kami juga akan menjelaskan parameter fungsi tersebut dan memberikan contoh penggunaan umumnya. Mari mulai tutorialnya!

Apa Itu Filter WordPress?


Filter WordPress adalah hook yang memodifikasi data sebelum dikembalikan ke database dan ditampilkan kepada pengguna. Dengannya, Anda bisa mengubah plugin, tema, atau fungsi website tanpa harus mengubah file core WordPress.

Misalnya, Anda bisa menambahkan catatan kaki ke semua postingan website atau mengubah panjang kutipannya. Ada 4 fungsi hook filter umum: add_filter, remove_filter, has_filter, dan doing_filter.

Cara Kerja Filter WordPress

Singkatnya, filter akan ‘mencegat’ data yang diteruskan oleh WordPress. Filter kemudian akan memodifikasi data tersebut berdasarkan fungsi yang diberikan, lalu menampilkannya ke web browser pengguna. Untuk membantu Anda memahami fungsi ini, lihat contoh kode berikut:

// Menentukan filter dan fungsi callback
   add_filter( 'example_filter', 'example_callback' );
   // Menjelaskan fungsi callback
   function example_callback( $example ) {
      // ubah $example dengan menggabungkannya
      $example . ' add a text at the end ';
      return $example;
   }

Ini penjelasannya:

  1. Atur filter menggunakan fungsi add_filter  yang akan memodifikasi data. Dalam contoh ini, nama filternya adalah example_filter.
  2. Tentukan fungsi callback yang akan berjalan ketika WordPress menemukan filter tersebut, yaitu example_callback.
  3. Tentukan bagaimana fungsi callback tersebut akan memodifikasi data, yang diwakili oleh argumen $example. Dalam cuplikan ini, kami akan menggunakan titik untuk menggabungkannya dengan kalimat di akhir.
  4. Tampilkan data yang telah dimodifikasi ke web browser pengguna menggunakan metode return.

Untuk menerapkan filter hook ke website WordPress Anda, tulis kode dalam file functions.php tema yang sedang aktif. Apabila Anda menggunakan layanan hosting WordPress dari Hostinger, buka File Manager lalu buka public_html/wp-content/themes/foldertemasaatini.

file functions.php di folder tema saat ini

Selanjutnya, kami merekomendasikan agar Anda menambahkan kode ke file child theme agar tidak hilang setelah update. Atau, buat file terpisah untuk filter hook di folder root tema lalu tulis kode berikut di file functions.php untuk memanggilnya:

include _once( get_template_directory(), '/namafileanda.php':'

Apabila tidak bisa mengakses folder root tema, instal plugin untuk menambahkan kode kustom langsung dari dashboard admin WordPress Anda. Salah satu plugin yang bisa Anda gunakan adalah Code Snippets.

Penting! Memodifikasi file functions.php bisa mengakibatkan error atau masalah akses pada website. Untuk menghindari hal ini, sebaiknya backup website Anda lebih dulu.

Parameter add_filter WordPress

Fungsi WordPress add_filter memiliki 4 parameter. Berikut adalah penjelasannya masing-masing:

  • Nama hook. Nama filter yang ingin Anda gunakan untuk mengaitkan fungsi callback.
  • Fungsi callback. Fungsi callback yang akan dijalankan ketika filter diterapkan.
  • Prioritas. Parameter opsional yang menentukan urutan eksekusi fungsi yang terkait dengan filter. Nilai defaultnya adalah 10, dan semakin rendah angkanya, semakin awal urutan eksekusinya.
  • Argumen yang diterima. Jumlah argumen yang diteruskan ke fungsi yang di-hook. Parameter ini bersifat opsional dan memiliki nilai default 1.

Sintaksis fungsi dan parameter adalah sebagai berikut:

add_filter( hook_name, callback_function, priority=1, 
   accepted_arguments=1);

Contoh add_filter di WordPress

Filter hook WordPress memungkinkan pengguna mengubah atau menambahkan berbagai fungsi baru pada website. Untuk membantu Anda, bagian ini akan menjelaskan beberapa contoh snippet kodenya.

Mengubah Panjang Cuplikan Postingan

Salah satu contoh penggunaan sederhana filter WordPress adalah untuk mengubah panjang cuplikan postingan default. Berikut adalah snippet kodenya:

 add_filter( 'excerpt_length', 'change_length' );
   function change_length( $length )
   {
      // change the default excerpt length
      return 20;
   }

Dalam snippet tersebut, kami membuat fungsi yang mengubah panjang kutipan postingan, yang diwakili oleh argumen $length. Kemudian, kami menghubungkan fungsi ke filter excerpt_length.

Ketika data melewati filter, fungsi akan berjalan dan mengubahnya sesuai tujuan filter. Kemudian, metode return akan membatasi panjang kutipan menjadi 20 dan mengirimkannya ke pengguna.

panjang cuplikan postingan wordpress yang berhasil dimodifikasi

Penting! Untuk beberapa tema WordPress, Anda juga harus mengedit file content.php untuk menerapkan filter kutipan. Baca tutorial kami tentang cara mengubah panjang kutipan WordPress untuk mempelajari selengkapnya.

Memodifikasi Konten Postingan

Penggunaan umum fungsi add_filter adalah untuk menambahkan konten baru ke postingan website Anda. Sebagai contoh, berikut adalah contoh snippet kode yang menempatkan bagian sanggahan di bawah setiap postingan website:

 add_filter( 'the_content', 'add_disclaimer' );
   function add_disclaimer( $content )
   {
      // gabungkan konten untuk memodifikasinya
      return $content . 
      "<br><center><strong>All writings and opinions are my own";
   }

Contoh di atas memiliki filter the_content, yang di-hook ke fungsi callback add_disclaimer. Ketika filter berjalan, fungsi ini akan memodifikasi $content dengan menggabungkannya bersama pesan sanggahan All writings and opinions are my own.

Kode tersebut akan mengembalikan konten yang telah dimodifikasi ke browser dengan sanggahan di bagian bawah.

pesan sanggahan di bawah postingan WordPress

Menampilkan Gambar pada Kategori Postingan Tertentu

Filter hook WordPress memungkinkan Anda menyesuaikan postingan dengan ID atau kategori tertentu. Dalam snippet berikut, kami menambahkan ikon ke setiap postingan yang termasuk dalam kategori premium:

add_filter( 'the_content', 'content_filter' );
   function content_filter( $content ) 
   {
      // condition where the function applies
      if ( in_category('premium') )
      $content = sprintf(
         '<img class="premium-icon"    
         src="%s/directory/filename.png"alt="Premium Content Icon"  
         title="" />%s', get_bloginfo( 'stylesheet_directory' ), 
         $content);
      return $content;
   }

Dalam contoh ini, kami membuat filter the_content lalu menghubungkannya dengan fungsi callback wpb_content_filter. Fungsi tersebut menentukan kondisi untuk menerapkan filter.

Dalam hal ini, kalau postingan tersebut termasuk dalam kategori premium, fungsi filter akan mengubah konten dengan menambahkan gambar ke dalamnya.

ikon pada postingan dari kategori tertentu

Mengubah Jumlah Produk yang Ditampilkan

Filter juga memungkinkan Anda memodifikasi plugin toko online untuk menyesuaikan toko online Anda. Contohnya, berikut adalah kode kustom yang mengubah jumlah produk yang ditampilkan pada plugin WooCommerce:

add_filter('storefront_products_per_page','alter_sf_products_per_page' );
   function alter_sf_products_per_page() 
   {
      // change the default value
      return 3 ;
   }

Dalam snippet ini, kami membuat filter khusus storefront_products_per_page dan menghubungkannya dengan fungsi alter_sf_products_per_page. Ketika data melewatinya, filter akan memanggil fungsi untuk mengubah nilai default dari 12 menjadi 3 dan menampilkannya ke browser pengguna.

judul dan produk yang sudah dimodifikasi di website toko online wordpress

Filter WordPress Lain yang Sering Digunakan

Selain add_filter, berikut adalah beberapa fungsi lain yang mungkin digunakan oleh developer bersama filter hook.

remove_filter()

Fungsi ini menghapus fungsi yang di-hook ke filter tertentu. Web developer sering menggunakannya untuk menghapus fungsi default WordPress tanpa harus menghapus kode sepenuhnya. Sintaksisnya adalah sebagai berikut:

remove_filter( hook_name, callback_function, priority = 10 );

doing_filter()

Fungsi ini mengecek apakah ada fungsi lain yang sedang dijalankan saat ini. Fungsi ini menggunakan nama hook sebagai parameter dan menghasilkan nilai hasil true atau false. Sintaksnya adalah sebagai berikut:

if doing_filter( 'hook_name’ )
{ 
// execute a script if the filter is running 
};

has_filter()

Fungsi has_filter memverifikasi apakah filter berhasil diterapkan pada hook. Fungsi ini membutuhkan nama filter sebagai parameter pertama dan fungsi callback sebagai yang kedua (opsional).

Untuk memeriksa fungsi tertentu, Anda harus menyertakan parameter kedua. Kalau tidak, fungsi ini akan menghasilkan true untuk menunjukkan bahwa fungsi apa pun di-hook ke filter. Sintaksis fungsi ini adalah sebagai berikut:

has_filter( ‘hook_name’, ‘callback_function’ );

Kesimpulan

Filter adalah hook WordPress untuk memodifikasi data sebelum ditampilkan di website. Web developer menggunakannya untuk menyesuaikan plugin atau tema guna menambahkan lebih banyak fungsi pada website mereka.

Hook filter akan mencegat data yang diteruskan oleh WordPress, mengubahnya sesuai kebutuhan Anda, lalu menampilkannya ke browser pengunjung. Untuk mengatur filter, tulis fungsi add_filter dengan nama hook dan fungsi callback sebagai parameter di file functions.php tema.

Beberapa contoh penggunaan hook filter adalah mengubah panjang cuplikan artikel dan menambahkan kalimat sanggahan pada postingan website. Selain add_filter, fungsi lainnya termasuk remove_filter, doing_filter, dan has_filter.

Apabila Anda masih memiliki pertanyaan lain atau komentar, jangan ragu untuk menyampaikannya lewat kolom komentar di bawah artikel ini, ya.

Author
Penulis

Faradilla A.

Faradilla, yang lebih akrab disapa Ninda, adalah Content Marketing Specialist di Hostinger. Ia suka mengikuti tren teknologi, digital marketing, dan belajar bahasa. Melalui tutorial Hostinger ini, Ninda ingin berbagi informasi dan membantu pembaca menyelesaikan masalah yang dialami. Kenali Ninda lebih dekat di LinkedIn.