WordPress のバージョンアップをしたらタグの表示が…

この記事をフルスクリーンで見るフルスクリーンモードを終了するには Esc キーを押してください。または、ココをクリックしてください。

昨年の秋にバージョン2.3がリリースされたのですが、以前から使用しているプラグインがある程度対応するまでバージョンアップを見送っていました。

また、バージョンアップにあたり WP: WordPress 2.3 へアップグレードする前にしておきたいことを参考にさせていただき、感謝感謝です。
2.3になっての変更点や新機能については、今さらココで書いても仕方がないと思いますので、気になる方は上記のサイトを参考にしてください。

で、プラグインも対応してきましたので昨年12月に2.3.1へバージョンアップしました。
2.3の新機能にデフォルトでタグ機能への対応があります。
タグ機能が使えるようになったのはいいのですが、タグ用テンプレートタグが基本的なものしか用意されておらず、使いたい機能が実現できないみたい。
以前は、Ultimate Tag Warrior(UTW)を使用していましたが、UTW は2.3に対応していません。
どうしようかなと思っているところ UTW のテンプレートタグを利用できるプラグイン “UTW Theme Compatibility Thing” というのを見つけました。
これで何とか実現できるかなと思ったのですが、すべての UTW テンプレートタグに対応しているわけではないみたいです。
また、ブログのトップ(メインインデックス)の各記事のタグが表示されていません。(現在は、表示しています)

何が原因かわかりませんので、
[php]
<?php UTW_ShowTagsForCurrentPost(“commalisticons”) ?>
[/php]
と UTW のテンプレートタグを使ったみたり、
[php]
<?php the_tags(‘Tags : ‘, ‘ , ‘); ?>
[/php]
と WordPress のテンプレートタグを使ってみたのですが、結果は同じでした。
もう一度 WordPress Codex のテンプレートタグの記述を読んでいると、“ループ内での使用” というのが妙に気になる。

ブログのトップページは、最新の記事を新しい記事から4つ表示させていますが、間に Google AdSense を挟んでいますので、上部に最新の2記事を表示して下部に3番目と4番目の記事を表示しています。
[php]
<?php $posts=get_posts( ‘numberposts=2’ ); ?>
<?php if ($posts) : foreach ($posts as $post) : setup_postdata ($post); ?>
-contents-
<?php endforeach; endif; ?>
-Google AdSense-
<?php $posts=get_posts( ‘offset=2 & numberposts=2’ ); ?>
<?php if ($posts) : foreach ($posts as $post) : setup_postdata ($post); ?>
-contents-
<?php endforeach; endif; ?>
[/php]
表示設定でブログページの1 ページ内の投稿数を指定できますが、テンプレートタグで投稿数を指定する場合は、”get_posts” を使用するので間違った記述はしていないと思います。
Wptags.com の “get_posts” の説明やサンプルコードを見てもこのように記述しています。

ただ、WordPress Codex のループタグの記述に WordPress 1.5以降は、
[php]
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
[/php]
で、 WordPress 1.2では、
[php]
<?php if ( $posts ) : foreach ( $posts as $post ) : start_wp(); ?>
[/php]
を使用するみたいな記述があります。
でも、WordPress Japan のトピックを見てみると、

WordPress Japan :: トピックを表示 – ループの書き方が2種類あるのですが、その違いは?

前者は、WordPress が設定したメインループです。内部的にグローバル変数 $wp_query を使っています。
後者は、メインループとは別のループを作るときの書き方です。このコードより前に変数 $posts を設定しているはずです。

とありますので、どちらもループの指定で間違いないようです。
実際、バージョン2.2までは上記の記述でタグを表示していましたからね。

結局よくわからないまま年末年始とバタバタしていましたので、1ヶ月程タグの表示がない状態で放置していましたが、最近落ち着いてきたので色々と調べてみたらやっと原因がわかりました。

ちょっと長くなってきましたので、原因と解決策は次回… 🙂

スポンサーリンク

  • このエントリーをはてなブックマークに追加

フルスクリーンモードを終了するには Esc キーを押してください。または、ココをクリックしてください。