php備忘録: WordPressの最新記事見出しを表示する

WordPressを使ったブログの最新記事見出しをサイトトップに表示出来たら便利かなと思い、あれこれ検索。

思ったよりも簡単に出来ました。
ブログ(WordPress:UTF-8)とサイト(Shift_JIS)の文字エンコーディングが違う点は統一するのが一番なのでしょうが、WordPressをいじくるのは嫌だし、サイトトップを変更するとIEで引っかかりそうだし・・・。
結局どちらも文字エンコーディングはそのままで、サイト側で表示する時にUTF-8→SJISに変換しています。

サイト側のWordPress見出し部分
<?php
require('./hogehoge/wp-blog-header.php');
$posts = get_posts("numberposts=5&category=&orderby=post_date&offset=0");
foreach ($posts as $post) {
  setup_postdata($post);
  print "        <LI>";
  the_time('Y.m.d');
  print " : <a href=\"";
  the_permalink();
  print "\">";
  print mb_convert_encoding(the_title('' , '' , false), "SJIS", "UTF-8");
  print "</A></LI>\n";
}
?>

【解説】
require() :WordPressの記事タイトルを取得する準備。
get_posts() :記事を引っ張ってくる。記事数やカテゴリーの指定、並べ替えも指定できる。
foreach() :記事毎に繰り返し処理。
setup_postdata() :記事内容を各変数に。
print ~ print :htmlを出力。
the_time() :記事の時間を取得。ここでは日付のみ使用。the_date()でも可能だが、同じ日付の記事がある場合の扱いが違う。
the_permalink() :WordPress記事へのリンク用URL。
the_title(” , ” , false) :記事タイトルを取得する。ここでは文字列が欲しいので最後のパラメータはfalseにする。
mb_convert_encoding(the_title(” , ” , false), “SJIS”, “UTF-8”) :記事タイトルの文字エンコーディングを変換する。ここではUTF-8→SJIS。

カテゴリー: php, WordPress パーマリンク