だらだらやるよ。

こげつのIT技術メモ

wordpressを触ってみた。

ちょいとサイトを作ってみようかなと思って設置することに
http://sourceforge.jp/projects/wordpress/files/
ここから最新版をダウンロードして、インストール
webアプリの定番で、権限まわりで微妙に躓くも概ね問題なく設置完了

今回は携帯からの投稿と閲覧がやりたかったので

をインストールしました
Mobile Eye+は特に設定を変えずにそのまま使用できたのですが、wpmobExpressが複数の投稿者の利用に対応してなかったので
コードをちょっと変更
wp-includes/pluggable.phpに以下の関数を追加
メールアドレスからユーザーデータを引いてきます。

if ( !function_exists('get_userdatabyemail') ) :
function get_userdatabyemail($user_email) {
	global $wpdb;
	$user_email = sanitize_user( $user_email );

	if ( empty( $user_email ) )
		return false;

	$user_id = wp_cache_get($user_email, 'useremails');
	$userdata = wp_cache_get($user_id, 'users');

	if ( $userdata )
		return $userdata;

	$user_email = $wpdb->escape($user_email);

	if ( !$user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE user_email = '$user_email'") )
		return false;

	$wpdb->hide_errors();
	$metavalues = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->usermeta WHERE user_id = '$user->ID'");
	$wpdb->show_errors();

	if ($metavalues) {
		foreach ( $metavalues as $meta ) {
			$value = maybe_unserialize($meta->meta_value);
			$user->{$meta->meta_key} = $value;

			// We need to set user_level from meta, not row
			if ( $wpdb->prefix . 'user_level' == $meta->meta_key )
				$user->user_level = $meta->meta_value;
		}
	}

	// For backwards compat.
	if ( isset($user->first_name) )
		$user->user_firstname = $user->first_name;
	if ( isset($user->last_name) )
		$user->user_lastname = $user->last_name;
	if ( isset($user->description) )
		$user->user_description = $user->description;

	wp_cache_add($user->ID, $user, 'users');
	wp_cache_add($user->user_email, $user->ID, 'useremails');
	return $user;
}
endif;

で、wp-content/plugins/wpmobXp/wpmobXp.phpの355行目をこんな感じに

$user = get_userdatabyemail($from);

ユーザを登録する際に携帯のアドレスで登録しないといけないのはちょいとあれですが
とりあえずはこれで問題ないかな、と