静的ページでRSSを使わずにWordPressの記事を引用する

自分で100%理解して管理しているページ(WordPress外)に必要な記事だけ欲しいなと思う事があったりするので、こういう使い方は結構便利です。

WordPressをインストールしたディレクトリルートにあるwp-blog-header.phpを読み込んでおいてget_postsの引数の設定をしたら、後は通常通り必要なパーツを書き出す記述をするだけ。
引数の内容はCodexを参考に。 テンプレートタグ/get posts

<?php require('wpインストールディレクトリ/wp-blog-header.php'); ?>
<ul>
<?php
$args = array(
			  'numberposts'     => '5', //取得する投稿の数
			  'offset'          => '0', //取得開始位置
			  'category'        => '', //カテゴリーID(除外は-)
			  'category_name'   => '', //カテゴリー名、スラッグ
			  'tag'             => '', //タグスラッグ
			  'orderby'         => '', //ソート対象
			  'order'           => '', //ソート順
			  'include'         => '', //投稿ID
			  'exclude'         => '', //除外投稿ID
			  'meta_key'        => '', //カスタムフィールドの名前(key、value両方必要)
			  'meta_value'      => '', //カスタムフィールドの値(key、value両方必要)
			  'post_type'       => '', //投稿タイプ
			  'post_parent'     => '', //子ページ
			  'post_status'     => '' //投稿ステータス
			  );
$posts = get_posts($args);
foreach ($posts as $post):
setup_postdata($post);
?>
<li>
<?php the_time('Y.m.d') ?> <a href="<?php the_permalink() ?>"><?php the_title() ?></a>
<?php the_content() ?>
</li>
<?php endforeach; ?>
</ul>

このままだと記事全文が吐き出されるので、the_expert()にすればいいかなと思うけど、文字数の制御が面倒な印象があるのでthe_content()を以下に置き換えて使ってます。

<?php
$pickup_post = mb_substr(strip_tags($post-> post_content), 0, 100);
echo ('<div class="pickup_post">'.$pickup_post.'...</div>'."\n");
?>

「続きを読む」みたいなリンクが必要であれば、permalink()でaタグ書けばOKです。100を適当に変更すれば表示文字数が変更されます。