A Django site.
12月 18, 2006
» プラグインのバージョンチェックをしてみる

久しぶりの投稿です。
wordpressのversionを今更ながら2.04から2.05に変更してみました。あまり変わったところが見当たらずブログを巡回してみると、トラックバックが受信できなかったりと不具合があるようです。

changelog.txtを見てて、標準プラグインであるwp-db-backupやakismetもバージョンがあがってました。

ということで、他のプラグインのバージョンはどうなっているのだろうとちょっと気になって調べてみると

  • Admin Drop Menus
  • Brian's Latest Comments
  • Edit N Place
  • Plugins Used Plugin
  • WP-PageNavi
  • Ultimate Tag Warrior

これだけバージョンがアップしていました。どこがどう変わったのか分かりませんが、まあ不具合の修正だと思います。

このサイトでもちょっとしたプラグインを公開しているので、そのソースも見直しをしなければ・・・・。

プラグインのバージョンチェックができるプラグインって無いのかな?

10月 24, 2006
» UTW(Ultimate Tag Warrior)を導入して気づいた点

先日から独自テーマを作成していてUTWプラグインをいろいろと調べいていたのですが、UTWプラグインの修正や他のプラグインとの相性についていろいろとメモっておきます。

タグアーカイブ時のタイトルを変更

※var.3.141592では修正されております。
タグアーカイブ時のタイトルがブログ名しか表示されてません。
SEO的に問題なのでタイトルにタグが表示されるようにする方法は、下記のコードをultimate-tag-warrior-actions.php の最後に追加します。
(まぁどこでもいいんですけどね。テーマファイルのfunctions.phpでもOKですし)

PHP:
  1. add_filter('wp_title', 'utw_blogtitle',1);
  2. function utw_blogtitle($title){
  3.     if(get_query_var("tag") && !$title) return " » " . get_query_var("tag");
  4. }

複数タグのアーカイブ表示時におけるURLの一貫性

複数タグのアーカイブ表示時のURLは最初に選択したタグから順に並んでいます。
しかし選択順を変更しても同じアーカイブとなるわけですからSEO的に問題ありますよね。
(選択したタグ順のパンくずリストを扱うのであれば別ですが)

  • http://mydomain/tag/tag1+tag3+tag2
  • http://mydomain/tag/tag3+tag2+tag1

これを一貫性のあるアルファベット順に並べるように変更する方法です。
ultimate-tag-warrior-core.phpの1167-1168行に変更を加えます。

PHP:
  1. $tagseturl = "$home$baseurl" . implode('+', $tagset) . "+$tag_name_url$trailing";
  2. $unionurl = "$home$baseurl" . implode('|', $tagset) . "|$tag_name_url$trailing";

        ↓

PHP:
  1. array_push ($tagset, $tag_name_url);
  2. sort($tagset);
  3. $tagseturl = "$home$baseurl" . implode('+', $tagset) . "$trailing";
  4. $unionurl = "$home$baseurl" . implode('|', $tagset) . "$trailing";

Ultimate Tag Warrior と WP-PageNavi との相性

Ultimate Tag Warrior と WP-PageNavi を利用している方は多いと思いますが、実は複数タグを指定したタグアーカイブ表示時に WP-PageNavi にバグが生じます。
UTWとPageNaviを導入している方は試してみてください。
  「http://mydomain/tag/tag1+tag2」
とURLを打ち込んでみるとPageNaviのページ件数がおかしくありませんか?
実はtag1の記事件数とtag2の記事件数の合計をPageNaviが計算しています。

そこでpagenavi.phpを修正してみます。
pagenavi.phpの37-39行目を修正

PHP:
  1. preg_match('#FROMs(.*)sGROUP BY#siU', $request, $matches);
  2. $fromwhere = $matches[1];
  3. $numposts = $wpdb->get_var("SELECT COUNT(DISTINCT ID) FROM $fromwhere");

    ↓

PHP:
  1. if( strpos(get_query_var('tag'), " ") ){
  2.     preg_match('#^(.*)sLIMIT#siU', $request, $matches);
  3.     $fromwhere = $matches[1];
  4.     $results = $wpdb->get_results($fromwhere);
  5.     $numposts = count($results);
  6. } else {
  7.     preg_match('#FROMs(.*)sGROUP BY#siU', $request, $matches);
  8.     $fromwhere = $matches[1];
  9.     $numposts = $wpdb->get_var("SELECT COUNT(DISTINCT ID) FROM $fromwhere");
  10. }

もう少しいい方法があるかもしれませんが上記で直ります。
またwp_pagenavi_dropdown()を利用している方は77-79行目を修正(上記修正後は84-86行目あたり)

その他にも修正したいところが...

カテゴリ別やタグ別のfeedのタイトルにカテゴリ名やタグ名を付けたい。

WordPress Hooksでは記載されてない'bloginfo_rss'hookですが、wp-includes/default-filters.phpで使われているので使ってみるが動かない...
bloginfo_rss()にapply_filters()が必要っぽい。

10月 23, 2006
» Themeに挿入できるUTW(Ultimate Tag Warrior)のテンプレートタグについて

Themeに挿入できるUTWタグについていろいろ調べてみた結果、いろいろカスタマイズできることがわかったのでメモ代わりに。

基本テンプレートタグ

■LOOP内

  • UTW_ShowTagsForCurrentPost($formattype, $format, $limit)
    記事に付けられたタグを表示
  • UTW_ShowRelatedTagsForCurrentPost($formattype, $format, $limit)
    記事に付けられたタグの関連タグを表示
  • UTW_ShowRelatedPostsForCurrentPost($formattype, $format, $limit)
    記事に付けられたタグの関連記事を表示

■Tagアーカイブ表示時

  • UTW_ShowRelatedTagsForCurrentTagSet($formattype, $format, $limit)
    Tagアーカイブ表示時にそのタグの関連タグを表示
  • UTW_ShowCurrentTagSet($formattype, $format, $limit)
    Tagアーカイブ表示時にそのタグを表示
    WPタグのget_query_var("tag")と同じ

■Tag一覧

  • UTW_ShowWeightedTagSet($formattype, $format, $limit)
    タグ一覧を利用頻度が多いタグ順に表示
  • UTW_ShowWeightedTagSetAlphabetical($formattype, $format, $limit)
    タグ一覧をアルファベット順に表示
  • UTW_ShowTimeSensitiveWeightedTagSet($formattype, $format, $limit)
    UTW_ShowWeightedTagSet()の拡張で
    カテゴリ、日付アーカイブ表示時には、
    そのアーカイブで使用されているタグ一覧を利用頻度が多いタグ順に表示
  • UTW_ShowTimeSensitiveWeightedTagSetAlphabetical($formattype, $format, $limit)
    UTW_ShowWeightedTagSetAlphabetical()の拡張で
    カテゴリ、日付アーカイブ表示時には、
    そのアーカイブで使用されているタグ一覧をアルファベット順に表示

■その他

  • is_tag()
    タグアーカイブ表示時は「true」 それ以外は 「false」

パラメータに関して$limitを指定しない場合は全タグが表示されるので基本的には不要。
$formattypeパラメータを指定する場合は$formatは不要。
$formattypeのパラメータ一覧はultimate-tag-warrior-help-themes.htmlにFormat Nameとしてサンプル表示付で一覧になってます。

例えば基本的なTagCloudを表示させる場合は下記のように記述します。
< ?php UTW_ShowWeightedTagSetAlphabetical("sizedtagcloud") ?>

$formatを使ってカスタマイズ

$formattypeを使わずに$formatを使って自由自在に表示することもできます。
061023-234607.png
利用頻度が高いタグを10個とその前にfeedアイコンを表示させる場合

HTML:
  1. <ul><?php UTW_ShowWeightedTagSet("", array("default"=>'<li><a href="%tagurl%feed/" title="feed"><img src="'.get_bloginfo('template_url').'/images/feed-icon.gif" alt="feed" title="feed" /></a> <a href="%tagurl%" title="%tagdisplay% (%tagcount%)">%tagdisplay%</a>(%tagcount%)</li>'), 10); ?></ul>

061024-001833.png
タグアーカイブ時に関連タグとその前に「+」リンクを表示させる場合

HTML:
  1. <?php
  2. if ( is_tag() ) {
  3. UTW_ShowRelatedTagsForCurrentTagSet("", array(
  4.     'pre'     => '<div class="relatedtags"><h3>Related Tags</h3><ul>',
  5.     'post'    => '</ul></div>',
  6.     'default' => '<li>%intersectionlink% <a href="%tagurl%" title="%tagdisplay% (%tagcount%)">%tagdisplay%</a>(%tagcount%)</li>',
  7.     'single'  => '<li><a href="%tagurl%" title="%tagdisplay% (%tagcount%)">%tagdisplay%</a>(%tagcount%)</li>'
  8. ));
  9. }
  10. ?>

$formatの使い方の基本は下記のようになります。

PHP:
  1. UTW_基本タグ ( "", array(
  2.     'pre'     => '<ul>など',
  3.     'post'    => '</ul>など',
  4.     'default' => '<li>%tagdisplay%</li>など',
  5.     'single'  => 'タグが1つしかない場合の表示',
  6.     'none'    => 'タグが無い場合の表示'
  7.     ), タグの最大表示数);

array()内で利用できる置き換えタグはultimate-tag-warrior-help-custom-formatting.htmlにPlaceholderとして一覧表示されてます。

» テーマ変更

まぁ以前のは飽きちゃったので、今回はこつこつと1から作ってみました。
自分では以前よりマシかと思いますが...

UTWのテンプレートタグをいろいろカスタマイズしてみました。
061023-234607.png
頻度の高いタグリストとfeedアイコン

061024-001833.png
タグアーカイブ時に関連タグを表示 (del.icio.usっぽく)

データベースへのアクセス回数は45-50ほど 結構重いなぁ
061024-001911.png
データベースへのアクセス回数はfooter.phpに下記のコードを挿入で表示できるらしい

PHP:
  1. <?php echo $wpdb->num_queries; ?>

10月 18, 2006
» マーケット情報をRSS配信しているサイト

10月からジャスダック証券取引所がRSS配信を始めております。
内容は「重要なお知らせ」「上場会社IR資料等」など各項目で分けられており、
必要な情報のみを受け取ることができるようになっております。

これをきっかけに東証や大証も始めてもらいたいものです。

ジャスダック証券取引所
ジャスダック証券取引所
「重要なお知らせ」「上場会社IR資料等」など



証券新報
証券新報
証券情報ダイジェストは1日に100フィードほど配信しているので読むのが大変
また項目別でも配信してます



Technobahn
Technobahn
マーケット情報とテクノロジーWatchを配信



兜町ネット
兜町ネット
市場のニュース、NY市況、東証一部市況など項目別に配信



Google Calendar 市況の予定
Google Calendar 市況の予定

携帯用
からでも見れるのでとても便利



GMOインターネット証券のWebサービスAPI公開ってどうなったのでしょうか?