WP Total Hacks 0.5.0

WP Total Hacksをアップデートしました。

更新内容

  • Ktai Style作者のゆりこさんからご指摘いただいたいくつかの不具合を修正しました。あらためまして、ゆりこさんに御礼申し上げます。
  • apple-touch-iconを設定できるようにしました。

修正を検討中の項目

ゆりこさんにご指摘いただいた内容で以下の項目については今後検討させて下さい。

  • phpファイルの最後の行の閉じタグ直後に改行がある。
    PHPのパーサーが閉じタグ直後の改行を削除しますので実動作上問題は全くありませんが、誤解をうけないよう閉じタグを消すことで対処するつもりでしたが、うっかり忘れてました。^^;
  • 設定項目のstripslashes()を出力時ではなく、保存時に行ったほうがよいのでは?
    過去のバージョンとの互換性維持のため、今回は保留させていただきました。
  • 設定項目のオプション名がプラグインと関係ない名称なので他のプラグインとコンフリクトしないか?
    これも過去のバージョンとの互換性維持のため、今回は保留させて頂きました。

oEmbed Gist 1.1.0

oEmbed Gistをアップデートしました。

http://firegoby.theta.ne.jp/wp/oembed-gist

今回のアップデートでは、JavaScriptが無効のユーザーに対して<noscript>を出力するよう修正しました。

この修正に対してパッチを送付いただいた、Alex Kingさんにお礼を申し上げます。

なんかこのAlex KingさんはWordPress界では有名な人らしく。

うぉ!みやさんが、Alex King に褒められとる! - oEmbed Gist Plugin for WordPress : alexking.org http://t.co/6v7TqAL via @alexkingorg

みたいなリアクションがあったので、

ところでだれ?

と、きいたら教えてくれました。

@miya0001 Crowd Favorite のチーフオフィサーの人ですよ~。プラグイン開発者でもあるから、デンバーのまがりん、みたいな感じ? 日本ではモバイルプラグインで有名だったので、デンバーのゆりこさんみたいな感じ?

まがりんとゆりこさんを足して2で割ったような感じ?

たしかにすごそう…w

ATNDのURLをコピペするだけでイベントを記事に挿入できるWordPressプラグイン

リリースパーティだとか、キャンプだとかビーチだとかベンチだとか、夏になってからイベントが盛りだくさんの今日この頃。

リクルートさんがやってるイベント開催支援ツールATNDに登録されたイベントのURLをコピペするだけでWordPressの記事内に表示出来ちゃうというイベント主催者様御用達のプラグインを作りました。

まだアルファ版レベルなので、仕様変更があると思いますので、ご理解いただける方のみご利用ください。

使い方

  • ATNDのイベントのパーマリンクをコピーしてWordPressのエディター上にペーストしてください。
  • あとは、保存ボタンをクリックするだけです。
  • CSSは自力でご用意下さい。

仕様

  • イベント用のデータはATND APIから取得しHTMLを生成したあと、3600秒キャッシュします。
  • キャッシュ時間はURLの末尾にhttp://atnd.org/events/9999#6000のようにハッシュリンクで指定できます。
  • テンプレート及び時間のフォーマットにはフィルターフックがありますので、テーマのfunctions.phpなどでカスタマイズできます。
    • atnd_template – テンプレートのフィルターフック
    • atnd_date_format – 日時のフォーマットのフィルターフック

今後について

以下の機能を実装した後、公式ディレクトリに登録します。

  • Googleカレンダーに登録するためのリンクを設置
  • その他のAPIとのマッシュアップ(最寄り駅の表示とか)

このバージョンをダウンロードした方でも、公式ディレクトリ掲載後は自動アップデートが適用されます。

あとフィードバックを募集中です。

HTMLの改善案とかこれとマッシュアップしたら便利だよとか。大歓迎します。

ダウンロード

アルファバージョンをダウンロード

サンプル

ATND上のデモイベントを以下に掲載しています。デモイベントに登録された内容がh1から始まったりしてるので、ちょっとバランスが変です。

ATNDデモイベント(タイトル)

このイベントはATNDのデモです。実際に開催されることはありませんが、自由に参加/キャンセルをしてみてください(サブタイトル)

SAMPLE: イベントの概要を編集しましょう。

ここでは通常のHTMLの他、 Textile記法 でも記述することができます。

Textile記法について

Textile記法では、*太字* や 斜体取消線 など、HTMLを使わずに簡単に書くことができます。

うまく動かない場合は、記号の前後に半角スペースが入っているかを確認しましょう

  • 箇条書き
    1. でも
    1. 書くことが
  • できます

記法については、 こちら を参考にしてください。

プレビューについて

概要のプレビューについては PREVIEW ボタンを押してみてください。グレー地部分に変換内容が表示されます。

タイムテーブル

時間 発表者 タイトル
19:00 – 19:30 Aさん Aについて
19:30 – 20:30 Bさん Bについて
20:30 – 21:00 Cさん Cについて

場所

MTL(デモ)
住所: 東京都中央区銀座7-2-6 リクルートアネックス1ビル B1F(デモ)

講演概要

Aについて
  • 出演
    • Aさん
    • 概要
  • 「A」の生まれた背景・概要・利点などの紹介

Bについて
  • 出演
    • Bさん
    • 概要
  • 「B」の生まれた背景・概要・利点などの紹介

日時2012年02月28日15時00分 - 2012年02月29日14時30分
参加者 / 定員48名 / 48名 (補欠者: 803名)
会場MTL
住所東京都中央区銀座7-2-6 リクルートアネックス1ビル
URLhttp://atnd.org/
主催者knjko
更新2011年10月09日05時32分

 

WP Total Hacks 0.4.0 とWordPress3.2で変わったことで気がついたこと。

WP Total Hacksをアップデートしました。

今回のアップデートはWordPress3.2への対応です。

ホントは新しい機能を実装したものをリリースする予定だったのですが、ビジュアルエディターまわりの処理が3.1と3.2の間で、互換性が無くなってしまったため、後始末に手こずりました。

このブログでも自作プラグイン上でビジュアルエディターを設置する方法について解説させていただきましたが、もう過去の遺物です。

以下では本来の趣旨とはちょっとかわりますが、WordPressプラグイン開発から見たビジュアルエディターなどの変更点についてご説明します。

3.2で変更されたビジュアルエディター関連の関数

自作プラグインでビジュアルエディターをつけることはあんまりないと思いますが…

wp_tiny_mce() と the_editor() 内の処理が大幅に変更された。

本来ならソースを上げて説明したいところですが、めんどくさいので省略します。

従来のWordPressではビジュアルエディターを出力するためのtiny mce用の設定をwp_tiny_mce()で出力して、そのあとでthe_editor()でビジュアルエディター用のHTMLを出力するという流れでした。

しかし、3.2以降ではthe_editor()のみで最低限必要な処理が出力されるようになり、wp_tiny_mce()をthe_editor()とあわせて実行するとJavaScriptやHTMLのコンフリクトが発生します。

どうやらカスタマイズしたエディターを出力するためのパラメータをwp_tiny_mce()やその他のフックでゴニョゴニョしなければならないようです。

ですが、もともとデフォルトのままだったので、今回はそのへんは追っかけていません。

前画面モード

WordPress3.2から追加された”なんちゃらかんちゃらモード”(フルスクリーンのあれですw)は、the_editor()実行時にフルスクリーン用のHTMLを出力するのですが、悲しいことにこのHTMLにはフックがありません。

なので、自作プラグイン側で the_editor() する際には以下のような感じで、フルスクリーン用のtinyMCEプラグインを解除する必要があります。

add_filter('tiny_mce_before_init', array(&$this, 'tiny_mce_before_init'), 999);

public function tiny_mce_before_init($init)
{
    $init['plugins'] = str_replace(
        array('wpfullscreen',',,'),
        array('', ','),
        $init['plugins']
    );
    return $init;
}

ちなみに上記のソースをそのまま使うと記事などの投稿画面でもボタンが消えちゃいますので、以下のページを参考に適切な条件分岐などをしましょう。

http://firegoby.theta.ne.jp/archives/2236

jQueryのバージョンアップによる変更

jQueryの1.6から $(‘foo’).attr(‘checked’); は、$(‘foo’).prop(‘checked’); に書き換えてねという情報を聞いていたんですが、その後1.6.1が再度リリースされて、従来の $(‘foo’).attr(‘checked’); でも動くようにしたよんということだったので、完全にタカをくくっていました。

実際にWordPress3.2に同梱されているjQueryは1.6.1なので、オッケーと思っていたんですが、実際には動きません。

というわけで、.attr(‘checked’) を、もし自作テーマなどで使用しているなら、.prop(‘chekced’) に変える必要があります。

WP Total Hacks 0.3.0

WP Total Hacksをアップデートしました。

更新内容

  • 保存時のメッセージが出てなかったので修正しました。
  • メディアップローダー上の「投稿に挿入」が表現がおかしかったので、「画像を選択」に修正しました。
  • 保存後にアクティブなタブが維持されるように修正しました。

というわけで、今回のアップデートも動作には影響ありません。

次回のアップデートでは、いくつかの機能の追加を行います。

しばらくアップデートが続きますが、よろしくお願い致します。