マルチサイトで複数のブログの新着情報を取得したい
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が出ます。
関連記事
-
-
WordPressの管理画面が重くなったら(WPML使用サイト向け)
はっきりとした原因は不明なのですが、WPMLを入れていたWordpressサイト …
-
-
WordPress 不正アクセスとの飽くなき戦い
不正アクセス・・・それはWEB黎明期から行われてきた悪しき犯罪。 これらと日々戦 …
-
-
各固定ページのページデザインをテンプレート選択で可能にする方法
よく使うのに忘れてしまうのでまた忘備録がわりに・・・。 【ネタ元:はじめてのWo …
-
-
Redirectionプラグイン:REST APIの検索で止まる
久しぶりのWordPress忘備録。 Redirectionプラグインを初期設定 …
-
-
PHPでページの一部の文言だけを更新する方法
サイトのページの一部だけをブラウザから更新したい、だけどCMSとか入れるほどでも …
-
-
WEBサイトのスクリーンショットをサムネイル化する
弊社の制作実績を登録していこうと思ったのですが、直近のものだけでも軽く30を超え …
-
-
プラグイン無しで外部サイトのRSSを表示するRSSリーダー的なもの
外部RSS(ブログの新着記事)を読み込む案件があったので「プラグインでええよなー …
-
-
WordPressで記事のカルーセルスライダー(jQuery的なスライドショー)
WordPressがそれなりにいじれると分かってから、嫁様の私への”こき使いっぷ …
-
-
Lightbox系プラグイン「Easy FancyBox」
特に意識すること無くLightbox(ふわっと写真を別ウィンドウで表示する)を使 …
-
-
WordPressのサーバー移動
WordPressのサーバーお引越し これからWordPressのサーバー移動を …


Comment
だいすけさま
こんにちは!
どうしてもこの記事に書かれてられる機能がほしくて、
日付の一番新しいサイトを探してここに来ました。
WP素人でCSSにはじめて取り組む中
何とかマルチサイトを作り上げたのですが
この機能を最後につけたいと思っております、
function.phpに記載するのでしょうか、
ぶしつけですがどうぞよろしくお願いいたします。
元ジェット様
はじめまして、コメントありがとうございます。
お返事が遅くなってスミマセン(T-T)
このコードはfunction.phpに書くのではなく、テンプレートに書き込むタイプのものです。
具体的にはトップページならindex.phpやhome.php(テーマの作りによって違います)です。
home.phpってなんぞや?という場合は下記ページをご参照下さい。
http://liginc.co.jp/programmer/archives/3805
それでは上手く行くことを願っております(๑´ڡ`๑)
こんにちは!お返事ありがとうございました。
わたしはWordPress 4.4.1 でStinger520150505bを用いているのですが、
いろいろやってみたのですが動きませんでした^^;
FunctionやHomeやIndexなどいじってみたのですが、
どうやらこぴぺだけでは限界のようですね・・・
もう少し勉強して理解して記述できるようになるまで辛抱しようかと、思います。
ご丁寧にありがとうございましたm(__)m
元ジェット様
わざわざご連絡ありがとうございました。
あれ?と思ったので掲載しているソースを見なおしてみました。
もしかすると
のところでエラーになってるかもしれません。
ソースを書き換えてみたので、一度お試し頂ければ幸いです~。
[…] マルチサイトで複数のブログの新着情報を取得したい […]