Censored Bad Word Wordpress

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

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:

$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!.

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.

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');
?>

4 Replies to “Filter/block kata di search WordPress (Plugin Bad Words)”

  1. om, kalau replace dengan kata2 lain bagaimana om?

    om, kalau replace dengan kata2 lain bagaimana om?

    • Bisa menggunakan function str_replace http://php.net/manual/en/function.str-replace.php

      Bisa menggunakan function str_replace http://php.net/manual/en/function.str-replace.php

  2. kalo untuk single post berdasarkan url gimana mas?

    kalo untuk single post berdasarkan url gimana mas?

  3. kalo blokir keyword pada script php gimana bang jev? bisa…

    kalo blokir keyword pada script php gimana bang jev?
    bisa kasih contoh?

Leave a Reply

*

*