列表类别上的“全部显示选项”不显示分类

时间:2014-08-20 作者:Steve

我有一个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);
这能行吗?怎样

1 个回复
最合适的回答,由SO网友:mrwweb 整理而成

wp_list_categories() 是一个奇怪的函数,因为它在自定义分类法的某些情况下非常有用,但它最初是在它们存在之前编写的。(它是在2.1中引入的taxonomy 在3.0中添加了属性(source).)

您看到的是associated bug report (两年前提交,最后一项活动是四个月前)。如果你look at the source, 您可以看到链接已硬编码为转到page_for_posts 页所以现在,你正在寻找一种变通方法。

正如tomas cot在their comment, 这个post_type 代码段中的参数不是的有效参数wp_list_categories(). 然而,我认为你的意图是show_option_all 链接到您的CPT的Post Type Archive页面。

你可以用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>

结束

相关推荐

Taxonomy term count

我有一个名为“资源”的自定义帖子类型,用于在我的网站上创建资源目录。该CPT具有称为“价格”的分类法。有三个术语因此,当有人在查看我的目录时,他们会在侧栏中看到“价格”以及下面的选项,他们可以单击(例如)免费并查看列出的18种不同的免费资源。我想要的是学期页面我的网站。com/价格/免费要有标题18免费资源我怎样才能做到这一点?