この記事は最後に更新してから1年以上経過しています。

wp_list_categories関数を使っているなら要確認

説明

WordPress 6.1のリリースに向け、昨日はBeta 2が公開された。6.1には新テーマ「Twenty Twenty-Three」が組み込まれるなど、気になるところが盛りだくさん。ここではそんな6.1(Beta 2)のソースコードを眺めていて個人的に気になったところを紹介する。

カテゴリーリストを表示する wp_list_categories関数

wp_list_categories関数はカテゴリーアーカイブページへ切り替えるカテゴリーリストを表示するもの。少し古めのテーマではよく使用されていた印象がある。この関数について6.1 Beta 1/2では次のようなコメントが追加され、use_desc_for_titleパラメータが省略された場合、適用される値が1から0に変更されるようだ。

 * @since 6.1.0 Default value of the 'use_desc_for_title' argument was changed from 1 to 0.

このことがどのような影響があるのか、6.1 Beta 2環境で試してみる。

wp_list_categories();

これで実際に出力された内容は次の通り。

<li class="categories">カテゴリー<ul>	<li class="cat-item cat-item-2"><a href="http://localhost/?cat=2">ニュース</a>
</li>
	<li class="cat-item cat-item-1"><a href="http://localhost/?cat=1">未分類</a>
</li>
</ul></li>

今度はuse_desc_for_titleパラメータに1を指定し、現在の6.0.x環境と比較してみる。

wp_list_categories( [ 'use_desc_for_title' => 1 ] );

これで実際に出力された内容は次の通りで、a要素にtitle属性が出力されている。

<li class="categories">カテゴリー<ul>	<li class="cat-item cat-item-2"><a href="http://localhost/?cat=2" title="これはニュースです。">ニュース</a>
</li>
	<li class="cat-item cat-item-1"><a href="http://localhost/?cat=1" title="これは分類されていません。">未分類</a>
</li>
</ul></li>

title属性の内容は、通常なら各カテゴリーの「説明」に記述された内容となる。「説明」に何も記述していない場合にはtitle属性そのものが出力されない。

現在使用しているテーマやプラグインでwp_list_categories関数を使用し、use_desc_for_titleパラメータを指定していない場合、6.1へアップデートした際にtitle属性が出力されない可能性がある。6.1の正式リリースまで時間的に余裕があるので、事前に確認しておきたい。


最終更新 : 2022年11月07日 10:16


お勧め

wp_add_post_tags(2012年7月5日 更新)

mixed wp_add_post_tags( [ int $post_id = 0 [ , string $tags = '' ] ] )
投稿情報に投稿タグを追加する。

get_tags(2018年5月27日 更新)

array get_tags( [ mixed $args = '' ] )
条件を指定してタグ情報を検索し、マッチしたすべてのタグ情報を取得する。

wp_array_slice_assoc(2022年2月2日 更新)

array wp_array_slice_assoc( array $array, array $keys )
キーを指定して配列の一部を抽出する。

get_post_permalink(2022年11月6日 更新)

string | false get_post_permalink( [ int | WP_Post $id$post = 0 [ , bool $leavename = false [ , bool $sample = false ] ] ] )
カスタム投稿タイプの投稿ページのパーマリンクを取得する。

remove_query_arg(2024年3月21日 更新)

string remove_query_arg( string | string[] $key [ , bool | string $query = false ] )
クエリーURIからパラメータ(キー名=値)を削除する。