Home > Tags > WordPress

WordPress

WordPress2.3.2でも動くようにmobile gateを改造してみた

WordPressに携帯電話から投稿する方法について色々検索していたのですが、標準のwp-mail.phpは少なくともauからメールを送信すると文字化けをするので使えないと判断。

日本人の方が製作をしたツールをいくつか発見しましたが、「SOMY Mobile Gate ベータv0.15」を使うことにしました。

どのソフトも基本的にケータイからメールを送信してWordPressに投稿するという作りなのですが、SOMY Mobile Gateはそのメールを生成するフォームを持っていたのが楽で気に入りました。

しかし、WordPress2.3.2にインストールしたところ、カテゴリの選択がうまく機能していませんでした。

そのほか、いくつか修正した項目があるので、それぞれ見出しをつけてまとめてみました。

カテゴリの修正

module/ez-mail.php

37行目

変更前

function EZMail_Get_CategoryList() {
	global $tablecategories,$wpdb;
	return $wpdb->get_results("SELECT cat_ID,cat_name,category_nicename FROM $tablecategories");

}

変更後

function EZMail_Get_CategoryList() {
    return get_terms('category',"get=all");
}

42行目

変更前

function EZMail_Get_CategoryName($category_ID) {
	global $tablecategories,$wpdb;

	if($category_ID == 'multi_set')
		return "複数カテゴリ設定";
	return $wpdb->get_var("SELECT cat_name FROM $tablecategories WHERE cat_ID = $category_ID");
}

変更後

function EZMail_Get_CategoryName($category_ID) {
	if($category_ID == 'multi_set')
		return "複数カテゴリ設定";
	$term = get_term($category_ID, 'category');
	if($term)
		return $term->name;
	else
		return "";
}

56行目
変更前

		$Category_STR .= "\t\t\t\t<option value=\"$category->cat_ID\">$category->cat_name</option>\n";

変更後

		$Category_STR .= "\t\t\t\t<option value=\"$category->term_id\">$category->name</option^gt;\n";

107行目
変更前

		$Category_STR .= "<input type=\"checkbox\" name=\"multicate_$category->cat_ID\" value=\"$category->cat_ID\"><font size=\"1\">$category->cat_name</font><br />\n";

変更後

		$Category_STR .= "<input type=\"checkbox\" name=\"multicate_$category->term_id\" value=\"$category->term_id\"><font size=\"1\">$category->name</font><br />\n";

あと、上記56行目変更付近で、個人的に以下の変更も加えました。
カテゴリ選択時の一番上にデフォルト(設定画面で指定したカテゴリ)と、複数カテゴリを持ってきました。

変更前

	$categories = EZMail_Get_CategoryList();
	foreach ($categories as $category) {
		$Category_STR .= "\t\t\t\t<option value=\"$category->cat_ID\">$category->cat_name</option>\n";
	}
	$Category_STR .= "\t\t\t\t<option value=multi>■複数カテゴリ■</option>\n";

変更後

	$categories = EZMail_Get_CategoryList();
	$Category_STR .= "\t\t\t\t<option value=\"\">(デフォルト)</option>\n";
	$Category_STR .= "\t\t\t\t<option value=multi>■複数カテゴリ■</option>\n";
	foreach ($categories as $category) {
		$Category_STR .= "\t\t\t\t<option value=\"$category->term_id\">$category->name</option>\n";
	}

module/wp-mail.php

450行目

変更前

function get_category_id_by_cat_name($cat_name) {
	global $tablecategories, $wpdb;
	return $wpdb->get_var("SELECT cat_ID FROM $tablecategories WHERE cat_name = '$cat_name'");
}

変更後

function get_category_id_by_cat_name($cat_name) {
    return get_cat_ID($cat_name);
}

ログイン画面でユーザー名が表示されない件の修正

最初の画面で「ようこそ さん」みたいに表示されていませんか?
あまり実害は無いようでしたが、一応修正してみました。

module/login.php

72行目

変更前

function Login_Get_UserName($UserID) {
	$UserData = Login_Get_UserData($UserID);
	$UserDisplayMode = 'user_'.$UserData->user_idmode;
	return $UserData->$UserDisplayMode;

}

変更後

function Login_Get_UserName($UserID) {
	$UserData = Login_Get_UserData($UserID);
	return $UserData->display_name;
}

投稿時に文字化けするので修正

xampp環境だと問題ないのですが、さくらインターネット環境だとどうも文字化けするんで、mb_convert_encoding()に元文字コードを明示的に設定してみたら治りました。

wp-mail.php

123行目

変更前

	$subject = htmlspecialchars(mb_convert_encoding($subject, get_settings('blog_charset'), "auto"));

変更後

	$subject = htmlspecialchars(mb_convert_encoding($subject, get_option('blog_charset'), "JIS"));

171行目

変更前

	$content = mb_convert_encoding($content, get_settings('blog_charset'), "auto");

変更後

	$content = mb_convert_encoding($content, get_option('blog_charset'), "JIS");

ImageMagickのパス変更

ImageMagickのパスがソースに直で書かれていて機能していなかったので修正しておきました。
これでサムネイルもばっちり作成されます。

ちなみに、さくらインターネットでのパスです。

wp-mail.php
578行目

変更前

		$reimg_out = "/usr/X11R6/bin/convert -geometry " . $img_width . "x" . $img_height . " $img_path $reimg_thumb_path";

変更後

		$reimg_out = "/usr/local/bin/convert -geometry " . $img_width . "x" . $img_height . " $img_path $reimg_thumb_path";

というわけで、ソースコード自体結構古いので、あちこち手を加えましたが、全体的にもう少しスッキリさせたい気がしています。
なので、先日少しBlogにも書きましたが、WordPress2.3以降に向けたモバイル投稿用のスクリプトを組んでみたいと思います。

少しずつ作っていくのでいつになるか分かりませんが、遅くとも今月中に形に出来たらいいなぁって感じです。

[2/2] «

Home > Tags > WordPress

その他諸々

あわせて読みたい

  • 個人的リンク集
  • mixi
  • twitter
  • track feed
  • ページランク

Return to page top