最近更新したブログを一番上に表示する(「WordPress MUのトップページに各ブログの新着記事を表示する」の改良版)
- 2008年12月25日 12時25分
- WordPress MU | tips
ホームページに各ブログの新着記事を表示していますが、ブログの並び順が固定で、新着記事が上に表示されないのが不満でしたので、「WordPress MUのトップページに各ブログの新着記事を表示する」のコードを変更します。
Codexを浚っているとget_last_updated関数がありましたので、これを使ってみます。get_last_updated()は更新順に40件のブログを配列にして返す関数のようです。
wpmu-functions.phpを覗いてみると、以下のように記述してありました。
function get_last_updated( $deprecated = '', $start = 0, $quantity = 40 ) {
global $wpdb;
return $wpdb->get_results( $wpdb->prepare("SELECT blog_id, domain, path FROM $wpdb->blogs WHERE site_id = %d AND public = '1' AND archived = '0' AND mature = '0' AND spam = '0' AND deleted = '0' AND last_updated != '0000-00-00 00:00:00' ORDER BY last_updated DESC limit %d, %d", $wpdb->siteid, $start, $quantity ) , ARRAY_A );
}
パラメータが使えますね。3番目から15番目のブログを指定するには、get_last_updated(, 3, 15)のようになるでしょうか。
さて、本題ですが、コードの以下の部分1行を変更します。
$blog_list = get_blog_list();
これを下のように変更します。
$blog_list = get_last_updated();
こうすることで、最後に更新したブログが先頭に表示されます。



[...] 最近更新したブログを一番上に表示する(「WordPress MUのトップページに各
[...] 最近更新したブログを一番上に表示する(「WordPress MUのトップページに各
はじめまして。MUの新着記事表示で検索して、こちらに辿り着きました。大変有用な記事で参考にさせていただいております。コードをコピペさせていただき無事親ブログに子ブログの各新着記事を表示できたのですが、get_last_updatedでブログの数だけループですとブログの数だけ新着記事が表示されてしまいます。
指定した件数の表示(すべての子ブログの中での最新の記事を5件とか)はできますでしょうか?当方phpは初心者なものでいろいろとやってみたのですが、わかりませんでした。宜しければお知恵をお貸し下さい。よろしくお願いいたします。
>tensekiさん
WordPress MUのトップページに、RSSフィードを取得して各ブログの新着記事を日付順にソートして表示する
こちらの方法ではいかがでしょうか。
maaguu様
お忙しいところレスありがとうございます。ご紹介いただいたRSSフィードを取得する方法の表示件数のコード、
$num = 4;
++$count;
if($count – 1 === $num)
{
break;
}
を途中に入れて無事思い通りに表示する事が出来ました。ありがとうございました。($countを-1にしないとダメでしたGが)最新記事に子ブログのサイト名と記事(ページ)名の他にカスタムフィールド(画像他)も表示させたかったので、
前回のget_last_updated()を使ったコードに表示件数を指定するコードを追加してみました。WPフォーラムでもRSSでカスタムフィールドを配信するには、という質問があり解決方法が示されていましたが、maaguu様の前回のコードの方はquery_postsが使えるので拡張性が高いような気がします。大変助かりました。ありがとうございました。
最近更新したブログを一番上に表示する(「WordPress MUのトップページに各ブログの新着記事を表示する」の改良版) | WordPress maaguu (^^; com 北海道札幌でホームページ制作を楽しむ…
この記事は以下サイトで紹介されています。 WordPressハッカーズ…