カスタム分類法を表示するために設定されたwp_list_categories
リストがあります。
すべてうまくいきました、そして今私はshow_option_all
リンクを追加したいです。
ただし、リンクをクリックすると、すべてのデフォルトの投稿タイプの投稿となしが表示されます。 - カスタム分類法の明らかに、その目的は、この分類法のすべての投稿を表示することであり、それらだけを表示することです。
$args = array('post_type' => 'design_asset', 'show_count' => 1, 'taxonomy' => 'asset_type', 'show_option_all' => 'Show All');
wp_list_categories($args);
これでうまくいくでしょうか。どうやって?
wp_list_categories()
はカスタム分類法のある特定の状況でユニークに役立つという点で奇妙な関数ですが、存在する前にもともと書かれていました。 (これは2.1で導入され、taxonomy
属性は3.0で追加されました( source )。)
あなたが目にしているのは、 関連バグレポート (2年前に提出され、4ヶ月前の最後の活動)の既知の問題です。 ソース を見ると、リンクがpage_for_posts
ページに移動するようにハードコードされていることがわかります。だから今のところ、あなたは回避策を探しています。
@ tomas-cotがコメント でコメントしているように 、コードスニペットのpost_type
引数はwp_list_categories()
の有効な引数ではありません。しかし、私はあなたが意図しているのはあなたのCPTのPost Type Archiveページに行くためのshow_option_all
リンクであると思います。
これはwalkerクラスで行うことも、title_li
引数をハッキングすることもできますが、とにかく<ul>
タグで関数をラップする必要があるため、次の(未テストの)コードをお勧めします。
<?php
$list_cat_args = array(
'show_count' => 1,
'taxonomy' => 'asset_type',
'use_desc_for_title' => 0 /* title attr bad for accessibility! */
);
// get the post type archive link
$all_posts_url = get_post_type_archive_link( 'design_asset' );
?>
<ul>
<li><a href="<?php echo esc_url( $all_posts_url ); ?>">Show All</a></li>
<?php wp_list_categories( $list_cat_args ); ?>
</ul>