Posted by: girls87 | February 21, 2011

[INFO] Cara Membuat List Post Seperti Kategori

WordPress terutama platform blog. Tidak jarang digunakan sebagai CMS. Tapi bukan hanya halaman statis berperan, tetapi juga posting, karena mereka memberikan kesempatan lebih, memiliki performa yang lebih baik dan dipublikasikan dalam feed. Oleh karena itu, saya lebih suka menggunakan, dalam konteks WP sebagai CMS, posting lebih banyak dari halaman statis. Dari waktu ke waktu adalah keinginan tata letak navigasi odinary sangat ekstra. Dan demikianlah dalam proyek terbaru saya, persyaratan untuk daftar posting dari setiap kategori dalam navigasi.

Ini luar biasa karena dalam jangka panjang, Anda akan memiliki banyak posting, dan navigasi akan sangat membingungkan – masih, dalam proyek ini masuk akal, karena kita tidak akan memiliki banyak posting.

Fungsi kecil daftar kategori dan di bawah posting. Ada parameter yang membatasi output dari posting, sehingga dalam kasus-kasus ekstrim, tidak terlalu banyak akan terdaftar, hanya posting terakhir – $ mylimit. Nilai -1 untuk parameter ini memberikan semua posting. Fungsi itu sendiri milik functions.php tema atau dalam Plugin. Penggunaan contoh dapat ditemukan di bawah fungsi.

function fb_posts_by_category() {
	global $wpdb, $post;
 
	$mylimit = '-1'; // limit for posts, -1 for all
	$sort_code = 'ORDER BY name ASC, post_date DESC';
	$the_output = '';
 
	$last_posts = (array)$wpdb->get_results("
		SELECT $wpdb->terms.name, $wpdb->terms.term_id
		FROM $wpdb->terms, $wpdb->term_taxonomy
		WHERE $wpdb->terms.term_id = $wpdb->term_taxonomy.term_id
		AND $wpdb->term_taxonomy.taxonomy = 'category'
		{$hide_check}
	");
 
	if ( empty($last_posts) )
		return NULL;
 
	$used_cats = array();
	$i = 0;
	foreach ($last_posts as $posts) {
		if ( in_array($posts->name, $used_cats) ) {
			unset($last_posts[$i]);
		} else {
			$used_cats[] = $posts->name;
		}
		$i++;
	}
	$last_posts = array_values($last_posts);
 
	//$the_output .= '<ul>';
	foreach ($last_posts as $posts) {
		$class = 'cat-item cat-item-' . $posts->term_id;
		$catsy = get_the_category();
		$current_category = $catsy[0]->cat_ID;
		if ( isset($current_category) && $current_category && ($posts->term_id == $current_category) )
		$class .=  ' current-cat';
		elseif ( isset($_current_category) && $_current_category && ($posts->term_id == $_current_category->parent) )
		$class .=  ' current-cat-parent';
 
		$the_output .= '<licolor: rgb(51, 153, 51);">. $class . '"><a href="' . get_category_link($posts->term_id) . '">' . apply_filters('list_cats', $posts->name, $posts) . '</a>';
		$where = apply_filters('getarchives_where', "WHERE post_type = 'post' AND post_status = 'publish'" , $r );
 
		if ('-1' !== $mylimit)
			$limit = ' LIMIT ' . (int) $mylimit;
		else
			$limit = '';
 
		$arcresults = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' AND ID IN (Select object_id FROM $wpdb->term_relationships, $wpdb->terms WHERE $wpdb->term_relationships.term_taxonomy_id =" . $posts->term_id . ") ORDER BY post_date DESC$limit");
		if (isset($arcresults) && $arcresults) {
			$the_output .= '<ul>';
			foreach ( $arcresults as $arcresult ) {
				$class = 'post-item post-item-' . $arcresult->ID;
				$current_post = get_the_ID();
				if ( isset($current_post) && $current_post && is_singular() && ($arcresult->ID == $current_post) )
				$class .=  ' current-post';
 
				$the_output .= '<licolor: rgb(51, 153, 51);">. $class . '"><a href="' . get_permalink($arcresult->ID) . '">' . apply_filters('the_title', $arcresult->post_title) . '</a></li>';
			}
			$the_output .= '</ul>';
		}
 
		$the_output .= '</li>';
	}
	//$the_output .= '</ul>';
 
	echo $the_output;




Berikut contoh di sidebar.php, yang hanya menggunakan Markup HTML5.

<div id="sidebar">
	<nav>
		<h3>Navigation</h3>
		<ul>
			<li><a title="to front page" href="<?php bloginfo('url'); ?>">Home</a></li>
			<?php
			fb_posts_by_category();
 
			wp_list_pages( 'title_li=&sort_column=menu_order&exclude=2,14,49' );
			?>
		</ul>
	</nav>
</div>

Selamat Mencoba..:)

cr : kumpulantipsngeblog.wordpress.com


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: