WordPress maaguu (^^; com 北海道札幌でホームページ制作を楽しむ

WordPress, WordPress MU(μ) についての話題、プラグイン作成、カスタマイズ。

カテゴリー「tips」の記事

WordPress MUのトップページに、RSSフィードを取得して各ブログの新着記事を日付順にソートして表示する[Permanent Link]

以下の記事の方法では、各ブログ毎の新着記事が表示されます。

これをひとまとめに日付順にソートして表示したいなあ、と思って作ってみたのがこれです。

上記の記事をRSSフィードを取得して書くこともできますので、今回はその方法でばばーっと書いてみました。ホームページでhome.phpを使っているのでしたら、home.phpに以下ののコードを記述します。一応エラーもなく表示されているようです。

<?php
include_once(ABSPATH . WPINC . '/rss.php');

//フィードのURI
$rss_arr = array(
    'http://log.maaguu.com/feed/',
    'http://wp.maaguu.com/feed/',
    'http://pp.maaguu.com/feed/'
);

//表示件数
$num = 10;

foreach($rss_arr as $uri)
{
    $rss = fetch_rss($uri);

    $title = $rss->channel['title'];
    $link  = $rss->channel['link'];

    foreach($rss->items as $item)
    {
        $item_title = $item['title'];
        $item_link  = $item['link'];
        $item_date  = $item['pubdate'];
        $out_item_date  = date('Y年n月j日', strtotime($item_date));

        $out_item = '<dt>
                         <a href="' . $item_link . '">' . $item_title . '</a>
                     </dt>
                     <dd style="font-size:77%;">
                         <a href="' . $link . '">' . $title . '</a>
                     </dd>
                     <dd style="font-size:77%;">' . $out_item_date . '</dd>';

        $unix_time = date('U', strtotime($item_date));
        $item_arr[$unix_time] = $out_item;
    }
}

//ソート
krsort($item_arr);

//出力
echo '<h2>新着' . $num . '件</h2>';

echo '<dl>';

for(reset($item_arr); $key = key($item_arr); next($item_arr))
{
    echo $item_arr[$key];

    ++$count;

    if($count === $num)
    {
        break;
    }
}

echo '</dl>';
?>

表示はこのようになります。

ソートして表示した画像での例

ポイントを現金でキャッシュバック

最近更新したブログを一番上に表示する(「WordPress MUのトップページに各ブログの新着記事を表示する」の改良版)[Permanent Link]

ホームページに各ブログの新着記事を表示していますが、ブログの並び順が固定で、新着記事が上に表示されないのが不満でしたので、「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の投稿自動保存と投稿履歴(改訂・改正・リビジョン)の設定を変更する[Permanent Link]

Wordpressの自動保存はいいのですが、頻繁に保存されてデータベースにどんどん溜まってしまうのと、ドラフト記事が下書きにいつの間にか作られているので(タイトルを入れて保存すると作られないらしいのですが)、これを調整します。

wp-config.phpに以下を記述してみました。

define('AUTOSAVE_INTERVAL', 600);
define('WP_POST_REVISIONS', 3);

自動保存の間隔を600秒(10分)にし、リビジョンを3つまでに制限します。

これで投稿中のウザさが和らぎました(^^)

ポイントを現金でキャッシュバック
Email to maaguu:info@mx.maaguu.com Powered by WordPress MU Clicky Web Analytics