Ultimate Tag Warrior 奮闘記

これは Ultimate Tag Warrior を使いたいがために苦悩した結論を記する。

まず、Wordpress のプラグイン UTW を使ってマトモな日本語タグを活用したいなら

文字コードは UTF-8

が大前提である。
EUC-JP とか S-JIS とかにしてると、タグアーカイブもマトモに出ないことがあるし、タグ追加の際に文字化けの可能性が出てくる。
しゅんろ〜は EUC派だったんで色んな小細工を試みたが、あっさり文字コードを変更するのが幸せになる最短距離であることに遅ればせながら気が付いた。
これまで UTF-8 以外の文字コードで運用されている方で、UTW で日本語を思いっきり使いたい人は、ぜひ苦労してでも UTF-8 に変更されることをオススメする。

タグアーカイブの表示件数制御

Custom Query String を利用してタグアーカイブ時の表示件数を変更するための小細工。

参考にさせていただいたところ:power source*
前提UTW関連コアファイル小細工が済んでいるものとする。
改造ファイル:custom-query-string.php

52行目あたりの $conditions に is_tag を追加。
[code lang="php"]

Parse error: syntax error, unexpected T_VAR in /home/55/tis7600/iw.syunro.net/wp-content/plugins/runphp/runPHP/runphp.php(410) : eval()’d code on line 2

[/code]

220行目あたりの条件分岐に下記を追加。
[code lang="php"]

Parse error: syntax error, unexpected T_ELSEIF in /home/55/tis7600/iw.syunro.net/wp-content/plugins/runphp/runPHP/runphp.php(410) : eval()’d code on line 2

[/code]

以上で、CQS のオプション設定画面で is_tag での表示件数をセットできるようになる。

タグアーカイブページのナビゲーション修正

WP-PageNavi を利用してページナビゲーションをしてる場合、タグアーカイブページで正常なページ数にならない。
なんでやろって思ってたら AOINA.COM 様 が解決されておられました。

改造ファイル:pagenavi.php

36行目からの条件分岐に下記 tag にかかわる部分を追加。
[code lang="php"]

Parse error: syntax error, unexpected $end in /home/55/tis7600/iw.syunro.net/wp-content/plugins/runphp/runPHP/runphp.php(410) : eval()’d code on line 9

[/code]
どうも、複数タグを放り込んだとき各タグでヒットした件数の合計でページ計算されるようになっているらしい。。。僕は詳しくはわかんないんです。。。
でもこの改造で、ページナビゲーションが正常になるので気持ち良いですね。

日記だけじゃなくページにもタグ付け

参考にさせていただいたところ:power source*
・・・ほんとお世話になります。> power source*

改造ファイル:ultimate-tag-warrior-actions.php

まず、ページにタグ付けできるようにするには、ページにタグ追加欄を表示させます。
最終行あたりにフック群がありますので、下記の部分に一番下の edit_page_form へのフックを追加。
[code lang="php"]

[/code]
これでページ作成の時にタグ入力欄が表示されるようになるのでタグ付け可能。

タグ付けただけでは関連文書が出る程度なので、タグアーカイブにまでページを出そうと思うと同じファイルの790行目あたりに下記一番上の置換文を追加。
[code lang="php"]

Parse error: syntax error, unexpected ‘}’ in /home/55/tis7600/iw.syunro.net/wp-content/plugins/runphp/runPHP/runphp.php(410) : eval()’d code on line 3

[/code]
この置換文は、置換前の $where はコアファイル classes.php 内でセットされているのだが、publish が Wordpress ME 2.0.5 ではダブルクォートで囲っており、2.0.6 と 2.0.7 ではシングルクォートで囲っているので注意が必要。
また、僕は間違って上記 return $where; の直前に置換文を入れてしまった。
これをやると、サイトだろうが管理ページだろうがあらゆる記事のリストにページが出現するという状態になるので要注意。