コンピュータ」カテゴリーアーカイブ

Head Cleaner (仮) – ここまでのまとめ

さて、先日から「Head Cleaner (仮)」を、夜半になると Twitter 上で公開しては修正、機能アップを繰り返してきたのですが、盛り込みたかった機能もかなり盛り込めたので、これより熟成期間に入ります。
で、熟成期間に入る前に今までの経緯をまとめておきます。
まずは、このプラグインの基本的な動作原理。

  1. WordPress のテーマテンプレート inex.php や single.php に <?php get_header(); ?> って記述があると思いますが、これが呼ばれた時に動作を開始します。
    この時は、まだ ob_start で、バッファ取得開始するだけ。
  2. header.php の <?php wp_head(); ?> が呼ばれた時点でバッファ取得を終了し、書き出された文字列を解析して整形します。

やってることは、これだけ。
まだまだ開発途上のプラグインですが、人柱になっていただいている方々、ありがとうございます m(_ _)m
不具合は色々と出てきましたが、私は元気です。

さて、では以降は今までの経緯のまとめ。
続きを読む

Head Cleaner (仮)

WordPress にプラグインをガンガンと突っ込んでいくと <head> 部に、JavaScript やら CSS やらが、ドンドン追加されて、カオスなことになってしまいます。
そんな状態の自サイトを「YSlow for Firebug」で診断してみると、とても低いスコアになったりしてガックリ来るわけです。
プラグインを外したりしたくなかったりするので、チマチマと修正したりして使っていたんですが、プラグインのバージョンアップのたびに修正するのも面倒です。

そんな折、「WordPress Head Cleaner」というプラグインを見かけました。
これは、ひょっとして <head> 部を自動でキレイにしてくれるのか?と期待してダウンロードしてみたんですが、ソースを見てガッカリ。
ついカッとなって、こんなプラグインを作ってしまいました。

ダウンロード

Head Cleaner@WordPress Plugins
または
Head Cleaner (最適化&高速化)@JSeries

[2/24 6:00 追記] コメント蘭での、ゆりこさんからの指摘により、 Safari では拡張子が .gz の css, JavaScript を認識できないことが判明。
多分 「.gz」の Content-Type が 「text/javascript」 or 「text/css」 になっていないからだと思われます。
Ver.0.3.2 以降で、Safari に対しては gzip 圧縮されたファイルを転送しないように修正しました。
なお IE, Firefox, Opera, Chrome では、問題無いようです。

[2/25 8:00 追記]Ver. 0.4.0 から CSS もすべて結合することができるようになりました。
# ただし、デフォルトでは OFF になっています。
CSS 内の画像ファイル等への相対パスはすべて絶対パスに置き換えます。
制限事項としては、media 属性を気にせずにすべて結合し、media="screen" にしてしまうため、想定外の表示になる可能性もあります。
この辺は、後々修正します。

[2/26 12:30 追記]Ver. 0.5.x から、CSS と JavaScript をそれぞれ CSSTidyjsmin-php で圧縮できるオプションを付けました。
また、コメント欄でのゆりこさんからの指摘により、ユーザエージェントに「AppleWebKit」を含むブラウザ(ただし chrome は除く)からのリクエストがあった場合は .gz ファイルを転送しないように修正しました。
あと、簡単な注意書きを書いた「readme_ja.txt」を同梱したので、読んでやってください。

[3/4 18:30 追記]正式版のリリース準備版を公開しました。
今まで、php ファイルを直接修正していた各種設定は、管理画面の「設定」>「Head Cleaner」から行えます。
また、競合が報告されているプラグインと、その対処法について「readme_ja.txt」に書いてあります。
そちらも、ご一読ください。

[3/5 23:00 追記]正式版リリースしました。
続きを読む

WordPress コメントをスレッド対応にする

管理画面WordPress 2.7 から、プラグイン等を導入せずともコメントをスレッド(入れ子)表示できるようになりました。
対応するテーマを使っていれば、管理画面の [設定] – [ディスカッション] で [コメントをN階層までのスレッド (入れ子) 形式にする] にチェックを入れてやれば良いのですが、使用しているテーマが対応していないと修正する必要があります。
このテーマの修正が、意外と面倒なので自分用のメモも兼ねて修正方法をエントリしておきます。
続きを読む

メールアドレスのホスト部分を DNS でチェックする

SPAM コメント対策として、コメント欄に入力いただいたメールアドレスのホスト部分を DNS でチェックし、存在するホストかどうかを確認するようにしてみてます。
とりあえず2週間ほど動作させていますが Akismet のチェックまで到達する SPAM コメントはかなり減ったようです。
ただ、このチェックに引っかかったコメントは問答無用で叩き落しているので、ひょっとすると SPAM ではないコメントも叩き落しているのかもしれません。
もし、コメントできないという人があれば、サイドバー右上に記載されているメールアドレス宛てにメールください。Twitter アカウントを持っている場合は、@wokamoto まで知らせていただいても大丈夫です。

この機能は、もうしばらく当サイトで動作させてみて、問題なさそうなら Quick Comments の次期バージョンに管理画面での選択式にして取り込む予定です。
続きを読む

wp-kougabu 導入

「逆光は勝利」「世はなべて三分の一」「ピーカン不許可」「頭上の余白は敵だ」

と言うわけで、投稿やページにアップロードされた画像ファイルを抽出し、サムネイルで一覧表示する WordPress 用プラグイン wp-kougabu を導入しました。
このプラグインによるサムネイルの一覧表示は こちら

で、このプラグイン導入したページをページ分割しようと思ったんですが、私が使っているテーマ(ほぼ自作)はページ分割に対応していないことが判明。
慌てて、テンプレートタグ wp_link_pages() を追記したんですが、これが吐き出す (X)HTML が、気にくわない。
カレントページ番号に対して CSS でスタイル指定しづらいマークアップになってしまうので、ゴニョゴニョして何とかしました。
続きを読む

Twicon for WordPress

WordPress 2.5 以降では、コメント欄で Gravatar が簡単に利用できるようになった。
Gravatar とは、以下のようなもの。要するにコメント欄に表示する投稿者固有のアイコンだ。

Gravatarとは?

Gravatar(Globally Recognized Avatar)とは、広い範囲で利用できるアバター(化身)です。アバターまたはGravatarはアイコンであり、フォーラム、チャット、ウェブサイトのような仮想現実上のオンライン・コミュニティの中で、そのユーザーの身代わりとなって、他のユーザーと自分自身を区別できるようにします。

twittar っておもしろい気もするが、 - Masayanこの Gravatar の代わりに Twitter のアイコンを表示できるプラグイン 「Twitter Avatars In Comments WordPress Plugin」 についてMasayan さんが、Twitter でつぶやいたのを読んで、コレは!と思い色々試してみた。
が、仕様が気にくわない点が色々とあったので作り直し。
まったく別の WordPress プラグインが出来上がったので JSeries で公開します。

使用方法、ダウンロードは以下から。
WordPress Plugins/JSeries » Twicon for WordPress (アバター表示)
続きを読む

WordPress 2.7 で smilies 入りのコメントが承認待ちになる

yutaka さんが、ちょっと前から頻繁にコメントが承認待ちになると言っていたので、原因を調べてみました。
実はこの現象、私のサイトでも WordPress 2.7 にバージョンアップしてから、たびたび発生していました。
# おもに yutaka さんのコメント。

ちらっと WordPress のソースを眺めたところ wp-includes/comment.phpcheck_comment() 関数に問題があることがわかりました。
具体的には 😀 などのいわゆる smilies がコメント中に複数あると、必ず「承認待ち」になってしまいます。
# WordPress 2.7.1 以降のバージョンではこのバグは解決されたため、このプラグインは不要です。

で、どこが悪いかと言うと
続きを読む

Ubuntu 8.10 で VMware Player のキーマップ変更

yutaka さんから、Ubuntu 8.10 にしたら VMware Player のゲストOS上で、Delキーや、カーソルキーが効かなくなったと言われたので、ちょっと調べてみました。
私は、VMware Player 上の WinXP は IE や Chrome での動作確認くらいにしか使ってなかったので、気づかなかったのですが (^^;;;;

で、検索してみたら Ubuntu 64bit 版 + VMware Server 2 について言及しているエントリを発見。

この設定が、そのまま VMware Player でも使えます。

以下、設定方法をメモ。
続きを読む

wp-shot 0.4 alpha リリース

wp-shot で、定期チェックに使っている Pseudo-cron.php が WP 2.7 で正常に動作しないと言う報告があったので、wp-shot を wp-cron 対応にしたのですが、他にも色々手を加えたので、JSeries で公開することにしました。
wp-cron 対応にしたため WordPress 2.1 以降にのみ対応になってしまいましたが、WordPress 2.0.x では Pseudo-cron.php が正常に動作しているようなので、ヨシとしてください。
今回、手を入れたモノをそのまま眠らせておくのも、もったいないので JSeries リリースしましたが、元々の作者では無いため、細かい仕様や不具合を完全には把握して居ません。
PHP5 が利用できる環境の場合は、wp-shot の実質的な後継プラグイン「Ktai Entry」への移行をオススメします。

今回の仕様変更は以下のとおり。

  • wp-cron 対応 (これにより WordPress 2.1 以降が必須要件になります)
  • メディアライブラリ対応
  • 添付画像の回転保存対応
  • wp-content/plugins//wp-shot/wp-shot.php を直接叩いてもメール取得スクリプトが動作しないように修正
  • norida さんが提起されている「wp-mail 問題」への対応
  • WordPress 管理画面での各種設定値の一括削除

ダウンロードは、以下からお願いします。
WordPress Plugins/JSeries » wp-shot (メール投稿プラグイン)

続きを読む

wp-cron で定期実行

Twitter / みなみ: @wokamoto WP 2.7 にしたら、ついに ...みなみさんが WP 2.7 にしたら、wp-shot が動作しなくなったとのことなので、多少修正して WP 2.7 でも動作するようにしてみました。
どうやら wp-shot で、定期チェックに使っている Pseudo-cron.php が WP 2.7 では、正常に動作しないっぽい。
そんなわけで Pseudo-cron.php をバッサリ切り捨てて、WordPress 2.1 からある標準機能 wp-cron を使用することにしました。
ついでに、今までのバージョンだと http://example.com/wp-content/wp-plugins/wp-shot/wp-shot.php に直接アクセスすると、メールチェックが動作していたので、これも動作しないようにしました。
しかし、人のソースを読むのは勉強になるなぁ。

で、その際に wp-cron についてアレコレ試してみたので自分用にメモ。
続きを読む