WordPressを使っていていくと、そのカテゴリの中での人気記事と、更新履歴を一つのページに表示してみたいなと思いました。
結構時間がかかりましたのでコードをそのまま載せています。
そしてトップページに表示してもいいのですが、かなり長くなるので固定ページにカテゴリの整理したページを作っていきます。
下記画像のように、
トップに人気記事を5件表示して、
以降に、
更新履歴をずらずらと表示させます。
これでで見やすくなるんじゃないかなと思っています。
あと、更新履歴を手作業で入力していたのですが、それが無くなり作業が楽ちんになるという所が大きいですが笑
準備するもの
固定ページでPHPを使えるようにする
・Exec-PHPなどのプラグインを使う(使い方によってはセキュリティ上問題があるとの事)
・ショートコードを利用する
固定ページに人気記事と更新履歴を表示
固定ページをあるカテゴリの人気記事と更新履歴を表示させます。
下記コードのカテゴリIDの所を好きな数字に変更してください、
あとアイキャッチ画像サイズも好きな数値に変更してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
<h2>人気記事</h2> <?php if (function_exists('wpp_get_mostpopular')) { $args = ' limit=5& //何件表示するか range=monthly& order_by=views& thumbnail_width=75& //アイキャッチ画像のサイズ thumbnail_height=75& cat="2,49"& //表示したいカテゴリIDを入れる wpp_start=""& wpp_end=""& post_start="<div class="popular-post"><ul>"& post_end="</ul></div>"& stats_comments=0'; wpp_get_mostpopular($args); } ?> <?php $myposts = get_posts('numberposts=5&category=77'); foreach($myposts as $post) : ?> <dd><span class="day"><?php echo date("Y年m月d日", strtotime($post->post_date)); ?></span><a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a></dd> <?php endforeach; ?> <h3>更新履歴</h3> <?php global $post; $tmp_post = $post; // このPHPコードを実行する前の記事データを退避。 $category_ids = array( '2', '49'); // カテゴリIDを配列で指定。 $numberposts = '40'; // 取得する最大投稿記事数を指定。 foreach ( $category_ids as $category_id ) { // 指定したカテゴリIDの数だけ繰り返す。 ?> <h2> <?php echo get_cat_name( $category_id ); // get_cat_name 関数で、カテゴリーIDからカテゴリー名を取得し表示。 ?> </h2> <ul> <?php $postslist = get_posts( "category=$category_id&numberposts=$numberposts&order=DESC&orderby=date" ); // get_posts 関数で、投稿記事データを取得し、配列に格納 foreach ( $postslist as $post ) { // 取得した投稿記事データを1つづつ表示 ?> <li><a href=<?php echo get_permalink( $post->ID ); ?>><?php the_post_thumbnail( array(75,75) ); ?><?php echo $post->post_title; ?></a></li> <?php } ?> </ul> <?php } $post = $tmp_post; // このPHPコードを実行する前の記事データを復活。 ?> |