ハナモゲラボ / 試行錯誤の実験人生

日々、PCや各種デバイス、楽器等に翻弄されながら電脳の森をさまよう男の日常と様々な実験をさらりと記しております。

WordPressマルチサイトで全ブログから検索結果を表示する。

May 05 2011

WordPressも3.0以降から、複数ブログの管理機能が追加されまして
(Wordpress MUはこれ以降Wordpress本体に統合されました)
ブログ増やす度にデータベース作ってインストール。。。という
面倒な作業を行う必要がなくなりました。

とはいえ、けっこうマルチサイト化するまではめんどくさいんだけど。
マルチサイト化するための一番わかりやすい手順はこちら。

で、こいつを試すべく色々いじってみてたんですが
親ブログ1+子ブログ5みたいな構成で
たとえば、親ブログの検索結果に子ブログの物も含めたい、という場合
標準機能でこれは搭載されていない様子。

親ブログで検索してみても、その親ブログの内容のみしか表示されません。
たとえばこの機能でポータルサイト的な物を作る場合には
ちょっと困ったチャンな感じ。

「あ、そうかプラグインがあるか」と色々探してはみたものの
設定がクソめんどくさい(←この性格がそもそもダメなんだが)のと
貧弱な英語力が災いして、いまいちやる気が出ない。
(プラグインではMultisite Global Searchというのがあります。)
ただし、このプラグインはウィジェットでしか検索フォームを設置できず
ヘッダーの右上に検索フォームを持ってきたい人には若干めんどくさい。

よし、それならば日本語だ、と色々探し回って見たものの
特にこれ、といったものは見つからず(探し方も悪いかもだが)
英語サイトで「これは!」というものを見つけました。

WordPress 3.0 Multisite Search
http://cleverwp.com/wordpress-3-0-multisite-search/

こいつは各テーマに含まれている(なければ作る)search.phpに
以下のコードを追加するだけで、マルチサイトすべてからの検索結果を表示するもの。

<?php

$searchfor = get_search_query(); // Get the search query for display in a headline
?>
<h1>Search results for '<?php echo $searchfor; ?>'</h1>

<?php

$query_string=esc_attr($query_string); // Escaping search queries to eliminate potential MySQL-injections
$blogs = get_blog_list( 0,'all' );
foreach ( $blogs as $blog ):
switch_to_blog($blog&#91;'blog_id'&#93;);
$search = new WP_Query($query_string);
if ($search->found_posts>0) {
foreach ( $search->posts as $post ) {
setup_postdata($post);
$author_data = get_userdata(get_the_author_meta('ID'));
?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
&#60;p&#62;
&#60;span&#62;<?php the_time('Y/m/d') ?>&#60;/span&#62;
By <?php the_author_posts_link();?> &#60;/p&#62;
<h2>&#60;a href="<?php the_permalink(); ?>"&#62;<?php the_title(); ?></a></h2>
<div id="entry-content"><?php
the_excerpt();

?>
</div>
</div>

<?php

}

}
endforeach;
restore_current_blog(); // Reset settings to the current blog
?>

これで検索結果にマルチサイトすべてからのものが反映されます。

ま、いずれは管理画面からこの機能のオンオフを選べるようになる予感。

東電関連のニュースを見て

April 22 2011

テレビのニュース見てたら、謝罪に行った東電社長がボロカスに言われてる映像が。

すげえ違和感が。

そもそも今回の事故って「人災」?
勝手にドカーン!って原発が爆発したの?
そうじゃないだろうに。

地震・津波という天災によって連鎖的に起こった事故という事実を忘れて
なんでそこまでボロクソに言わなきゃならんのでしょう。

やりきれない気持ちを怒りに変えて東電にぶつけたくなるのもわかるけど
あの報道は、JR福知山線の事故時のJR社長と同じ扱いじゃないか。
全然フェアじゃないよ。

被災地のある一人のおっちゃん
「起こってしまった事はもう仕方ない。それよりこれからどうするかが重要。」
これならわかる。

「こ、子供達が全国バラバラになってるんですよ!わかりますか!」
若いお父さんよ、いや、それは違うだろう。
そこに原発がある、もしくは出来る事がわかってて住居構えたのはあなたでしょ。
「どこに住むか」の自由は与えられてたわけでしょ。

福島県知事もここぞとばかりに上から物いうてたけど
原発建設の時に地元で公共事業も発生したろうし、それと共に潤った事実もあるでしょ。

電気を作る方法がどうだとかそんな事の前に。

テクノロジーと共に心中する覚悟がないのなら
そして、それを正面から否定して生きる覚悟がないのなら
もっと人に対しての物の言い方があるんじゃないのか。

そもそも今回の発端は「天災」だ。
なにか根本的な部分を誰もかれも忘れてんじゃないのかな。

確かに現地から遠いから人ごとだろ、と言われても仕方ないけど
自分に置き換えてみたとしても、絶対にこんな的外れな事は言わん。

自分が生きている世界がどんなものなのかを直視する事も忘れて
弱い立場の人間を叩くようなマネなんて絶対にしたくない。

« May 2017 June 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30