固定ページに記事リストを表示する

WordPressで固定ページに記事リストを表示したいとの相談を受けたので力技でやってみた。
(´・ω・`)

相談をしてきた方は、他の人にWordPressでサイトを作ってもらったが、記事リストを固定ページに表示するページが作られていた為なんとか表示させたいとの事。
単純にページを無くせばいいんじゃないかとの問いに、デザインが崩れるからそれは避けたいとの事。

では、デザインテンプレートを弄るのを提案したが、作ってもらった人に修正を頼むときに先方が判らなくなるのを避けたいとの事。

(゚д゚ ;)<ナンデヤネン

メンドクサイと思いながらも、とりあえず何とかしてみる。

まず、記事上で何とかするか、外部にスクリプトを組んでなんとするかを考えた時に、DBにアクセスさせる手間を考えて記事上で何とかする事を選択。

今回使うプラグインは、「Exec-PHP」と言う記事上でPHPスクリプトを動かす溜めのモノをインストール。

そして固定ページを作成し、テキスト入力で以下のスクリプトを入力。
スクリプトの元はこちらで探すといいかと・・・。

<?php
$args = array( ''posts_per_page'' =&gt; 5, ''post_type'' =&gt; ''post'' );
$lastposts = get_posts( $args );
foreach ( $lastposts as $post ) :
setup_postdata( $post );
?>
<h2><span style="font-size:12px;"><?php echo date(''Y年m月d日'',strtotime($post->post_date)); ?></span> <a href="<?php echo $post->guid; ?>"><?php echo $post->post_title; ?></a></h2>
<?php echo mb_substr(strip_tags($post->post_content),0,200).''...''; ?>
<?php
endforeach;
wp_reset_postdata();
?>

「$args = array( ”posts_per_page” => 5, ”post_type” => ”post” );」 の部分の「posts_per_page」に当てはめる数字が抽出してくる記事数になります。
※この数字を「-1」にすると全件抽出になる。
今回は、最新記事から5件を抽出。

抽出された記事データは、変数「$post」へ配列で格納されているので表示させたいものを選別。
格納されている配列のラベルは以下の通り。
— WP_Post Object —
[ID] ←多分記事ID
[post_author]
[post_date] ←多分投稿日付
[post_date_gmt] ←多分投稿日付その2
[post_content] ←多分記事内容
[post_title] ←多分記事タイトル
[post_excerpt]
[post_status] ←多分記事ステータス
[comment_status] ←多分コメントステータス
[ping_status] ←多分ピングステータス
[post_password] ←多分投稿パスワード
[post_name] ←多分投稿者名
[to_ping]
[pinged]
[post_modified] ←多分修正日付
[post_modified_gmt] ←多分修正日付その2
[post_content_filtered]
[post_parent]
[guid] ←多分記事URL
[menu_order]
[post_type] ←多分記事タイプ
[post_mime_type]
[comment_count] ←多分コメント数
[filter]

表示させたいラベルを配置して、リスト表示の形を整えて完成。

今回は、「$post->post_date」「$post->guid」「$post->post_title」「$post->post_content」の4つを使用しました。
うまく行けばちゃんとリストで表示されます。

(´・ω・`)<力技過ぎるので、もっとスマートな方法を考えてくだしぃ・・・