ブログ

人気記事をプラグインなしで表示する

人気記事一覧を表示したいだけなのに・・・

プラグインでは細かいカスタムが出来ずに困りました。

こまったポイント

カテゴリ名とスラッグを取得・表示したい。

取得したスラッグはクラス名として利用したい。

自分の知識不足だったかもしれませんが、プラグインではスラッグの取得表示ができなかった。

やったこと

functions.phpで記事のアクセス数を記録・表示するためのコードを追加。

/** 人気記事出力用 **/
/*アクセス数を表示*/
function getPostViews($postID){
	$count_key = 'post_views_count';
	$count = get_post_meta($postID, $count_key, true);
	if($count==''){
			delete_post_meta($postID, $count_key);
			add_post_meta($postID, $count_key, '0');
			return "0 View";
	}
	return $count.' Views';
}
/*アクセス数を保存*/
function setPostViews($postID) {
	$count_key = 'post_views_count';
	$count = get_post_meta($postID, $count_key, true);
	if($count==''){
			$count = 0;
			delete_post_meta($postID, $count_key);
			add_post_meta($postID, $count_key, '0');
	}else{
			$count++;
			update_post_meta($postID, $count_key, $count);
	}
}
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

人気記事一覧を表示したい場所に追加。

	<div class="popular_wrap">
		<ul class="popular_list">
		<?php
		// views post metaで記事のPV情報を取得する
		setPostViews(get_the_ID());

		// ループ開始
		query_posts('meta_key=post_views_count&orderby=meta_value_num&posts_per_page=5&order=DESC'); while(have_posts()) : the_post(); ?>
		<li class="popular_list_item">
			<a href="<?php the_permalink(); ?>">
				<div class="blog_img">
					<?php the_post_thumbnail('medium'); ?>
					<?php
					$cat = get_the_category();
					$cat = $cat[ 0 ]; {
						echo '<span class="blog_cat ' . $cat->category_nicename . '">';
					}
					?>
					<?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } ?>
					</span>
				</div>
				<p class="title"><?php echo wp_trim_words(get_the_title(), 48, "…", "UTF-8"); ?></p>
				<p class="post_date"><?php the_date(); ?></p>
			</a>
		</li>
		<?php endwhile; ?>
		</ul>
	</div>