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()が必要っぽい。

関連記事:

この記事は参考になりましたか? 1 Star2 Stars3 Stars4 Stars5 Stars 4.89 (9件)
Loading ... Loading ...

trackbacks & pingbacks (2)

  1. 2006/10/26 00:56:05 cafe.cybergene » Blog Archive
  2. 2006/10/26 11:10:40 Rif.

コメントをどうぞ

Name:
Email:
Url:
Comment: