Cara Mendapatkan Nilai POST dan GET pada Halaman WordPress

Terkadang kita membutuhkan nilai POST atau GET yang dikirimkan melalui halaman WordPress untuk melakukan query. Seperti contohnya ingin membuat indeks berita per tanggal pada halaman WordPress, tentu membutuhkan sebuah form yang bertugas mengirimkan nilai POST atau GET.

Namun, pada WordPress, kita tidak bisa secara langsung mendapatkan nilai POST atau GET yang dikirimkan form menggunakan predefined variable PHP yang biasa digunakan, yaitu $_POST atau $_GET. Alasan singkatnya karena design pattern WordPress tidak memungkinkan untuk melakukan hal itu. Lebih jelasnya dapat melihat gambar diatas mengenai template structure pada WordPress, yang menjelaskan bahwa functions.php pada setiap template WordPress berperan sebagai “penghubung” untuk menyediakan data kepada template.

Continue reading Cara Mendapatkan Nilai POST dan GET pada Halaman WordPress

Hati-hati, WordPress Bahasa Indonesia Disisipkan Kode Iseng!

Saya baru memulai membuat blog ini menggunakan WordPress beberapa bulan yang lalu. Sehingga blog saya ini masih memiliki jumlah post yang sedikit, dan tentunya belum ramai dikunjungi visitor.

Pada saat itu saya “iseng” ingin menggunakan WordPress berbahasa Indonesia. Saya pun mengunduhnya dari id.wordpress.org lalu memasangnya. Beberapa minggu kemudian halaman home blog saya ini berubah menjadi berlatar gelap, dan tertera tulisan kurang lebih “patch your system“. Intinya terkena deface!

Dalam hati “blog saya belum apa-apa ini sudah terkena deface, bahkan theme-nya pun masih default”.

Pada saat itu waktu saya sangat terbatas, sehingga tidak memiliki waktu untuk mencari tahu siapa dalang dibalik “keisengan” ini. Sementara saya hanya mengubah halaman index-nya terlebih dahulu.

Setelah saya memiliki waktu untuk mencari tahu bagaimana orang iseng ini menyelinap. Ternyata karena WordPress Bahasa Indonesia yang saya gunakan ini masalahnya! Terlihat melalui Analytics bahwa orang iseng ini melakukan login melalui backdoor code yang disisipkan pada WordPress Bahasa Indonesia ini! Terlihat pula aksi-aksi lainnya yang dilakukannya sehingga saya mengetahui darimana saja dia membuat “pintu masuk”.

Sesegera mungkin saya pun menghapus core WordPress Bahasa Indonesia yang telah terpasang pada blog saya ini, lalu menggantinya dengan yang baru, yang tentunya tanpa translet-transletan lagi. 🙂

Lalu saya pun iseng membuka Analytics lagi setelah hari ini saya selesai upgrade core WordPress. Beberapa menit kemudian terlihat bahwa orang iseng itu kembali datang untuk menyusup menggunakan URL backdoor.

[Missing Image]

Dalam hati, “Hayo lho.. mau ngapain? Sudah engga bisa yah..” 😀

Baru juga blog saya ini di update sudah mulai bermanuver lagi orang iseng ini, padahal blog ini kan masih “bersih”, tidak ada harta karunnya, hehe.

Terpampang digid.web.id pada website zone-h.org. Bahkan terindeks pula oleh Google 😀

[Missing Image]

So, bagi blogger atau siapapun yang menggunakan WordPress self-hosted ini diharapkan untuk berhati-hati mengunduh source code WordPress, karena WordPress ini bersifat open source. Mudahan-mudahan jika saat ini ada yang menggunakan WordPress Bahasa Indonesia, bisa segera melakukan langkah antisipasi jika tidak ingin mengalami nasib yang sama seperti saya, hehe.

Semoga bermanfaat! 😀

Menyisipkan Parameter Array pada in_category() – WordPress

Di tempat saya bekerja saat ini beberapa situs web dibangun menggunakan WordPress, saat ini pun saya meneruskan “warisan” programmer terdahulu yang membuat situs web ini. Lalu, saya pun menemukan kode yang menurut saya kurang efisien dalam penulisannya. Setelah saya coba pelajari ternyata programmer yang terdahulu belum memanfaatkan kemudahan penggunaan array sebagai parameter pada function in_category() WordPress.

Sebelum membahas kemudahan menggunakan parameter array pada function in_category(), sekilas menjelaskan terlebih dahulu apa yang akan saya lakukan dengan menggunakan function tersebut.

Terdapat suatu kasus dimana ada beberapa kategori menggunakan custom single page. Nah, untuk menentukan kategori n kepada single page n diarahkan oleh function in_category().

Kembali lagi ke parameter array yang diperbolehkan pada function in_category(). Saya menemukan orang lain menuliskan kode seperti ini:

<?php
if( in_category( '9' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '8' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '7' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '6' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '5' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '4' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '3' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '2' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else if( in_category( '1' ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else {
  include(TEMPLATEPATH . '/single-custom.php');
}
?>

Contoh diatas menggunakan else if yang panjang, tanpa penggunaan array. Jika menggunakan array dapat disederhanakan menjadi seperti ini:

<?php
/* initialize */
$ids = array('9', '8', '7', '6', '5', '4', '3', '2', '1');
/* conditional */
if( in_category( $ids ) ) {
  include(TEMPLATEPATH . '/single-custom.php');
} else {
  include(TEMPLATEPATH . '/single-default.php');
}
?>

Lebih sederhanakan bukan? 😉

Featured Image Otomatis pada WordPress

Pada WordPress versi 3.5 keatas, untuk melakukan set featured image (digunakan untuk thumbnails), tidak bisa langsung disekaliguskan pada saat insert image into post.

Sehingga dengan diterapkannya function di bawah ini (pada file function.php), jika melakukan upload image, tidak perlu lagi set featured image, karena telah dilakukan secara otomatis oleh function tersebut.

Dengan begitu, hal ini sedikit meringankan pekerjaan uploader. Walaupun untuk insert image into post yang sudah ada di gallery masih perlu dilakukan manual. It helps a bit! 😀

/**
 * Autoset Featured Image
 *
 * @writer Muhammad Riza Alifi
 * http://wpmu.org/daily-tip-how-to-automatically-set-the-featured-image-in-wordpress/
 */
function autoset_featured() {
  global $post;
  $already_has_thumb = has_post_thumbnail($post->ID);
  if (!$already_has_thumb)  {
    $attached_image = get_children( "post_parent=$post>ID&post_type=attachment&post_mime_type=image&numberposts=1" );
    if ($attached_image) {
      foreach ($attached_image as $attachment_id => $attachment) {
        set_post_thumbnail($post->ID, $attachment_id);
      }
    }
  }
}
add_action('the_post', 'autoset_featured');
add_action('save_post', 'autoset_featured');
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
add_action('future_to_publish', 'autoset_featured');

Cara Menghilangkan Meta Tag Versi WordPress

Terkadang kita memiliki beberapa alasan untuk menyembunyikan Meta Tag Versi WordPress. Untuk menghilangkannya, tambahkan code function dibawah ini pada file function.php yang terdapat di direktori theme yang sedang aktif atau digunakan.

/*
 * Remove Meta Tag Generator of WordPress Version
 *
 * @writer Muhammad Riza Alifi
 */
remove_action('wp_head', 'wp_generator');

For security reason, informasi yang tampil pada page info seperti WordPress version akan dimanfaatkan oleh “pihak yang tidak bertanggung jawab”. So, untuk meminimalisirnya, sembunyikan!