In writing

2012.10.29 追記:もう1個追加しました。

プラグインの導入時に気をつけなければならないのは、環境によってはパーミッションが755になったり、所有者の設定が nobody になったりしてうまく動作しない場合があります。ありました。

  • プラグインとその下層フォルダ(css, csv)は 777 にした方がいい。(プラグインフォルダは755でも良いのかも)
  • css フォルダ内に生成されるフォームごとの CSS は、自分で書き換え権限があったほうが、管理画面以外からでも編集できる。

プラグインのインストールについては割愛します。ダウンロードは下記から。

WordPress > Trust Form ≪ WordPress Plugins
参考:Trust Form-1.2を公開しました | カクニンプラスのweb日誌

元々カスタマイズを前提に作られているもののようなのですが、クラス拡張とか下手くそなので元のソースを弄ったりしています。(でも Advanced Field の使い方がわからない。これも拡張用かな?)
ご利用は計画的に、自己責任でお願いします。

1. checkbox と radio には label をつけて、radio は選択させときたいな!

元の trust-form.php を弄ります。
ユーザビリティ的には必須だと思っているので、まず第一に修正しました。1990行目のあたりかな。
checkbox と radio の出力の際、<label> ~ </label>で囲みました。

それと、radio については何も選択がない場合に一番最初の項目を選択済みに。foreach で 0 番目の項目だった場合にチェックする、という条件を入れました。これは好みというか、TPOに応じていれてください。

そうすると、こんなソースになります。

こうすると、label にスタイルを効かせることができるので、わかりやすい装飾が可能になります。

2. エラーがあった時にメッセージを表示させたい

エラーメッセージを項目ごとにしか取得できない(私が見落としているだけかも)ようなので、function を追加して使えるようにしました。

trust-form.php の1795行目辺りに下記を追加。

これをどういう時に使うかというと、trust-form-tpl-[ID].php の trust_form_show_input() 内で、

というメッセージを表示させることができます。日本語そのまま使うときは、UTF-8で保存してくださいね。

3. サブメッセージを入力欄の下に表示させたい

trust-form-tpl-[ID].php の trust_form_show_input() 内で、$html が制御しているので入れ替えてあげれば良いです。ついでに、必須項目の th にも require クラス入れたかったので、下記のようになりました。

4. URLが同じになってしまうのでパラメータを付ける

アクセス解析の際にはページ名が同じだと解析しにくいので、form の action にパラメータをつけてあげましょう。
trust-form-tpl-[ID].php を編集します。

trust_form_show_input() の form タグの

これを

とします。#trust-form はフォームを入力して次の画面に遷移した際、ページ内リンクが有効になるのであっても取っても可。

もうひとつは、trust_form_show_confirm() の form タグの

これを

とします。#trust-form については上記同様。

これで、
入力画面は 固定ページのURL となり、
確認画面は 固定ページのURL?confirm となり、
完了画面は 固定ページのURL?finish となります。

5. 郵便番号を入力したら住所を自動取得したい

郵便番号からの住所取得もできます。そう、ajaxzip3 ならね。

ajaxzip3 – 郵便番号検索API, JSONP対応 これで郵便番号のメンテナンス作業から解放されます。 – Google Project Hosting

本来は head タグ内に読み込むものなのですが、固定ページのコンテンツ内でも動きました。(とりあえず確認したのはchromeのみ)

1) 固定ページ内で、Trust Form のショートコードの前に下記のように javascript を読み込みます。

フォームがSSLになる場合はこっち↓

2) 郵便番号の項目を設定して、class に zip と入れて、その下に住所の入力項目を設定します。

3) 別途読み込んだ(※) js ファイルに下記を追加。

※別で jQuery を使ってゴニョゴニョしていることもあるので、

としてオリジナルの js ファイルを読み込んでおくと色々追加できるのでオススメです。

これで半角数字で郵便番号を入れると、住所が表示されます。ハイフンのあるなし関係ないので、結構キモチイイ。

6. 共通スタイルシートを読みこませる

Trust Form を使う際には各フォームごとの CSS が生成されるのですが、それを消しちゃって共通のスタイルを読み込ませたい場合の対処方法です。フォームのスタイルを統一しているので、増えると管理が面倒なんですよね…。trust-form.php の940行目あたりを下記のように変更します。

こうすることで特定の CSS があるものは読み込まれ、なければ front.css を読み込みます。

ContactForm 7 より癖がありますが、何より確認画面が表示されるのは素敵!どんどん使って行きたいですね。

Mailing Junk back to Junk Mailers

追記 2013.03.08 : 1.9.1 の日本語バージョンを作成しました。

追記 2012.10.09 : 1.8.1 の日本語バージョンを作成しました。

追記 2012.10.03 :  1.7.1となって下記がFixされています。Thanks Peter!


WordPress は標準機能として承認機能があり、「寄稿者」で投稿した記事はすべてレビュー待ち(承認待ち)となります。この承認待ちの投稿があった場合に、メールで通知するプラグインが Peter’s Collaboration E-mails というものです。(日本語翻訳はあったようですが、古くなって更新されていないようです)

via: Version 1.9.1: Peter’s Collaboration E-mails for WordPress | Peter’s Useful Crap
公式: WordPress – Peter’s Collaboration E-mails ≪ WordPress Plugins

ダウンロード:
Peter’s Collaboration E-mails 1.9.1 日本語化ファイル(非公式)

Peter’s Collaboration E-mails 1.8.1 日本語化ファイル(非公式)

Peter’s Collaboration E-mails 1.7.0 日本語化ファイル 1.7.1 で同梱されました。

マルチサイトで動かすには、メインブログのテーブルを参照させる修正が必要でした。今はどうだろう?使ってみて動かない場合は下記を参考に修正してみてください。

参考:WordPress Peter’s Collaboration E-mailsをマルチサイトで動かす – 130単位

また、承認申請メール機能と合わせ、承認時のコメントを残せるプラグインも同じ作者(peter)のサイトにありますので、合わせて使うと良さそうです。

時間があったらこっちも翻訳してみようかな。

※2012.09.27に追記しました。話題になった機会に、内容を深めてまとめてアウトプットしてしまおう。常識知らないっていろいろな意味で怖い・・・

最近話題になっていた記事に感化されたので、テストしてみました。WPには立ち上げたばかりなのでまあ問題ないかなと思ったけれど、PHP4の環境でしかWPを動かせないとかあったら、ちょっとどころじゃなくヤバイよね・・・と心の片隅で若干gkbrしています。まれによくある話。

参考:無料のWordPressテーマをググって使うのは超ハイリスクなので気をつけよう! | firegoby

元ネタ:Free WordPress Themes: Why You Should Never Search For Them on Google

firegobyさんであえて検証方法を元ネタサイトのWPMUに任せているのは、「エラーを見るために安易にフリーのテーマで試さない方がいい」ということであって「自分のテーマを確認する」ことについては問題ないと判断して、検証用プラグインをインストールしてみました。

1. Theme Authenticity Checker (TAC)

プラグイン公式ページ:WordPress › Theme Authenticity Checker (TAC) « WordPress Plugins

参考:WordPressのテーマファイルを簡単にチェックできるプラグイン -TAC | コリス
参考:WordPressのテーマの不正コードを一発検出プラグイン「Theme Authenticity Checker (TAC)」|アマモ場

WPMUの検証記事でよく使われていた、テーマに不正なソースが仕組まれていないかをチェックするプラグイン。ちなみにWPMUの中の人、相当疲れたご様子。(読んでて途中で噴き出した。こういうテンション好き)
体を張った記事に感謝です。

今使っているテーマは公式から拾ったものをカスタマイズして使っているのですが、このプラグインでの検証結果はテーマ作成元へのリンクがあるだけであとは問題なしと表示されました。
WPMUの記事を読むとわかりますが、リンクがあるだけといってもそのリンクがスパムっぽいものの場合もあるようです。気をつけたいところですね。

ちなみに使い方はインストール後に[外観]→[TAC]で確認するだけの手軽さ。英語だけですが直感的にわかります。詳細も確認できます。(わかりやすい=安全ではありません。2012.09.27追記)

120927追記:
コメントいただきましたので、追記です。解説記事に感謝!

ヤバイWordPressテーマを見分けるための方法 | firegoby

tifに見せかけたphp・・・TACが安心できないというのはこういうことですね。rssって拡張子で実はPHPですってことをやったことがあるので、あー、なるほどーと思いました。
そしてテーマを自作してる人は Theme-Check を一度は確認しておきたいですね。

2. Exploit Scanner

プラグイン公式ページ:WordPress › Exploit Scanner « WordPress Plugins

参考:プラグイン:WordPress Exploit Scanner – WordPress Codex 日本語版(ちと古い)
参考:WordPress › フォーラム » WordPress 日本語版用 Exploit Scanner ハッシュファイル

「ワードプレス脆弱性スキャナー」。WordPressのコアファイルが改ざんされていないか調べたり、怪しいソースを発見してくれるプラグイン。インストール後、[ツール]→[Exploit Scanner]で Run the Scan で実行。
…うん?うん…項目多すぎる……。何か事故があった際に復旧した上で走らせて、「Modified」辺りで調べてみるとかでいいと思う。

3. Theme-Check

プラグイン公式ページ:WordPress › Theme-Check « WordPress Plugins

参考:プラグイン:Theme-Check – WordPress Codex 日本語版

テーマのエラーやコードの対応状況がわかるプラグイン。落としてきたテーマのチェックだけでなく、自作テーマのチェックもできます。当然といえば当然なんですが、「作る側」にとっても必須のプラグインですな。
うちはまだ自作プラグインは出していないものの、今後はチェッカーとして利用したいです。

4. Plugin-Check

プラグイン公式ページ:WordPress › Plugin-Check « WordPress Plugins

参考:マトモなWordPressプラグインを見分けるための簡単そうで簡単でないTips | firegoby

もうひとつ、こっちはプラグインのチェッカー。先にデバッグモードで確認しておいたほうがいいかもしれない。
NOTICEはともかく、WARNINGは対応したほうがいいでしょう。あまりに多いようならそのプラグインは使わないほうが吉。
すべてのプラグインに対してチェックするので、一度メモリが足りなくなってエラーになりました。あふぅ。
指摘箇所が多いので、こっちもテーマチェッカーと同様、調べたいプラグインを指定できればいいんですがね〜。

今回の記事に関して検索して調べたのですが、firegobyさんの記事がほとんど上位を占めていたので、諸々参考になりました。ありがとうございました。

5. TimThumb Vulnerability Scanner(2012.09.27追記)

プラグイン公式ページ:WordPress › Timthumb Vulnerability Scanner « WordPress Plugins

参考:【WordPress.orgにも脆弱性のあるものは存在する】WordPressのテーマやプラグインで脆弱性のある「timthumb.php」を検出する方法 | 今村だけがよくわかるブログ
参考:WordPressのテーマやプラグインでtimthumb.phpをお使いの方は脆弱性が見つかったのでご注意! | め組の小ネタ

timthumb.php は画像リサイズのライブラリのようですね。(うわぉ、初めて聞いた…PHPのリサイズ処理とかじゃダメなんか。使いやすくしたものなんか)
その脆弱性を突かれる可能性があるので、timthumb.php の検出に特化したプラグインです。

考えてみれば、公式にアップされているものでも、前の審査は通ったけれど、作成者が更新していなければ、新たに見つかった脆弱性に対応していないものもあるわけですよね。

テーマが多いのはWPのいいところでもあるし、気に入ったものを使うのは、それはそれでいいと思うけど、リスクを背負った上での自己責任で使いましょう、ってことかな。
Twenty Twelveも発表されるし、やっぱり公式→子テーマで弄るのが一番いいかなー。

企業サイト等ではトップページでキャンペーンや特長を大きなイメージで表示したい場合があります。
広告というよりかは、「アイキャッチ」とか「メインイメージ」とか…いろんな呼び方がありますが(主流はなんて言うんでしょ)、それがひとつに限らない時はランダムで表示するより、スライドして表示させるのが主流になってますね。

困ったときのjQueryを使用するのは確定していたので、山のようなプラグインから選ぶことにしました。
選定基準と理由は下記。

1.自動でスクロールする

閲覧者の操作を必要としなくても、ある程度自動で表示させるため。
デメリットとしてはクリックしようかなと思う頃には次に移ってしまうことがアリ。
これについてはユーザビリティーテストや解析結果を確認するといい。

2.キャプションやコメントは必要ない

ギャラリーサイトでは写真のタイトルとして出すんだろうけど、今回のような場合は画像だけで完結するので必要なし。あってもいいけどカスタマイズすれば綺麗に取れるものが理想。

3.サムネイル(大きなイメージを変えるためのボタン的画像)が使える

提供側としては優先順位はあるにしてもすべて見て欲しいものなので、よくある ●●●○● と下にあるだけだと、訴求力に欠ける。すべての人が最初から興味を持って訪れるわけではないので、サムネイルかボタンなどで、どんなスライドがあるかすぐに分かるほうがいい。

4.サムネイルはいくつでも置ける

メインイメージの幅や高さの範囲でしか置けないものも多いので、こっちも自動でスクロールするなどしていくつでも置ける必要がある。表示順序は表示前のプログラムである程度制御できるから、いつも隠れて見えないものがないように配慮。
ついでに、最後まで行ったら違和感なく最初に戻って欲しいな。

ちなみに、「カルーセル」というのは「回転木馬」の意味で、カルーセルパネル=横にスライドして端まで行ってもループして表示するパネルのこと。探してたのはズバリこれでした。
そういう点じゃ、端まで行って戻れないのはカルーセルとは言えないわけで・・・

via: カルーセルパネルとは – IT用語辞典 Weblio辞書

そんな条件付きで探したjQueryライブラリ!

次点:jQuery and WordPress Image Gallery

表示がすごく綺麗。あと、表示が速い??(キャッシュ効いてるのか、サーバのレスポンスがいいのか・・・)

トランジションも滑らかだし、下のサムネイルのカーソル追従もキモチイイ。

だがしかし、説明文は使わないのでスペース的に難あり。そして使用するには登録が必要。
無償のFree版と有償のPro版があって、ただ使うだけならFreeで十分。高機能を活かしたいならProで。
比較については下記にあります。

Comparison table | jQuery and WordPress Image Gallery

本命:GalleryView | spaceforaname

使うのは無料だけど自己責任で使ってね、とのこと。リスクはあるけどこの表示は私が求めていたもの・・・!

デモは下記。

ポチポチ選ぶだけでプロパティ設定をしてくれたら、期待通りになった!!

Clock

Post Expirator は、WordPress で投稿した記事やページの有効期限を設定できる、結構便利なプラグインです。

WPを構築する制作側だけでなく、構築したWPで更新するお客様側でも使うことの多いプラグインなので、日本語化ファイルを作ってみました。

追記 2013.04.03:バージョン 2.0.1 に対応しました。

ダウンロード: Post Expirator の日本語化ファイル(Version 2.0.1 用)

WPの翻訳ガイドラインには一応目を通して作りましたが、cron絡みのあたりとか、時々変な日本語や意訳しすぎじゃ?というところもあるかもしれませんので、お気づきの方は @mekemoke にご指摘いただけるとありがたいです。

追記:
ちなみに、9時間ずれちゃうよーって方は、

を function.php の先頭に入れるだけで解決します。

さらに追記:
コメントをいただいたとおり、WordPress が UTC を推奨している以上、date_default_timezone_set を安易に使うべきではないようです。上記が一番手っとり早い解決方法で、個人的には問題が起きていないのですが、慎重に対応する必要がありますね。じゃあどうすればいいのかという答えが見つかっていないので、あくまで暫定措置として。
参考:WordPress › フォーラム » WP-Cronが9時間遅れる

Keys

BuddyPressがあまり使いものにならないくらいスケールの大きな話になっていることにクラクラしつつ、残っているLDAP対応に手を付ける。

てか、WPのマルチサイトっていくつまで耐えられるんだろう。

気になって少し調べてみたら、興味深い記事が。

WordPressマルチユーザー環境の事例 + Google Analytics 計測結果 | Googleアナリティクス解説Blog カグア!

なんていうか、1サイトでも30サイトでも200サイトでも、落ちるときは落ちるんですね。

 * * *

話を戻して、LDAPでのユーザ認証プラグインを探しました。

最初は日本語での説明もあった Simple LDAP Login を導入してみたけれど、アップデートがなされていないので怖くてボツ。

残っているのはすべて英語のようだけれど…まあ、いつもの超訳でがんばってみた。

WordPress > ldap ≪ Tags ≪ WordPress Plugins

LDAPタグのついたプラグインを眺めてみたら、結構色々ありました。

今回欲しかったのは、ユーザ管理をLDAPに任せてしまう機能。LDAP側でパスワードを変えたら、ログインパスワードも変わってくれるような。

どうせログインのところだし、それほど大きな設定もないだろうから入れて試してみましたよ。

WPMU Ldap Plugin

Requires: 3.1 or higher Compatible up to: 3.3.x Last Updated: 2012-6-13

WordPress MUのログイン機能をLDAPログインに上書きして使うタイプのもの。説明を見てみると、LDAPでログイン成功したユーザをWPに自動登録するようで。WP3.1以上に対応しているので、MUとか名残だと思って気にしなくても良さそうな。

となると…パスワード変えたらログインできなくなるのかな?
それとも、ログインできない→LDAP見に行く→OKじゃん、変えとくね→ログイン成功 ってなってれば良いんだけど。

とりあえず、入れてみた。

重大なエラーを引き起こしたため、プラグインを有効化できませんでした。
Fatal error: Cannot redeclare wp_new_user_notification() in /——-/wp-content/plugins/wpmuldap/ldap/lib/wpmu_ldap_admin.functions.php on line 738

・・・・・・orz

wp_new_user_notification が競合しているよってエラー。
該当ファイルを開いて、738行目からの function を

if (!function_exists(‘wp_new_user_notification’) : ~ endif;

で囲んであげれば大丈夫なんだろうけど。

めんどくさいので次行ってみる。

LDAP LPRM

Requires: 3.0 or higher Compatible up to: 3.3.2 Last Updated: 2012-3-23

LDAP認証とユーザレベルの管理を有効にするよ、という必要十分な機能。

プラグインフォルダに突っ込んでネットワーク管理者画面から有効化してあげれば使える。

子サイトの 設定>LDAP Settings から設定する。特権振りかざして全部の子サイトで一気に設定できると良かったんだけどなー…

気を取り直して設定。と言っても変更したところは Base DN と Domain Controller(s) のみ。

  • Base DN → ベースとなる識別名。 例)dc=example, dc=or, dc=jp
  • Domain Controller(s) → 接続するホスト。 例)ldap.example.or.jp

権限も決められるようだけど、今回のテスト用LDAPデータの方に権限データが入っていなかったので(!)、全部規定の権限でのログインとなります。

これで Update Options ボタンを押せば設定完了。

画面の上の方にはテスト用フォームがあるので、LDAPに登録されているIDとパスワードでログイン確認できます。

これで勝つるー!と思って、ログインもできて、複数の子サイトにログインしてみようと思ったら管理者権限のログインができない!

FAQにちゃんと書いてありました。

Q. LDAPプラグインはWPのログイン機能より優先されるの?

A. はい。プラグインが有効になれば認証機能はLDAPシステムに渡されますヨ。

…まあ、当然と言えば当然ですHAHAHA。

というわけで一度プラグインフォルダの名前を変えて、無理やり管理者でログインしました。

気になったこと:

  • 複数の子サイトで同じLDAPデータが有効になっている場合、ユーザは最初にログインした子サイトに所属しているとみなされる。
  • でもLDAPが有効な他のサイトにもログインできる。
  • でも参加サイトには最初にログインしたサイトしか表示されない。
  • これを変更するには、他の子サイトの管理画面で、ユーザ登録してあげる必要がある。

うん、もうちょっとなんとかしたい。

今日は以上。修正した WPMU Ldap Plugin も試してみよう。

First Day: calendar

スマートフォン用画面を作るのに便利なjQuery Mobile。日付選択用のプラグインがリニューアルしたようで、現在稼働するのはこっちの方。

jQueryMobile – DateBox Demos

カレンダー形式を使用したい場合は、jQuery、jQM(1.0.1以上)、あとはコアファイルと使いたいモードのjsを読み込む。CSSも必須です。

jqm-datebox.ja.js は日本語に変換したもの。(後述)
あとは下記のように設定してあげれば動きます。

type=”date” と data-role=”datebox” と data-options=’{“mode”:”calbox”}’ は必須。(data-optionsを入れないとエラーが出て怒られました)

valueには初期値を入れてあげれば良いのですが、dateFormat で設定した型に沿うように指定する必要があります。

日本語用ファイルは個人的に設定したかったので、諸々参考にしつつ下記のようにしました。

これで万事解決~♪と思いきや、日付選択用カレンダーのヘッダは headerFormat が無視されます。それもそのはず、日付選択の場合、ヘッダに日付が入っていたら変だから。

ここまできて「7月 2012」とかいう文字が許せなかったので、headerFormatCal: “%Y年%B”, というのを追加して、jqm-datebox.mode.calbox.min.js の該当箇所をカスタマイズしました。

旧)

新)

これで 2012年7月 という表記になりました。めでたしめでたし。

(以下追記)

1.タップエリアを広げたい

ボタンをタップしないとカレンダーが開かないので、入力欄(readonly 設定してあるので入力できないけど)を全体をタップすると開くようにする。

data-options に “useFocus”:true を追加設定すればOK。イベントのトリガーはタップ(クリック)というよりフォーカスなんだね。

2.テーマを変えたい

日本語化ファイルで適用できなかったので、アレー?と思っていたら、これも data-options での設定でした。

“themeDate”:”b” などと追加設定すればOK。ただ、幾つかに項目が分かれているので、それぞれ設定してあげる必要があります。詳細はjQueryMobile – DateBox Options を参照。