マジカルスリー・だいすけのなりゆき長者ブログ

沖縄/大阪WEB広告・ホームページ制作・印刷物制作 マジカルスリー 「福」代表のブログ

*

マルチサイトで複数のブログの新着情報を取得したい

      2016/09/09

WordPressでマルチサイトの新着情報を取りたいなーと思うことがあったのでメモメモ。

ちなみにマルチサイトではなく、フツーに新着情報を取りたい方は【こちら】

【元ネタ:マルチサイト化した複数のブログの新着記事を表示する-KOTORI様】

http://kotori-blog.com/wordpress/multisite_newpost/

 

元ネタのとおりだと記事へのリンクがないので付け足してみました(´∀`)

あと、元ネタは「記事タイトル-日付」の順ですが、下のコードでは「日付-記事タイトル」にしてます。細かいですが、この並びのほうが多いような気がしたので・・・。

<?php
$sql = '';
$blog_id_arr = array(1,2);//取得するブログIDの配列
$tmp = $blog_id_arr;
foreach($blog_id_arr as $b_id){
 next($tmp);
 switch_to_blog($b_id);
 $sql .= <<<HERE
(SELECT *, $b_id as blog_id
FROM $wpdb->posts
WHERE post_type = 'post'
AND post_status = 'publish')
HERE;
 
 if(current($tmp) !== false){
 $sql .= "UNION\n";
 }
 restore_current_blog();
}
$sql .= <<<HERE
ORDER BY post_date DESC
LIMIT 10
HERE;
$posts = $wpdb->get_results($sql);
?>
 
<?php
foreach ($posts as $post):
 switch_to_blog($post->blog_id);
 setup_postdata($post);
?>
<a href="<?php the_permalink(); ?>"><?php the_time('Y.m.d');?>-<?php the_title();?></a><br />
<?php endforeach;?>
<?php wp_reset_postdata();?>
<?php restore_current_blog();?>

ちなみにサイトIDの確認の仕方ですが・・・
管理画面→参加サイト→サイトネットワーク管理者→サイト を開いて、
それぞれマルチサイトのURLの部分にマウスカーソルをターゲットすると左下のリンク先表示にIDが出ます。

sitenetwork

 - WordPressの事

Comment

  1. 元ジェット より:

    だいすけさま
    こんにちは!

    どうしてもこの記事に書かれてられる機能がほしくて、
    日付の一番新しいサイトを探してここに来ました。

    WP素人でCSSにはじめて取り組む中
    何とかマルチサイトを作り上げたのですが
    この機能を最後につけたいと思っております、

    function.phpに記載するのでしょうか、
    ぶしつけですがどうぞよろしくお願いいたします。

    • だいすけ より:

      元ジェット様
      はじめまして、コメントありがとうございます。
      お返事が遅くなってスミマセン(T-T)
      このコードはfunction.phpに書くのではなく、テンプレートに書き込むタイプのものです。
      具体的にはトップページならindex.phpやhome.php(テーマの作りによって違います)です。
      home.phpってなんぞや?という場合は下記ページをご参照下さい。
      http://liginc.co.jp/programmer/archives/3805
      それでは上手く行くことを願っております(๑´ڡ`๑)

  2. 元ジェット より:

    こんにちは!お返事ありがとうございました。

    わたしはWordPress 4.4.1 でStinger520150505bを用いているのですが、
    いろいろやってみたのですが動きませんでした^^;
    FunctionやHomeやIndexなどいじってみたのですが、
    どうやらこぴぺだけでは限界のようですね・・・
    もう少し勉強して理解して記述できるようになるまで辛抱しようかと、思います。

    ご丁寧にありがとうございましたm(__)m

    • だいすけ より:

      元ジェット様
      わざわざご連絡ありがとうございました。
      あれ?と思ったので掲載しているソースを見なおしてみました。
      もしかすると

      nbsp;

      のところでエラーになってるかもしれません。
      ソースを書き換えてみたので、一度お試し頂ければ幸いです~。

  3. […] マルチサイトで複数のブログの新着情報を取得したい […]

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

  関連記事

WordPressで記事ごとに簡単リダイレクト「Page Links To」

WordPressの記事を別ページに置き換えたくなるときってありませんか? たと …

テーマの自動アップデートがイヤな場合は

最近梅の花がとってもきれいに咲いてますね。 春の訪れを感じながら仕事に追われる「 …

mb_substr()使ってもサムネイルの見出しがズレるじゃん!という話

またしても忘備録。 WordPressでよくある、こういう感じの記事表示方法。 …

【ご注意】WordPressの不正コード改ざん

WordPressを狙った不正コードによる下記動画のような改ざんが横行しているよ …

Limit Login Attempts Reloadedとしてヤツが帰ってきた件

かんたん優秀なセキュリティ、「Limit Login Attempts」 Lim …

NextGEN Gallery2.2 日本語化

ここに日本語化ファイルがあるのでダウンロードします。 NextGEN Galle …

All-in-One Event Calendarでエラー「イベントの取得中に何かがうまくいきませんでした。」

使い慣れないプラグインは変なことが起こるのでびっくりデスよ。 表題のエラーが起こ …

Redirectionプラグイン:REST APIの検索で止まる

久しぶりのWordPress忘備録。 Redirectionプラグインを初期設定 …

子カテゴリに親カテゴリのテンプレートを引き継がせる

WordPressって基本的に親カテゴリを指定すると、それにぶら下がっている子カ …

WordPressで自動ログアウトを

本当に自分のための覚え書きになっている当ブログです。こんにちは。 自動ログアウト …