Filter/block kata di search WordPress (Plugin Bad Words)

Ingin filter/block beberapa kata yang tidak diinginkan (bad words) dalam halaman search WordPress, ada beberapa cara yang bisa Anda lakukan.

Censored Bad Word Wordpress

Jika Anda mempunyai blog WordPress dan ingin filter/block beberapa kata yang tidak diinginkan (bad words) dalam kotak pencarian WordPress (halaman search WordPress), ada beberapa cara yang bisa Anda lakukan. Yang pertama adalah rewrite halaman search yang mengandung kata kunci bad words menjadi halaman 404 (error page) dan kedua adalah membuat halaman search dengan kata kunci bad words menjadi halaman yang mengandung meta robots noindex.

Cara membuat filter/blokir bad words

Membuat Regex Bad Words

Ada 2 tipe regex untuk melakukan filter/block terhadap bad words.

#(.*?)(bing|google|youtube|facebook)(.*?)#
Contoh: kalimat yang mengandung kata bing, kambing, bingung, atau bingkisan akan cocok dengan kata bing.

/\b(bing|google|youtube|facebook)\b/
Regex ini hanya mencocokkan kata-kata yang telah ditentukan. Contoh: jika Anda telah menentukan kata bing maka hanya kalimat yang mangandung kata bing semata-mata yang cocok.

Jadi, di antara kedua tipe regex di atas, Anda tinggal pilih tipe regex mana yang diinginkan. Kemudian buatlah sebuah file PHP misalnya block_bad_words.php dan isi dengan kode regex di atas seperti berikut:

<?php
$block_bad_words="/\b(bing|google|youtube|facebook)\b/";
?>

Kode diatas untuk tipe regex yang kedua. Simpan file block_bad_words.php di directory theme WP Anda, sama dengan file-file theme yang Anda pakai. Anda dapat menambahkan sebanyak mungkin kata-kata yang diselingi dengan tanda “|” (tidak pakai kutip) sesuai dengan kode di atas, jangan ada spasi atau special character dan semua kata harus dalam bentuk lowercase (huruf kecil).

Block Bad Words di halaman pencarian WordPress (Search WP) menjadi halaman 404 error

Metode ini akan me-rewrite halaman search yang mengandung kata yang Anda blokir menjadi halaman 404 theme WordPress. Tempatkan kode berikut di dalam file search.php theme WP Anda. Simpan pada bagian paling atas!.

<?php
include 'block_bad_words.php';
if (preg_match($block_bad_words,strtolower($s))) {
  global $wp_query;
  $wp_query->set_404();
  status_header( 404 );
  get_template_part( 404 ); exit();
  }
?>

Filter/blokir bad words di halaman search WordPress menjadi halaman noindex

Jika Anda menginginkan search engine tidak meng-index halaman dengan kata kunci bad words, tempatkan kode plugin function berikut di dalam file functions.php theme WP Anda.

<?php
function noindex_bad_words() {
  if (is_search()){
  include 'block_bad_words.php';
    if (preg_match($block_bad_words,strtolower(get_search_query()))) {
      echo '<meta name="robots" content="noindex,follow" />';
      }
      else
      {
      echo '<meta name="robots" content="index,follow" />';
      }
   }
}
add_action('wp_head', 'noindex_bad_words');
?>

Kode ini akan menempatkan meta robots noindex secara otomatis di head html halaman pencarian dengan kata kunci yang mengandung bad words. Sedangkan halaman search yang tidak mengandung kata kunci bad words akan tampil meta robots index. Jadi pastikan terlebih dahulu halaman search WordPres Anda tidak mengandung meta robots sebelumnya, supaya tidak duplikat meta atau saling tumpang tindih.

Tutorial ini sekaligus menjawab pertanyaan-pertanyaan dari teman-teman yang bermain dengan auto generated content yang memanfaatkan halaman search WordPress. Metode regex dan function preg match PHP di atas juga dapat Anda manfaatkan untuk melakukan filter terhadap konten yang di-generate.

Kode regex mana yang Anda mau pakai? metode blokir mana yang Anda inginkan? mau menggabungkan keduanya? Semua terserah Anda. Jika ingin menggabungkan keduanya Anda harus membuat dua file block_bad_words.php dengan nama yang berbeda dan memanggilnya masing-masing dengan kedua kode filter yang berbeda pula.

Plugin Bad Words Search Noindex

Khusus untuk bad keywords noindex, Anda bisa pakai plugin Bad Words Search Noindex berikut, tambahkan kata bad words-nya dan simpan dengan nama file bad-words-search-noindex.php. Letakkan file ini di directory plugin WordPress Anda dan aktifkan melalui dashboard Anda. Anda juga bisa mengubah bentuk regex dalam plugin ini sesuai dengan penjelasan sebelumnya.

<?php
/**
 * @package bad-words-search-noindex
 */
/*
Plugin Name: Bad Words Search Noindex
Plugin URI: https://www.jevuska.com/2013/05/29/filter-block-kata-di-search-wordpress-plugin-bad-words
Description: Create meta robots noindex follow for bad keywords in search result WordPress blog.
Version: 1.0.0
Author: Jevuska
Author URI: https://www.jevuska.com/
*/

function noindex_bad_words() {
  if (is_search()){
   //add more keywords in regex code
   $block_bad_words="/\b(bing|google|youtube|yahoo|facebook)\b/";
    if (preg_match($block_bad_words,strtolower(get_search_query()))) {
      echo '<meta name="robots" content="noindex,follow" />';
      }
      else
      {
      echo '<meta name="robots" content="index,follow" />';
      }
   }
}
add_action('wp_head', 'noindex_bad_words');
?>

 Google

Author: Jevuska

Rachmanuddin Chair Yahya a.k.a Jevuska is the founder of Jevuska.Com, a qualified web about offering medical articles, blogging, tips, and tutorial of WordPress. Having written for Jevuska since 2007.

Leave a Reply

Your email address will not be published. Required fields are marked *

Use tag [php] to add code, e.g. [php]<?php echo $var; ?>[/php]