WordPress Blogging Engine

WP hack – related post berdasarkan category

by Muhammad Hatim on 20/03/2009

in Wordpress

Contoh dari penggunaan hack ini bisa dilihat di http://www.herbasunnah.com/madu-propolis

madu-propolis

Oke, idenya adalah menampilkan related products di sidebar kanan kalau kita berada di single.php dengan kategori yg sama.
Artinya:  jika single.php menampilkan produk madu, maka yang kita inginkan adalah produk sejenis dengan kategori madu. Begitu juga dengan Kategori Bee Pollen, maka related produknya adalah produk2x dalam kategori Bee Pollen, dst, dst.

Sebelum berlanjut, perhatikan dulu penyusunan kategori ini:

kategori-produk

Madu, Bee pollen, Jinten hitam, semuanya berada dalam kategori Product yang memiliki kategori ID=3

Berikut adalah code di dalam sidebar.php


<div id="sidebar-1">

<div class="tagcloud">
<?php wp_tag_cloud('smallest=12&amp;amp;amp;amp;amp;largest=28'); ?>
</div>

<?php
$in_subcategory = false;
foreach( (array) get_term_children( 3, 'category' ) as $child_category ) {
if(in_category($child_category))$in_subcategory = true;
}

if ( is_single() &amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp; $in_subcategory || in_category('3') ) { include ('related.php'); } ?>

<ul>
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(1) ) : ?>

<?php endif; ?>
</ul>
</div>

disebutkan disitu => include(related.php), artinya code itu memanggil file related.php yang kita buat sendiri (nama file terserah anda).

Berikut isi dari file related.php


<h2>Produk sejenis</h2>
<ul>
<?php while(have_posts()) : the_post(); ?>
<?php foreach((get_the_category()) as $category)
{ $my_query = new WP_Query('category_name=' . $category->category_nicename . '&amp;amp;amp;amp;amp;orderby=title&amp;amp;amp;amp;amp;order=asc&amp;amp;amp;amp;amp;showposts=100');} ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
<?php break; endwhile; ?>
</ul>

showpost=100 bisa anda ganti dengan banyaknya produk yang ingin anda tampilkan, misalnya 10 atau 20.

Artikel Terkait

{ 3 comments… read them below or add one }

1 Muhammad Hatim 03.20.09 at 06:09

Mohon maaf untuk penjelasan secara detil logika code keseluruhan mungkin sy tidak bisa menerangkan, karena hack ini diambil dari beberapa sumber di http://wordpress.org/support/ dan saya kemas sendiri.

2 uwiuw 03.27.09 at 00:51

wa sy suka sekali nih snippet ini…walau penjelasannya kurang hahahah tp ada yg aneh penggunaan pd baris 13 fle sidebar.php, yaiu &amp;amp;&amp;amp; ….walau belum sy tes…tp apakah itu kode yg benar ?

3 Tajid Yakub 03.27.09 at 04:01

Bukan mas, itu konversi dari ampersand, code php sepertinya gak bisa pakai syntax highlighter, coba nanti saya cari akal :).

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Previous post:

Next post: