Monthly Archives: 4月 2011

携帯ページにはGoogleモバイルサイトマップを

携帯電話向けページを作ったとき、通常のサイトマップでは通常のクロールになってしまうので、Googleモバイルサイトマップの形式でサイトマップを作成しましょう。そうすれば、Googleウェブマスターツールでサイトマップを登録した時に、型が「携帯電話」として登録されます。
urlsetタグにネームスペースを設定することとと、urlタグの中にを入れます。

<?xml version="1.0" encoding="UTF-8" ?>
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0">
    <url>
        <loc>http://mobile.example.com/article100.html</loc>
        <mobile:mobile/>
    </url>
</urlset>


もし、URLが引数つきで"&"を使っているのなら、"&"に変換するのを忘れずに。XMLとして弾かれます。
詳しくはこちら
http://www.google.com/support/webmasters/bin/answer.py?answer=34648

携帯向け周辺情報検索サイト”.Moyori”を作りました

携帯電話のGPSを使って位置情報を取得し、YahooのWebサービスを使って周辺のお店の情報を取得し、そこまでの距離をなんとなく計算するサイト「.Moyori」を作成しました。
今のところ、AUの携帯とiPadでは動作確認できております。また、ChromeやGoogleツールバーが入っているIEのような、PCブラウザで位置情報が取得できるものであれば動作します。
(他は持ってないのでしらん)
http://moyori.roadsterlabs.com/

iPadやChromeで端末位置情報を取得するにはJavaScript

iPadやChromeで端末位置情報を取るためには、Javascriptを使います。bodyタグのOnloadイベントでfirstcallを呼び出します。
IE7のようなブラウザーでは位置情報を取るための機能がないので、Navigator.geolocationオブジェクトの存在有無の判定をしてから、getCurrentPositionを呼び出すことになります。getCurrentPositionで取得ができると、secondcallファンクションが呼び出されます。

<script type="text/javascript">
function secondcall(position){
	alert(position.coords.latitude + ',' + position.coords.longitude);
}
function firstcall(){
	if (!!navigator.geolocation) {
		navigator.geolocation.getCurrentPosition(secondcall);
	}
}
</script>

WordPressで階層のある会員サイトを作るプラグイン2つ

組織階層会員制度を作るためのプラグインは多々紹介されておりますが、通常会員・シルバー会員・ゴールド会員のように階層を設け、通常会員はシルバー会員のコンテンツが見れない、シルバー会員はゴールド会員のコンテンツが見れない、というように階層化された会員制サイトを作るために利用したプラグインを紹介します。

User Role Editor
http://www.shinephp.com/user-role-editor-wordpress-plugin/
ブログのユーザーロールを作成、編集するためのプラグイン。これを使って「通常」「シルバー」「ゴールド」のユーザーロールを作ります。

User Access Manager
http://www.gm-alex.de/projects/wordpress/plugins/user-access-manager/
User Role Editorで作成したユーザーロールに、コンテンツを結び付けるためのプラグイン。これを導入するとページ作成や投稿時に”Access”が選べるようになり、どの階層に見せるかを設定できるようになります。

以下、設定方法としては次の通り。
1.ユーザー・メニューの”User Role Editor”で、”NormalRole”、”SilverRole”、”GoldRole”の3ロールを作成する。
2.一般設定の「メンバーシップ:だれでもユーザー登録ができるようにする」をチェック。また、新規ユーザーのデフォルト権限グループを、1で作成した「通常」に設定する。
3.User Access Managerのメニュー”UAM”のManage user user groupで、ユーザーグループ「通常」「シルバー」「ゴールド」を設定。Role Affiliationの項目で、1で作成したユーザーロールとの関連を定義する。階層化するのであれば、「ゴールド」のグループには”GoldRole”、「シルバー」のグループには”GoldRole”と”SilverRole”、「通常」のグループには”GoldRole”と”SilverRole”,”NormalRole”が所属して閲覧できるように設定を行う。階層化しないのであれば、それぞれ1:1の関係で設定すればよい。
以上。

ページのタイトルだけは一般公開するとか、タイトル自体も隠してしまうとか、隠す方法はUAMの”Settings”メニューから設定が可能。
また、会員サイトらしく、次のようなプラグインを入れて体裁を整えるとよい。
Cimy User Extra Fields
http://www.marcocimmino.net/cimy-wordpress-plugins/cimy-user-extra-fields/
ユーザー登録の際に追加フィールドを作ることができるプラグイン。
Sidebar Login
http://wordpress.org/extend/plugins/sidebar-login/
サイドバーからログインするためのプラグイン。ウィジェットができる。

WordPressでプラグイン、テーマを管理画面からインストールできない

サーバーが腐っていると、WordPress自体のインストールはうまくいくがテーマやプラグインを管理画面からダウンロードしてインストールできない、ということがあるので、対処方法をメモ代わりに記載しておく。

1、できる場合はPHPのセーフモードを解除
コントロールパネルがPleskだったりするとPHPセーフモードを解除できるので、それをするのが簡単。
2、wp-config.phpに次の2行を追記

define('FS_METHOD','direct');
define ('WP_TEMP_DIR', '/(hoge)/tmp/');

1行目はFTPを使わずにファイル処理をするための記述、2行目はデフォルト作業用フォルダの権限づけが残念なことになっているので、自分で手作業でフォルダを作成し、それを作業用フォルダとして使うように設定するための記述。
2行目の’/(hoge)/tmp/’の部分は、任意の場所に”tmp”というフォルダを作り、そこへのパスを記述する。”(hoge)”の部分はサーバーによって異なる。