Tutorial Buat Achives Page Di WordPress

Achives atau dalam bahasa melayunya arkib berfungsi untuk menyimpan semua entri di dalam blog.  Achives ini penting untuk sesebuah blog bagi memudahkan pengunjung menyemak kembali entri-entri yang telah ditulis di dalam blog. Achives kelihatan lebih kurang sama dengan sitemap. Cuma achives ini kita boleh buat sendiri dengan mudah jika mengikuti tutorial di atas.

Achives Page ini terdapat banyak jenis. Ada yang menyusun ikut tarikh, ada ikut kategori, ada juga tak susun langsung. Dalam entri ini, aku bersenang hati berkongsi tutorial membuat achives page di wordpress untuk jenis ikut tarikh dan ikut kategori. Yang sebenarnya tutorial ini bukan ciptaan aku sendiri. Tapi aku ambil dari blogger luar dan ubah suai ikut cara sendiri.

Buat Archives Page susun mengikut kategori :

Hasil mungkin akan sedikit berbeza mengikut blog.

tutorial archives page wordpress

<?php $cats = get_categories("hierarchical=0"); ?>
<?php if($cats != NULL) { ?>
	<ul>
	<?php foreach ($cats as $cat) { ?>
		<li>
		<?php if($cat != NULL) {
			$base_url = get_bloginfo('home') . 	"/category/" . $cat->slug; ?>
<td>&nbsp;</td>
<td>&nbsp;</td>
<h2><?php echo $cat->cat_name?></h2><?php } ?>
	</li>
		<li>
		  <?php // Show category description if ($cat->category_description != NULL) ?>
		  <p><i><?php echo $cat->category_description ?></i></p>
           <hr>
           <td>&nbsp;</td>
            <?php $myposts = get_posts("category=$cat->cat_ID"); ?>
		  <ul>
		    <?php foreach($myposts as $post) : ?>
		    <li>
		      <?php the_time('Y M d') ?>
		      : <a href="<?php the_permalink(); ?>">
	          <?php the_title(); ?>
		        </a></li>
		    <?php endforeach; ?>
	      </ul>
	  </li>
	<?php } ?>
		</ul>

<?php } ?>

Kalau rasa tak mahu ada garis-garis, boleh buang <hr> pada code tersebut. Dan kalau mahu ubah bentuk tarikh, pandai-pandailah ubah <?php the_time(‘Y M d’) ?>. “Y” untuk year, “M” untuk month, “d” untuk date.

Buat Archives Page susun mengikut tarikh :

Susunan mengikut tarikh ini pun agak menarik mata memandang. Cara ini aku telah buat dalam 404 page. Semua entri akan disusun mengikut bulan seperti dalam gambar di bawah. Untuk code achives page seperti ini, ada disediakan di bawah.

tutorial archives page wordpress

<h2>All Posts In <?php bloginfo('name'); ?></h2>
		<?php

// Declare some helper vars
$previous_year = $year = 0;
$previous_month = $month = 0;
$ul_open = false;

// Get the posts
$myposts = get_posts('numberposts=-1&orderby=post_date&order=DESC');

?>

<?php foreach($myposts as $post) : ?>	

	<?php

	// Setup the post variables
	setup_postdata($post);

	$year = mysql2date('Y', $post->post_date);
	$month = mysql2date('n', $post->post_date);
	$day = mysql2date('j', $post->post_date);

	?>

	<?php if($year != $previous_year || $month != $previous_month) : ?>

		<?php if($ul_open == true) : ?>
		</ul>
		<?php endif; ?>
		<td> </td>

		<h2><?php the_time('F Y'); ?></h2>

		<ul class="month_archive">

		<?php $ul_open = true; ?>

	<?php endif; ?>

	<?php $previous_year = $year; $previous_month = $month; ?>

	<li><span class="the_day"><?php the_time('j l'); ?></span> : <span class="the_article"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></span></li>
<?php endforeach; ?>
	</ul>

Kalau rasa mahu ubah apa-apa dari hasil yang anda dapat, boleh beritahu. Mungkin aku dapat bantu. Sebagai contoh, <h2>All Posts In <?php bloginfo(‘name’); ?></h2> boleh diubah mengikut kehendak masing-masing.

Nak Masukkan Di Mana Code-Code Ini?

Ini adalah part yang paling mudah sebenarnya. Kerana hanya perlu copy and paste. Tak perlu menaip code-code php yang panjang lagi mengelirukan.

      1. Masuk ke ruangan ( Appearance>Editor ) dan klik pada Page Template (page.php).tutorial archives page wordpress
      2. Buka “Notepad” dari sistem komputer, dan copy segala elemen dalam Page Template (page.php) tadi, pastekan pada “Notepad” kosong tersebut.tutorial archives page wordpress
      3. Copy code yang menjadi pilihan di atas, dan gantikan <?php if (have_posts()) : while (have_posts()) : the_post(); ?> sehingga <?php edit_post_link(‘Edit this entry.’, ‘<p>’, ‘</p>’); ?> . Walaubagaimanapun, template kita mungkin atau memang berbeza. So, code php nya akan beza sikit. Senang citer, gantikan start dari <?php if (have_posts()) : while (have_posts()) : the_post(); ?> dan pastikan tidak padam sebarang </div> sebelum <?php get_sidebar(); ?> . Kalau tidak faham, boleh bertanya di ruangan komen di bawah.
      4. Kemudian copy code yang diberi di bawah ini, dan paste kan pada “Notepad” tadi di ruangan atas sekali. Maknanya sebelum <?php get_header(); ?>.
        <?php
        /*
        Template Name: Archives Page
        */
        ?>
      5. Hasil akhirnya akan jadi seperti gambar bawah ini.tutorial archives page wordpress
      6. Kemudian save “Notepad” itu dengan sebarang nama. Lebih baik buat nama ( page-archives.php ). Peringatan ye, save dalam format ( .php ) bukan ( .txt ).
      7. Setelah itu, upload file tersebut ke dalam file theme anda. ( wp-content > themes > nama theme anda )
      8. Untuk wujudkan page archives ini, pergi ke ( Page > Add New ). Letakkan tajuk yang dikehendaki, dan pilih template di sebelah kanan itu dengan nama “Archives Page”.
      9. Publish page, then Siap!

Suka dan gembira aku ingatkan, hasil mungkin akan berbeza mengikut template atau theme masing-masing. Dan juga, sekiranya ada masalah, boleh tanya di ruangan komen di bawah.

Kalau nak cuba versi lain pun ada di blog wwangle.com

Sumber rujukan : Zo’C Blog , WordPress Guy , WordPress Codex

5 thoughts on “Tutorial Buat Achives Page Di WordPress

  1. fuhh, ni yang aku cari.
    aku nak sort by categori, yang skg ni die just listkan semua entry.
    aku punya sitemap pun manual.

    thanks bro, bookmark dulu

Leave a Reply