Membuat Artikel Terkait Tanpa Plugin di WordPress

By | 1 Maret 2020

MWI – Penulis pernah menggunakan YARPP (Yet Another Related Posts Plugin) namun ketika plugin yang digunakan sudah semakin banyak terasa dampaknya pada lambatnya web berbasis wordpress, akhirnya penulis mencari alternatif lain untuk menampilkan artikel terkait. Akhirnya dapatlah membuat artikel terkait (related post) tanpa menggunakan plugin pada wordpress.

Artikel Terkait berdasarkan Kategori yang sama

Buka menu Appearance => Editor (Tampilan => Penyunting Tema), lalu cari file single.php temukan code <?php the_content(); ?> atau sejenisnya (dalam themes yang digunakan, contoh kali ini pada tema Iconic One) yang ditemukan code <?php get_template_part( ‘content’, get_post_format() ); ?>

Tambahkan code setelah <?php get_template_part( ‘content’, get_post_format() ); ?>

<nav class="nav-single">
	<?php
	//Tambahan Untuk Artikel terkait
	$this_post = $post;
	$category = get_the_category(); $category = $category[0]; $category = $category->cat_ID;
	$posts = get_posts('numberposts=6&offset=0&orderby=post_dat e&order=DESC&category='.$category);
	$count = 0;
	foreach ( $posts as $post ) {
		if ( $post->ID == $this_post->ID || $count == 5) {
			unset($posts[$count]);
		}else{
			$count ++;
		}
	}
	?>

	<?php if ( $posts ) : ?><h3>Artikel Terkait :</h3><ul><?php foreach ( $posts as $post ) : ?>
	<li>
	<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li><?php endforeach // $posts as $post ?></ul>
	<?php endif // $posts ?>
	<?php $post = $this_post;
	unset($this_post);
	//Akhir Artikel Terkait
	?>
</nav>

Jika muncul

artinya ada code yang salah, segera perbaiki jika tak ditemukan hapus kembali code yang kita tambahakn untuk mengembalikan kondisi ke semula (disarankan backup file single.php diaawal sebelum diubah-ubah). Mestinya akan menghasilkan tampilan seperti ini

Artikel Terkait berdasarkan Tag yang sama

<nav class="nav-single">
    <h3>Related Post : </h3> 
    <ol type='1'> 
        <?php $tags = wp_get_post_tags($post->ID);
        if ($tags) { $first_tag = $tags[0]->term_id;
            $args=array( 'tag__in' => array($first_tag), 'post__not_in' => array($post->ID), 'showposts'=>5, 'caller_get_posts'=>1 );
            $my_query = new WP_Query($args);
            if( $my_query->have_posts() ) { 
                while ($my_query->have_posts()) : $my_query->the_post(); ?> <li><a title="<?php the_title(); ?>" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li> <?php 
                endwhile; 
            }
        } 
        ?>
    </ol>
</nav>

Artikel Terkait berdasarkan Kategori dan Tag yang sama

Misal diinginkan berdasarkan kategori ada 3 artikel dan berdasarkan tag ada 2 artikel, maka 2 cara diatas digabungkan menjadi

<nav class="nav-single">
	<?php
	//Tambahan Untuk Artikel terkait
	$this_post = $post;
	$category = get_the_category(); $category = $category[0]; $category = $category->cat_ID;
	$posts = get_posts('numberposts=6&offset=0&orderby=post_dat e&order=DESC&category='.$category);
	$count = 0;
	foreach ( $posts as $post ) {
		if ( $post->ID == $this_post->ID || $count == 3) {
			unset($posts[$count]);
		}else{
			$count ++;
		}
	}
	?>
    <?php if ( $posts ) : ?>
    <h3>Artikel Terkait :</h3>
    <ul><?php foreach ( $posts as $post ) : ?>
        <li><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
        <?php endforeach // $posts as $post ?>

        <?php $tags = wp_get_post_tags($post->ID);  
            if ($tags) { $first_tag = $tags[0]->term_id;
                $args=array( 'tag__in' => array($first_tag), 'post__not_in' => array($post->ID), 'showposts'=>2, 'caller_get_posts'=>1 );
                $my_query = new WP_Query($args);
                if( $my_query->have_posts() ) { 
                    while ($my_query->have_posts()) : $my_query->the_post(); ?> <li><a title="<?php the_title(); ?>" href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li> <?php 
                    endwhile; 
                }
            } 
        ?>
    </ul>
	<?php endif // $posts ?>
	<?php $post = $this_post;
	unset($this_post);
	//Akhir Artikel Terkait
	?>
</nav>

Demikian tutorial yang sedikit ini, semoga menjadi bermanfaat untuk yang membutuhkan, demikian dan terima kasih. (ms)

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

This site uses Akismet to reduce spam. Learn how your comment data is processed.