月別アーカイブ: 2011年7月

メモ:update_blog_option関数を使っているとwp_redirect関数が動かなくなって固まっちゃうのを無理やり直した

update_blog_option関数がプラグインなどによって動いていると、wp_redirect関数が動かなくなります。

Warning: Cannot modify header information - headers already sent by (output started at /var/www/wp-includes/functions.php:3468) in /var/www/wp-includes/pluggable.php on line 934 というエラーが出ます。

update_blog_option関数は、Depricated(非推奨?)の関数なので、そのエラーメッセージを出すのですが、wp_redirectではheader(location)を使っていて、エラーメッセージが先行してしまう為です。

なので、wp-includes/ms-blogs.phpのなかの、422行目から始まるupdate_blog_option()の一部をコメントアウトした。

function update_blog_option( $id, $key, $value, $deprecated = null ) {
	$id = (int) $id;

/*
	if ( null !== $deprecated  )
		_deprecated_argument( __FUNCTION__, '3.1' );
*/

	switch_to_blog($id);
	update_option( $key, $value );
	restore_current_blog();

	refresh_blog_details( $id );

	wp_cache_set( $id . '-' . $key . '-blog_option', $value, 'site-options');
}

子ブログユーザが親ブログでログインした場合に、子ブログに転送するプラグイン。

需要があるのかどうかよく分からないシリーズです><

親ブログにログインフォームを設置してあると思います。
子ブログのユーザがログインすると、


“親ブログ名”のダッシュボードに行こうとしたけど行けないよ。
以下が、あなたが属するブログのダッシュボードとブログだよ。
クリックしてくださいね。
「所属サイトのリスト表示」

となります。

マルチサイトを、全く別のサイトの管理のために使っている場合には便利でしょうが、ホスティング系のサービスの場合には不便です。

そこで、ログインしたユーザの属するサイトのURL(ここではブログ。)に転送してしまうプラグインです。

インストール

下記のソースを使うか、テーマのfunctions.phpに関数部分のみを貼りつけるかお願いします。

ソース

ログインしたユーザが所属するサイトのURLを取得して、jsで転送しています。
転送しない時のメッセージも簡単ですが出しました。

2つ以上のブログに登録されている場合には、今まで通りの表示にします。

<?php 
/*
Plugin Name: child_blog_users_redirect
Plugin URI: http://nskw-style.com/2011/wordpress/plugin-downloads/child_blog_users_redirect.html ‎
Description: 親ブログで子ブログユーザがログインした場合に、所属する子ブログに転送する。
Version: 1.0
Author: Shinichi Nishikawa
*/

function child_blog_users_redirect() {
		if ( ! is_user_logged_in() || is_network_admin() )
		return;

	$blogs = get_blogs_of_user( get_current_user_id() );

	if ( wp_list_filter( $blogs, array( 'userblog_id' => get_current_blog_id() ) ) )
		return;
		
	foreach ( $blogs as $blog ) {
		$site_urls[] = $blog->siteurl;
	}
	
	$first_site_url = $site_urls[0];

	if ( $site_urls[1] ) { //このユーザが2個以上ブログを持っている場合は、今まで通りで。
		return;
	} else {
?>
		<script language="JavaScript">
		<!--
		location.href="<?php echo $first_site_url; ?>";
		//-->
		</script>  
		
		<p>ブログへ転送しています。</p>
		<p>転送されない場合には、<a href="<?php echo esc_url($first_site_url); ?>"><?php echo esc_url($first_site_url); ?>をクリックしてください。</a></p>

<?php
		die();
	}
}
add_action( 'admin_page_access_denied', 'child_blog_users_redirect', 98 );
?>

ユーザ登録の有効化メールが送られる仕組みを調べました。

WordPressでどのようにして自動返信メールなどが送られるのかを調べました。

自動返信メールや有効化メールをカスタマイズする必要があったため、WordPressがどのようにメールを送信しているのかを調べました。

今回は、エンドユーザーがマルチサイト(ネットワーク)でユーザ登録(ブログ作成ではなく)をした時に動いている2つの関連する関数について調べました。

関数が書かれているファイルは、wp-includes/ms-functions.phpです。

wpmu_signup_user($user, $user_email, $meta = ”)

wp-signup.phpの中で、ユーザ登録時に使われる関数です。

具体的には、

  • ユーザが入力した情報を実際にデータベースに入力すること
  • ユーザのメールアドレス宛に、有効化メールを送信する

という2つの仕事をしています。
続きを読む

「コクリコ坂から」の挿入歌「紺色のうねり」の歌詞。311、原案の宮沢賢治、偶然。

「コクリコ坂から」を観にいって見事にハマってしまいました。

挿入歌のひとつに「紺色のうねりが」があります。


紺色のうねりが 飲みつくす日が来ても
水平線に 君はぼっするなかれ

我らは 山岳の峰々となり
未来から吹く 風に頭をあげよ

紺色のうねりが 飲みつくす日が来ても
水平線に 君はぼっするなかれ

という歌詞です。
曲は、校歌とか寮歌みたいな感じの古い合唱曲の雰囲気です。

映画は1963年の設定で、そういう日が来ても、「君は」「我らは」という祈りみたいなものが含められていると思うと、すごい曲だなと思いました。

収録は、311より以前に行われたという話もありますが、ちゃんとした出典は見つけられませんでした。偶然でしょうか。

調べると、作詞は宮崎駿/宮崎吾朗、原案は宮沢賢治だそうです。
上掲の一番の部分は、宮崎駿だそうです。

原案となった詩は、「生徒諸君に寄せる」というもので、母校の冊子への寄稿文として書かれたもの(未完、未掲載。戦後、再構成後、『朝日評論』という雑誌に掲載された)。

宮沢賢治の出生年は、1896年で明治三陸地震(wikipedia)の年、没年は1933年で昭和三陸地震(昭和三陸地震)の年。


生徒諸君に寄せるの一部

諸君よ
紺いろの地平線が膨らみ高まるときに
諸君はその中に没することを欲するか
じつに諸君は此の地平線に於ける
あらゆる形の山嶽でなければならぬ

立教新座高等学校の校長先生のメッセージ

全く関係ないですが、立教新座高等学校の校長先生の「卒業式を中止した立教新座高校3年生諸君へ。」という文章を思い出しました。こちらも以前話題になっていましたが、ぜひ。

関連の品々

↓僕は、CD買ってしまいました。

コクリコ坂から サウンドトラック コクリコ坂から サウンドトラック
レビューを見る
欲しいものリストに追加
価格:2149円 在庫あり。powered by Amazon.co.jp

↓手嶌葵の歌をゆっくり聞きたい方向け。

スタジオジブリ・プロデュース「コクリコ坂から歌集」 スタジオジブリ・プロデュース「コクリコ坂から歌集」
レビューを見る
欲しいものリストに追加
価格:2064円 在庫あり。powered by Amazon.co.jp

↓映画のBlue-Ray。DVDもあります。

コクリコ坂から 横浜特別版 (初回限定) [Blu-ray] コクリコ坂から 横浜特別版 (初回限定) [Blu-ray]
レビューを見る
欲しいものリストに追加
価格:5500円 在庫あり。powered by Amazon.co.jp

↓全然違うらしいですが、漫画の原作。

コクリコ坂から (単行本コミックス) コクリコ坂から (単行本コミックス)
レビューを見る
欲しいものリストに追加
価格:924円 在庫あり。powered by Amazon.co.jp

↓確執と呼んでもいいんじゃないかというほど激しい宮崎親子の対決込みのドキュメンタリー。NHKが作ったものです。Blu-rayとDVDがあります。

NHK ふたり/コクリコ坂・父と子の300日戦争~宮崎 駿×宮崎吾朗~ [Blu-ray] NHK ふたり/コクリコ坂・父と子の300日戦争~宮崎 駿×宮崎吾朗~ [Blu-ray]
レビューを見る
欲しいものリストに追加
価格:3767円 在庫あり。powered by Amazon.co.jp

レンタルも始まっているようです。

気にいった人はポイントください!

公開したプラグインのセキュリティについて指摘をしてもらったので、直したときに勉強したことのメモ。

先日公開したプラグイン(Direct Register WPMU)について、セキュリティが心配だったので、チェックをお願いしたところ、見てくれました!

さらに、コメント欄でも、

なかなか興味深いプラグインなのですが、細かい点で問題があるようです。

* 「管理画面」の URL は get_admin_url() で取得してください。使い方は link-template.php 参照で。
* network_home_url() の出力も esc_attr() してから echo した方が無難だと思います。
* __() の中に日本語 (ローカライズ文字列) を入れるのはほとんど意味がありません (将来的言語リソースとして分離する予定なのでしょうが)。
* $_GET, $_POST が生で使われている部分が気になりますがこれは値を渡す先の add_signup_meta() の処理がどうなっているかに依存しますね。intval() などでバリデートした方が無難でしょう。

以上、コードを精査されることをおすすめします。

と教えてもらうことが出来ました。ありがとうございます。

以下、勉強したことなどのメモです。
続きを読む