Categories
WordPress Plugins

Search Whole Site Plugin

What is this? / これは何?

Search Whole Site (tam-sws) is a WordPress plugin. WordPress offers search form which searches only in ordinary Posts, and it does not search in Pages or Attachments. I believe that when a person enters a term in a search form on a web site, the person must want to search in whole the site, not only in a part of it. So I made this plugin. This plugin rewrites search query to remove post_type condition from it. This allows your visitors to search in all types of post entry. If you use WordPress as CMS, you will find this useful.

This plugin works on WordPress 2.1. WordPress 2.0 is not supported.

現行の WordPress が提供する検索フォームの検索対象は通常の投稿(Post) に限られており、ページアタッチメントのような特殊なタイプのエントリーは対象に含まれません。しかし通常検索フォームを使うときには、通常の投稿だけでなくページやアタッチメントも含めたサイト全体が検索対象になっていると期待するのが普通ではないでしょうか。Search Whole Site (tam-sws) プラグインは検索時の DB クエリを書き換え、post_type の制約を取り除きます。これによりすべてのタイプのエントリーを検索対象とすることができるので、WordPress を CMS として使用している場合などでは特に役に立つでしょう。

このプラグインを使うには WordPress 2.1 が必要です。WordPress 2.0 には対応していません。

Categories
WordPress Tips

WordPress 2.1 のアタッチメント API

WordPress 2.1 ではアタッチメント(編集画面からアップロードされた画像などのファイル) 管理のための API が拡張され、それ以前と比べて格段に充実しています。アタッチメント関連のプラグイン作者向けに、WordPress 2.1 の変更ポイントや今後の方向性についてまとめました。

参考: Hitting WordPress Attachment Handling by mdawaffe

Categories
WordPress Tips

WordPress 2.1 のファイル再編成

WordPress 2.0 から 2.1 の間でファイルの大幅な再編成が行なわれています。通常の利用には影響はありませんが、プラグインやテーマを作るような時には関係がある場合もあるので一応把握しておいた方がよいでしょう。

特に変更の大きい wp-includes ディレクトリのファイルの移動について以下にまとめています。それぞれ WordPress Trac の Changeset にリンクしていますので経緯について知りたい場合はそちらを参照してください。

Categories
Announcement

プラグインの WordPress 2.1 対応状況

iDeasilo で公開している WordPress プラグインの WordPress 2.1 への対応状況についてお知らせします。

プラグイン WordPress 2.1 対応 確認したプラグインのバージョン
Nippon OK 0.1.2 (1.1.2)
Tam-attachment 確認中
Tam-google-analytics OK 1.0
Tam-mothertongue OK 0.1 alpha

Tam-attachment のみ確認が済んでいません。WordPress 2.1 でアタッチメントの扱いが大きく変更されているのでおそらくそのままでは使えないと思います。対応バージョンの開発に時間が必要なのでしばらくお待ちください。

Categories
JavaScript

Tam-calendar.js に Google Calendar の祝日データを取り込む

先日紹介した Tam-calendar.js の話のなかで、クラスを追加指定する例として祝日の日付に holiday クラスをセットするというのを取り上げましたが、肝心な祝日の日付をどうやって取得すればよいのか、詳しい説明を省いていました。今回はその話をしたいと思います。

Google Calendar Data API

Google は Google Calendar のデータを操作できる Google Calendar Data API を公開しています。この API を使うことで Google Calendar 上に保存されたイベントデータを XML フィードとして取得することができます。

各国の休日はイベントの一種として扱われているので、同様に API 経由で取得することが可能です。Google Calendar Data API から祝日のデータを得るメリットとしては、

  • Google がメンテナンスしているので自前でデータを管理しなくて済む
  • Google がメンテナンスしているデータだから間違いがない(たぶん)

といった点がまず挙げられますが、さらに重要なポイントとしてクライアントサイドからデータを取得してそのまま処理できるという点も挙げておきたいと思います。

以下、Google Calendar Data API から祝日のデータを取得して Tam-calendar.js に取り込む方法について詳しく解説していきます。

Categories
JavaScript

Tam-calendar.js

これは何?

Tam-calendar.js はウェブページにカレンダーを表示する JavaScript です。以下のような特長をそなえています。

  • カレンダーを table 要素で表現する。個々の日付や曜日などは td 要素であらわす。td 要素が何をあらわしているか、知りたいときは class 属性を見ればわかるようになっている。たとえば 「2007年1月1日の日付」なら、<td class="date y2007 m01 d01"> というように。
  • スタイルシートのセレクタ指定ではこのクラスの組み合わせを使うと便利。たとえば「12月の週末」なら、td.m12.weekend {color: green;} というように。
  • デフォルトで指定されるクラス以外にも、任意のクラスを追加指定できる。たとえば日本の祝祭日や個人的なイベントの情報と組み合わせるような場合ではとても役に立つ。
  • テキストの表示はフィルタ関数を指定することによりカスタマイズが可能。日本語と英語の基本的なパターンは定義済みなので(例: “Monday”, “Mon”, “M”, “月”) フィルタを選ぶだけで切り替えられる。
  • テキストをクリックした際のリンクやアクションの指定などが簡単にできるようになっている。
  • もちろん、週の始めを日曜にしたり月曜にしたり、簡単に設定できる。

下は Google Calendar 風のスタイルシートを適用したサンプル(スクリーンショット) です。

Tam-calendar.js with Google Calendar style CSS

Categories
WordPress Plugins

Tam-mothertongue

English introduction is here. (Thank you, Toru!)

これは何?

WordPress のプラグインです。管理パネルの言語をユーザごとに設定できるようにします。

WordPress は複数のユーザでひとつのブログを管理することができますが、指定できる管理パネルの言語はひとつだけです。このプラグインを使うとユーザごとに言語を指定できるようになるため、複数の言語の利用者が集まってブログを共同執筆するような場合には重宝するでしょう。

ダウンロード

ここから zip ファイルをダウンロードして、/wp-content/plugins/ ディレクトリに展開、WordPress にログインして plugins パネルで有効化して下さい。

使い方

使用する言語の言語ファイルを wp-includes/languages ディレクトリに保存します(詳しい方法は Wiki を参照)。

[Users] » [Your Profile] メニューに言語選択のプルダウンメニューが表示されるので、言語を選択して保存します。するとそのユーザの管理パネルのみその言語で表示されるようになります。他のユーザには影響しません。

tam-mothertongue

Changelog

Version Date Description
0.1 alpha 2006/6/15 Initial release.
For WordPress 2.0 and 2.1.
Categories
WordPress Plugins

Tam-google-analytics

Summary

This is the simplest Google Analytics tracking code installer plugin for WordPress. Just copy and paste your tracking code into option panel, then it inserted into footer area. Code will not be inserted in case login insider accesses, so “administrator filter” on Google Analytics won’t be necessary.

Google Analytics のトラッキングコードを埋め込むプラグインは数多くありますが、どれも複雑過ぎるように思えたので必要最小限の機能のみ備えたシンプルなプラグインを作りました。コントロールパネルからトラッキングコードを入力すると、それをフッタの部分に書き出します。それだけです。また、ログイン中のユーザがアクセスしてきたときにはトラッキングコードを書き出さないようにしているので、Google Analytics 側で管理者を除外するフィルタを設定する必要がありません。

Download and Installation

You can download the plugin’s zip file here. After you download the zip, you’ll need to unzip it to your /wp-content/plugins/ directory. Then log into WordPress and activate the plugin from within your plugins panel.

ここから zip ファイルをダウンロードして、/wp-content/plugins/ ディレクトリに展開、あとは WordPress にログインして plugins パネルで有効化して下さい。

Changelog

Version Date Description
1.0 2006/10/25 Initial release.
For WordPress 2.0 and 2.1.
Categories
WordPress Plugins

HTML タグの制約を一部緩和する一点物プラグイン

一点物プラグインとは

プラグインには一般向けで汎用的なプラグインと一点物のプラグインの2種類があります。一般向けは一般的なニーズに合わせて作るもので、ある程度ニーズの幅に対応できるように作らなくてはいけません。一点物はある特定のケースだけを想定して作るもので、そのケースをピンポイントに解決できればそれでいいというものです。普通、プラグインといえば一般向けのものを指します。

一般向けのプラグインを作る場合、ニーズに幅があることを考慮して作らないといけないので、「こういう機能が欲しい人もいるかもしれない」とか、「こういうデータも入力されるかもしれない」とか、いろいろと心配が多くなります。いきおいコードは複雑になってしまいます。

一方、一点物はどうかというと、極めてシンプルに作ることができます。対応する必要のある状況は特定されているので、オプションを設定するための UI を用意する必要もないわけです。

これまで、求められる状況に応じて一点物のプラグインをいくつか作ってきました。一般向けではないので公開したりはしてきませんでした。ふと思い立って、これからは一点物のプラグインも公開することにしました。一点物ならシンプルに作れるので、これから WordPress のプラグインを作りたいと考えている人にとって良い教材になるだろう思ったからです。

個人的な意見ですが、コアのコードに手を入れるのは極力避けるべきです。どこをどう変更したのか忘れますし、バージョンアップのたびに同じ変更を行なわなければならなくなります。変更はプラグインで行なうべきです。プラグインなら必要がなくなれば無効化すればいいだけです。

欲しい機能を持ったプラグインが探しても見つからないかもしれません。無いなら作ればいいのです。ここで紹介するプラグインを参考に、自作プラグインに挑戦してみてください。

Categories
WordPress Tips

Sandbox テーマ

Sandbox テーマとは

Sandbox という画期的なコンセプトのテーマが最近注目されていて、WordPress の次期デフォルト・テーマの有力候補とも目されています。

Update: 2007年12月25日に公開された Sandbox 1.2 についてこちらに書きました

従来 WordPress のテーマというのは PHP テンプレートと CSS のスタイルシートがパッケージ化されたものでしたが、Sandbox ではこれらを明確に分離して、スタイルシート部分を “スキン” という新導入のレイヤーに置き換えました。テンプレートは単一のまま、スキンは複数から選ぶことができます。ちょうど現在テーマを複数から選んでいるように、Sandbox テーマの中でスキンを選ぶことができるようになるというわけです。

従来のテーマでは PHP と CSS の両方を理解していないとテーマの中身をいじることが難しかったので、デザイン担当とコーディング担当に分業するような場合に少々都合が悪かったですが、Sandbox ではその辺がやりやすくなると思います。

単にスキンが選べるようになるだけではありません。Sandbox ではテンプレートの主要な要素の class 属性に豊富なセマンティック情報を盛り込んでいて、そのおかげで CSS のセレクタ指定の自由度が格段に高くなっています。実際に見た方が早いですが、

<body class="wordpress y2006 m08 d16 h03 single s-y2006 s-m08 s-d06 s-h10 
    s-category-uncategorized s-author-admin loggedin">

例えばこの body 要素に見られるように、今表示しているページにどのような情報が含まれているかを示すかなり細かい情報がクラスとして盛り込まれます。

クラス指定の全種類とそれぞれの意味について最後に一覧でまとめています。

Sandbox は hAtom マイクロフォーマットをサポートしています。hAtom についてはまだ良くわかっていませんが、ブログやニュース記事などが持つセマンティック情報を class 属性などの形で XHTML そのものの中に埋め込む仕様のようです。この辺はもう少しわかったら詳しく書きたいと思います。