マルチサイトで複数のブログの新着情報を取得したい
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が出ます。
関連記事
-
-
ページネーションがおかしいぞ?
とあるサイトで、ページ送りがおかしくなっていました。 具体的に言うと、本来6ペー …
-
-
子カテゴリに親カテゴリのテンプレートを引き継がせる
WordPressって基本的に親カテゴリを指定すると、それにぶら下がっている子カ …
-
-
ワードプレスのサイト引越し時に500エラー
毎度おなじみのワードプレス備忘録です。 表題の通り、よくある(よくあってほしくな …
-
-
別ページのカスタムフィールドの値を取りたいときー
トップページにカスタムフィールドの値を出したい時ってありますよね? そんな時は固 …
-
-
カスタムフィールドの出力(テンプレート作成)について
表題の通り覚え書き。 テンプレートを作る。page.phpなどを元にしてテンプレ …
-
-
月別アーカイブページでカテゴリ指定
月別アーカイブページでカテゴリ指定したい・・・ でも、query_postsやW …
-
-
WordPressのカテゴリー選択を1つに制限したがチェックできない場合
カテゴリの選択制限をかけている方はおそらく、jqueryを使って行っていると思わ …
-
-
WordPressでよく使う新着記事表示のコード
ほんとによく使うので覚え書き。 ちなみにマルチサイトをまたがって新着を取得する場 …
-
-
ページ転送したい時に「Redirection」!
ワードプレスの記事で、「別ページに即座に飛んで欲しい」とか、「このページ見せたく …
-
-
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
元ジェット様
わざわざご連絡ありがとうございました。
あれ?と思ったので掲載しているソースを見なおしてみました。
もしかすると
のところでエラーになってるかもしれません。
ソースを書き換えてみたので、一度お試し頂ければ幸いです~。
[…] マルチサイトで複数のブログの新着情報を取得したい […]