Home > memo

memo Archive

WordPress 2 から投稿テスト

iPhoneアプリのWordPress(とゆー名前のアプリ)を使って更新するテスト

Twitter Feed を試してみる。

Twitter Feed は、 Twitter のアカウントに RSS 情報を定期的に出力してくれるサービス、のようです。調べ物のついでにこのサービスを知ったので、ちょっとテストをしています。

このエントリーはその新規投稿の確認エントリーです。WordPress の予約投稿で、2009年1月12日19:00 に投稿されるように設定して、いつ Twitter Feed から反映されるか、を確認してみたいと思います。

勉強会で Dropbox を検証

先日から利用している Dropbox について、定例の勉強会で検証してみました。

詳しい結果は朔工房篠原さんが書いてくれてるので、そっちを参照してもらうとして、とりあえず信用できない人の公開用URLはクリックすると危険。というのだけはわかったので、注意喚起するだけにしときます。

検証用のtest.htm は、alert と document.write だけだけど、アクセスしてこれが機能するということは、悪意あるユーザの公開URLをクリックしてしまうことでやりたい放題されてしまう危険性があるということ。拡張子によって判断されているようなので、.htm や .html に気をつけるだけでも違うと思うけど、TinyURL なんかで短縮されたりしてると、かわしきれない可能性も否定できないですよね。

機能的にも処理的にも大変すばらしいサービスだけに、悪用や悪戯に対する対策も今後検討してもらいたいですね。

これから EeePC などUMPCを買おうと検討している方へ。ちょっと一考してからにしない?

  • 2008-07-14 (月)
  • memo

小型のノートパソコン(UMPCとか)が花盛りですね。アスースや工人舎などの小さいノートが売り場でも盛んに販売されているようです。

そんな中、旧モデルの EeePC が 100円で買えるという記事があり、新モデルも安く買える、ということでしたが、実際に売り場に行っていろいろ見てきたところ、悲しい現実を発見してしまいました。

正直なところ、このことについておおぴっらに語られている情報が目立たなすぎて、多くの人が気がついていないのではないか、と思い、自分の計算方法が間違っているのかも、という一抹の不安がぬぐえないのですが、そこはそれ、間違ってたらごめんね、ということでお願いします。


さて、この100円で買えちゃうEeePCですが、ざっと調べたところ、ヨドバシカメラ、ビックカメラ、ソフマップ、ヤマダ電機など、主要量販店では一律してこの価格のようです。100円でノートパソコンが買えるんですから、ずいぶんいい時代になりましたね。私が初めて買ったパソコンは富士通のFM-TOWNSで、プリンタ込み70万円くらいしましたが。。。。
なんてことはともかく、この100円販売は、イーモバイルのスーパーライトデータプランにねんMAXとのセット販売です。

曲者はこのセット販売です。

100円で買えるほうのEeePCは、旧モデルで、4GB版のやつです。オープン価格ですが、49,800円が実売価格とされています。これに前述のイーモバイルを組み合わせると、2年間の支出は、本体価格(100円)+事務手数料(2,835)+2年間の通信費(最低2,900円から最大6,880円×24ヶ月)=最低72,535円から最高168,055円かかります。これは通信量に左右されるわけですが、インターネット端末として利用する場合に、最低ライン(無料通信1,000円分)ってことはないのではないでしょうか。さらに、このイーモバイルのプランは解約すると2年間の最低利用料(2900円×残月数)を払わないといけないので、うかつに解約できません。


続いて新しいほうの EeePC ですが、これも同じく各量販店で一律してイーモバイルとのセットで14,980円のようです。本体価格はオープン価格ですが、59,800円が実売価格なので、それでもすごく安く感じます。
というわけで、同様に計算してみましょう。本体価格(14,980円)+事務手数料(2,835)+2年間の通信費(最低2,900円から最大6,880円×24ヶ月)=最低87,415円から最高182,935円かかります。さすがに新しい分だけ、旧モデルと同じ、というわけにはいきませんね。


さて、ではここで、ヨドバシカメラが提携している、マクドナルドなどで使える無線LANサービス、ワイヤレスゲートに登場していただきましょう。

ワイヤレスゲートは、通常会員の場合、月額210円+利用日1日につき299円(要はフルで使うと9,180円/月。以前は2,500円の定額サービスがあったようですが現在はサイトで確認できません。)のサービスですが、ヨドバシカメラについては、オリジナルプランがあり、これだと月額380円で使い放題です。当初二ヶ月だけがそうなのかと思いましたが、そういうわけではないようです。ちょっとぐぐってみても、首都圏にいて、マクドナルドで全然おっけーな人にとっては、なんら問題のない環境のようです。

じゃあ同じように計算してみましょう。どうやらヨドバシのオリジナルプランには事務手数料はかからないようです。本体価格(59,800円)+2年間の通信費(380円×24ヶ月)=68,920円になりました。


。。。いかがでしょうか。
ヨドバシカメラ新宿西口では、ワイヤレスゲートの告知はパンフレットが置いてあるだけで、イーモバイルの販売員と思しき人たちが熱心にイーモバイルとのセットプランを勧めていました。
このプラン差に気がついて、店員さんに確認したところ、あっさり事実を認められ、つまりイーモバイルとのセット販売は、パソコンの割引サービスではなく、今安くパソコンが欲しい人向けのローンのようなもの、という回答をいただきました。

事実、今時点で約6万円はすぐ出なくても、2万円くらいならだせる、2年間かけて分割払いすると思えば別に関係ない、と思えば、182,935円払ってもさほど気にならないのでしょう。
もちろん、ダイアルアップ接続のイーモバイルと固定のポイントを必要とするワイヤレスゲートでは利便性に差がでますが、普通に2年使っても68,920円で済むことを考えると、これはちょっと、と思わざるを得ないと思うのは私だけでしょうか。


この情報は、2008年7月14日現在、対象のアスースEeePC901の発売から3日目の月曜日に書かれています。
言うほど各プランに精通しているわけでも、実際に購入しているわけでもありませんので、情報の正確さに問題があるかもしれません。
引用はご自由にしていただいて結構ですが、再計算はご自身で行い、より正確な情報になるようご留意ください。なお、もし私の計算ミスや考えの間違いに気がついた場合、コメントやお問い合わせ等で教えていただけると助かります。
普段から自分の思考や経験に基づいた記事を書くように心がけていますが、正確無比であるとはお世辞にも言えませんので、より正しい情報でもって訂正していただければ幸いです。

wp-contact-form-7 に簡単に定数(っぽいもの)をつける方法のメモ

WordPress 2.5 でも使えるコンタクトフォームプラグインは数多くありますが、当サイトでは、Contact Form 7 Plugin を使わせていただくことにしました。

比較的わかりやすい設定ですし、デフォルトでもそこそこ使えるので重宝しているわけですが、どうしてもメール本文中に、送信日時や、送信者のUA情報などを含めたいと考えました。しかし、上記ページ中のコメント欄にあるとおり、デフォルトの機能の中にはそういった機能はついていません。

というわけで、ちょっとだけいじってみたところ、とりあえずうまくいったので公開してみます。あくまでこのプラグインを使いつつ、どうしても利用者情報が欲しいという場合の応急処置であること、利用に関しては自己責任、ということでお願いします。また、この情報は2008年4月20日現在の最新版である、7.1.7.7 を対象にしています。

    function mail_callback($matches) {
        if (isset($_POST[$matches[1]])) {
            $submitted = $_POST[$matches[1]];
            if (is_array($submitted))
                $submitted = join(', ', $submitted);
            return stripslashes($submitted);
        } else {
            return $matches[0];
        }
    }

wp-contact-form-7.php の160行目付近の上記 function を、下記のように修正します。

    function mail_callback($matches) {
        if (isset($_POST[$matches[1]])) {
            $submitted = $_POST[$matches[1]];
            if (is_array($submitted))
                $submitted = join(', ', $submitted);
            return stripslashes($submitted);
        } else {
// メール送信時に定数(っぽいもの)を追加
            if ( $matches[1] === 'WPCF7_SEND_DATE'){return date("Y/m/d G:i:s T");}
            if ( $matches[1] === 'WPCF7_SEND_UA')  {return $_SERVER['HTTP_USER_AGENT'];}
            if ( $matches[1] === 'WPCF7_SEND_HOST'){return $_SERVER["REMOTE_HOST"] ? $_SERVER["REMOTE_HOST"] : $_SERVER["REMOTE_ADDR"];}
            return $matches[0];
        }
    }

これにより、管理画面でメールのメッセージ本文のテキストエリアに、[WPCF7_SEND_DATE]、[WPCF7_SEND_UA]、[WPCF7_SEND_HOST]を加えることで、メールの本文中にそれぞれ、送信日時、ユーザーエージェント(ブラウザ)、送信元ホスト情報(サーバ名かIPアドレス)を出力することが可能になります。実際にはUSER_AGENTの出力には少し気を使ったほうがいいはずですが、お問い合わせという性質上、とりあえずこれで問題ないと思います(基本的に受け取るのは自分だけでしょ?)。もしセキュリティ的にこうしたほうが安全だ、というのがあれば教えていただけたら幸いです。

作者の方には特にコンタクトしないままいじってしまったのですが、とりあえず勝手処理、ということで。くれぐれもこの修正で生じた問題などで作者の方にご迷惑をおかけしないようにお願いします。

注意(よく読んでください)

  • 本当に、作者の方に迷惑かけるのだけは止めてください。
  • 自分の作業メモなので、これについてのサポートは勘弁してください。
  • メッセージ本文でしかテストしていませんw タイトル欄やメールアドレスのところにこれらを設定することはないと思いますが、もし設定して何かよくないことが発生しても自己責任でお願いします(たぶんメールが送れないとかそういう目にあいます)。
  • 定数名の WPCF7 部分を、適宜書き換えて使ってください。単にメール送信直前の処理で、値を置き換えているに過ぎません。もしハッキング目的でコレを悪用しようと思えば、例えば POST データに対して、この定数名でデータを送り込まれた場合、そのデータが優先されてしまいます(一応処理速度と自己設定優先で後ろに置いているので)。この意味がわからない場合は、この修正を行わないほうが無難です。

ついでだから利用者情報を取得したい主な理由とか書いておこうかな(コメント6093へのレスじゃないけどw)

  • 入力されたメッセージ以外にも、情報を整形してコピーを送信者に返す場合に、送信日時は必要
  • 受信したメールを元にやり取りを始める場合、受け取るメーラの種類によっては返信時に元の投稿日時を引き継がないものがある(なので日時が入ってると便利)
  • UA情報を追加することで、単なる閲覧利用者ではなく、問い合わせをしてくれる利用者のUAの傾向を把握しやすくなる。それによりサイトのデザインやそのチェックの方向性を定めやすくなる
  • 送信元ホスト情報は(たとえ気休めでも)セキュリティ向上に一役買う。また、いざという時に、IP-BANしやすくなる。
  • まぁ、ぶっちゃけ友人に問い合わせのメールにそういうデータ入れたいんだけど、って言われちゃっただけなんだけどねw

function.php で widget の出力内容を変更するメモ

WordPress 2.5 のデフォルトテーマなどに含まれている function.php はサイドバーの名称が数字で表される上に、なぜか全体を <li> で囲むという仕様になっています。(これはもちろん、sidebar.php が widget 全体を <ul> で囲っているからだが。)別にそれがダメだと言い切るつもりはないけど、イマイチ気持ち悪い感は否めないんです。

if ( function_exists('register_sidebar') )
    register_sidebar(array(
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
        'after_widget' => '</li>',
        'before_title' => '<h2 class="widgettitle">',
        'after_title' => '</h2>',
    ));
}

そこでこの <li> を外して <div> に変更してみました。ついでにCSSで処理しやすいように内側に <div> を追加し(ソコdiv厨とか言わないw)さらにきれいに改行して見栄えもよくしてみました(注:2008年4月16日現在の当サイトでは使っていません。別のサイトで採用しています)。

if ( function_exists('register_sidebar') ){
    register_sidebar(array(
        'name' => 'sidebar1',
        'before_widget' => "\\n<div id=\"%1\$s\" class=\"widget %2\$s\">\\n<div class=\"widget-inner\">\\n",
        'after_widget' => "\\n</div>\\n</div>\\n",
    ));
}

参考になるのは次の点

before(after)_title の記述は削除
デフォルトと同じ記述だったら不要なので。もちろん class 名を変更したい場合にはつければOK。
name で名前をつけた
管理画面で表示されます。複数のサイドバーをセットする際に管理しやすいです。
before(after)_widget への代入を”(ダブルクォーテーション)にする
\n(改行のしるし)を活かせるので、出力結果をきれいにフォーマットできます。ただし、中に含まれる”をエスケープする必要があります。
閉じ忘れない
内部的に div を増やしたので閉じ忘れないこと。MT でのCSS作成に慣れた人には、inner class は使い勝手がよいと思います。これの最大のメリットは、最近流行りのビッグフッターをウィジェットで作成するときのコントロールのしやすさだと思うので(横に並べてマージンをとったり、背景画像で装飾したりしやすくなる)。

WP に限らずテンプレートシステムからのアウトプットは汚くなりがち。ソース上の見栄えがちょっとでもきれいになって、それをうれしい、と思う人の参考になれば幸いです。

ホーム > memo

Search
Feeds
Meta


Return to page top