カスタム投稿タイプで特定のスラッグの更新履歴ウィジェットを表示させたい時

色々な方法が出回っていて、今更としか言いようのない話ではありますが。
書き留めておかないと確実に忘れるのですよ。

しかし、wordpressのカスタム投稿タイプは大変便利な機能ではありますが、まだちょっと敷居が高い気がします。
それをウィジェットで表示させる、となると、敷居が格段に上がります。
どちらにしろ、プラグインで解決できる問題ではあるんですけどね。

まず、ウィジェットで表示させるのに必須のプラグインがあります。

PHP Code Widget

プラグインを有効化した後、ウィジェットの管理画面に行くと「PHP Code」なるウィジェットが追加されています。
ウィジェットに直接PHPコードを書き込める、ありがたい機能です。

カスタム投稿タイプの表示方法ですが

<?php query_posts( array(
'post_type' => array('カスタム投稿名'),
'カスタムタクソノミー名' => 'スラッグ名'));
 ?>

例えば

カスタム投稿名=president
カスタムタクソノミー=collection
スラッグ名=facebook・blog・line
表示させたい種類のスラッグ=facebook

ついでに一覧に表示させる記事数は3つ、7日以内に更新された記事には赤字でNEWを付けるようにします。

<ul>
<?php query_posts( array(
'post_type' => array('president'),
'collection' => 'facebook',
'posts_per_page' => 3 ));
 ?>
<?php if (have_posts()) : while(have_posts()) : the_post(); ?>
<li>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
<?php
$days=7; 
$today=date('U');
$entry=get_the_time('U');
$diff1=date('U',($today - $entry))/86400;
if ($days > $diff1) { echo '<span style="color:#ff0000;font-size:12px;font-weight:bold;">NEW</span>'; }
?>
</li>
<?php endwhile; endif; wp_reset_query(); ?>
</ul>

この結果

from社長のFacebook投稿

あくまでイメージ画像です。

ちなみに出所は社長のFacebook、新着投稿記事です。
生き様が如実に現れていますね。昨日もですが。

wordpress4になったら、カスタム投稿とかマルチサイト機能がワンタッチで設定できたり……したらいいなぁ。

【ハートブレーン】http://heartbrain.net

メールでのお問合せ・お見積りはコチラ