wordpress「habakiri」テーマの固定ページに、「お知らせ」のように投稿一覧を表示する方法です。
①news.phpを用意します。
<?php $posts = get_posts('numberposts=5&category=1'); global $post; ?>
<?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
<a href="<?php the_permalink(); ?>">
<?php the_time('Y/m/d'); ?>
<span class="label label-<?php $label = get_the_category(); $label = $label[0]; { echo $label->category_nicename; } ?>"><?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } ?></span><br />
<?php the_title(); ?>
</a>
<?php endforeach; endif; ?>
■内容の説明
numberposts=表示する件数。
category=表示したいカテゴリー番号。
(カテゴリー編集画面に入った時にURLに書いてあるtag_ID=*←の数字)
指定しない場合は全カテゴリーが表示される。
the_timeで年月日を指定。
class=label habakiriテーマはbootstrapを使用しているので、ラベルのクラスを使って見栄えをつける
<span class="label label-<?php $label = get_the_category(); $label = $label[0]; { echo $label->category_nicename; } ?>">
ここで指定しているのは、カテゴリー名のスラッグを取得してclassのスタイルにしてしまう処理。
<?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } ?></span><br />
ここではカテゴリー名(表示用)を取得して文字として表示。
<?php the_title(); ?>
投稿記事のタイトルを表示。
★更に、habakiriテーマがbootstrapを利用していることを活用して、見栄えを整えます。
■news.php
<div class="container box_news">
<div class="row">
<div class="col-xs-8 col-md-10">
<h2 class="t_blue">お知らせ</h2>
</div>
<div class="col-xs-4 col-md-2"><a href="news/" class="in_link">一覧はこちら <i class="fa fa-arrow-circle-right"></i></a></div>
</div>
<div class="row">
<div class="col-md-12 box_list">
<?php $posts = get_posts('numberposts=5&category=1,3,7,9,10,11,12,13,14'); global $post; ?>
<?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
<a href="<?php the_permalink(); ?>">
<?php the_time('Y/m/d'); ?>
<span class="label label-<?php $label = get_the_category(); $label = $label[0]; { echo $label->category_nicename; } ?>"><?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } ?></span><br />
<?php the_title(); ?>
</a>
<?php endforeach; endif; ?>
</div>
</div>
</div>
divで囲って、スタイル等を適用して…。
こんな感じになります!
②子テーマのfunction.phpに、独自phpを読み込むための記述をします。
function Include_my_php($params = array()) {
extract(shortcode_atts(array(
'file' => 'default'
), $params));
ob_start();
get_template_part($file);
return ob_get_clean();
}
add_shortcode('myphp', 'Include_my_php');
③固定ページのお知らせを表示した場所に「ショートコード」を追加します。
[myphp file='news']
★2020/11/24追記
投稿をブログトップに固定表示出来ないバグについて
wordpress habakiriテーマでget_postsを使うと投稿のブログトップに固定表示がされない
こちらに追記しました
コメント
コメントを投稿