トラックバックの表示をカスタマイズ February 19, 2007 No Comments
いま使っているテンプレートで、トラックバックの表示の仕方がおかしいので直した。 以下のような書式で[サイト名]からトラックバック元記事にリンクが張られているという点に違和感がある。
[サイト名] Says xxxx年xx月xx日 [記事タイトル] [記事本文…]
いま使っているテンプレートで、トラックバックの表示の仕方がおかしいので直した。 以下のような書式で[サイト名]からトラックバック元記事にリンクが張られているという点に違和感がある。
[サイト名] Says xxxx年xx月xx日 [記事タイトル] [記事本文…]
WordPressは、カテゴリーごとにページを作り分けられることを知った。 CodexのCategory Templatesというページを見て気づく。
WordPressはページごとにテンプレート(wp-content/themes)適用の優先順位が決まっていて、カテゴリーは”category.php”でひとまとめなんだと思っていたら”category-6.php”のようにカテゴリーIDを付け足すことで専用ページを作成できるらしい。 そんな簡単なルールでできたのか。
いちいちカテゴリーIDを自分で照合しないといけないのが面倒だが、できるのとできないのでは雲泥の差なのでとりあえずメモしておいた。なお、カテゴリーIDは管理画面の[Manage]-[Categories]で確認できる。
さんざんあちこちに手を入れてきて今さら気づいたのだが、WordPressテンプレートのヘッダーが何か変だと思った。 もちろん、選択しているテンプレートによって違うのだろうが、僕が使ってるテンプレートでは、わざわざ検索エンジンのキャッシュを拒否するmetaタグを埋め込んであった。 そういう余計な加工をしたものを配るかー?とかなり脱力した。最終的には確認しない自分が悪いのだが。
一応、いろいろなサイトのソースのheadタグを見てみたのだが、総論としては「あまり余計なタグを入れない」という感触を得た。 沢山ヘッダーを付加したって妙な挙動したりサイトが重くなるだけなんだから、それが自然だろうと思った。 続きを読む… »
WordPress-2.0.3にアップグレードするついでに、文字化け対策のパッチ[wp203-utf8.diff]を整理した。 アップグレードごとに、毎回手パッチするのも飽きたので。
wordpress/ディレクトリの中にパッチファイルを置いて、 patch -p1 < ./wp203-utf8.diff とすると当たると思う。
このパッチは、MySQL4.1以降向け(でUTF8用)に作ったもの。MySQL4.0以前がSET NAMESで良いのかどうかは調べてないので分からない。 続きを読む… »
ブログの月別アーカイブにあまり必要性を感じないのでドロップダウンリストに押し込めてみた。WordPressの場合、wp_get_archivesの引数指定によりoptionタグ一覧形式で出力できるので、フォームと組み合わせるとドロップダウンリストにできる。
例によって情報源はCodexのwp_get_archivesの解説ページ。”format=option”というのが、optionリストを取得する引数。
ドロップダウンの選択されたアイテムが変化した時(onChange)にvalueプロパティの中にあるURLに移動するフォームを一式書くと以下のような感じになった。
<form method=”post”> <select name=”past” onChange= “location.href=this.form.past.options[this.form.past.selectedIndex].value”> <?php wp_get_archives(‘type=monthly&format=option’); ?> </select> </form>
RSS取得&表示プラグインmcRSSlistと、WordPress本体のページ機能を組み合わせて、ニュースサイトの新着記事を監視する機能をつけた。名付けて「Webモニター!」。叫ぶほどではないが。
プラグインはphpの関数として呼び出す必要があるので、ページのテンプレートファイルに記述する必要がある。テーマ(wp-content/theme)の中のテンプレートファイル(index.php)などをコピーしてカスタマイズすると良い。
テンプレートの書き方は、WordPressのPage機能の解説(codex.wordpress.org))を参考にした。snarfer.phpというファイルの例で説明している。
At the top of the snarfer.php file, put the following: < ?php /* Template Name: Snarfer */ ?> The above code defines this snarfer.php file as the “Snarfer” Template.
テンプレートファイルの一番頭でTemplate Nameを宣言する、という点がポイント(実際には冒頭の<と?の間には空白は入れない)。ここで宣言した名前が、ページの編集画面から選択できるようになる。テンプレートができたら、テーマフォルダの中にアップロードする。 あとは管理画面からページを新規作成すればOK。右のツールバーのドロップダウンリストに先ほど作成したテンプレートが追加されている。
WordPress1.5では、ページのPermalinkを変更するとそれぞれ.htaccessでリダイレクトの指定をする必要があったのだが、2.0になってWordPress自身が解釈するようになったので.htaccessを編集する必要がなくなった。 プラグインの機能を活用したい場合にはページ機能が使いやすいので便利になった。
WordPress2.0で自分のブログの過去記事にTrackbackを送ったら、本文の抜粋部分が文字化けした。「自分で書いた文字を後で読んだら読めなかった」みたいな感覚で情けないのだが、このままでは使いものにならないので調べてみた。
Re: Trackback(matopc :: computing)という記事の情報に沿ってwp-trackback.phpを修正したら直った。 HTTPヘッダを解析して文字コードを取得する、というTrackbackの仕様にうまく対応していないのが不具合の原因らしい。というかヘッダ読んですらいないじゃん、と思った。 アップグレードするたびに手パッチはつらいので、このパッチが早く本流のコードに入って欲しい。バグ自体は認識されてる模様。
WordPress2.0でコメントSPAMフィルター(Akismet)プラグインが標準搭載になったので、トラックバックを有効にしてみた。 単純に設定をONにするだけで使えるようになるわけではなく、結構手順は面倒だった。
Akismetを利用するためにwordpress.comにユーザー登録する必要があるのだが、登録した途端にウイルス付きのスパムが届くようになった。ブログ上ではSPAMと戦うけどメールの方には来るのか? 年末あたりに米国Yahoo!に採用されたりして波にのっているWordPressだが、若干うさんくささを感じる。ツールの出来は良いと思うのだが。 続きを読む… »
記事の時刻表記がおかしかったので、Formatting Date and Time(codex.wordpress.org)を参考にテンプレートをカスタマイズしてみた。
テーマのテンプレートファイルを編集する。設定画面から変更できるのかと思ってたが、実はそっちじゃなかった。 テンプレートファイル内のthe_date(‘xxxxxxxx’)関数のシングルクオート内に表記したい書式を記述する。
書式は標準的なPHPのdate関数のフォーマットで指定する。date関数のリファレンス(jp.php.net)を読みながら好みの表記を作れば良い。 フォーマットの指定文字以外はそのまま表示されるので、’n月j日(l) h:ia’のように指定することで「1月9日(月曜日) 01:03am」というような表記になる。
ちなみに「月曜日」の部分はオフィシャルのja.moを利用して日本語化しているため、この結果になった。英語設定のまま使っている場合はMondayになると思う。
サイトを見やすく改装したいと思って、カスタマイズに着手した。WordPress1.5からテーマの機能が一新されて関数も含めてかなり手を入れられるようになっているので、まずはその範囲内でやってみようと思った。
が、中途半端にやってみてもうまくいかないらしい。 続きを読む… »