WP_LIST_PAGES未按预期显示CPT

时间:2012-07-19 作者:Mere Development

我有一个名为“空缺”的CPT,这里是注册它的代码:

function register_cpt_vacancy() {
    $args = array(\'labels\' => $labels, \'hierarchical\' => false, \'supports\' => array(\'title\', \'editor\', \'excerpt\', \'thumbnail\', \'revisions\'), \'taxonomies\' => array(\'departments\'), \'public\' => true, \'show_ui\' => true, \'show_in_menu\' => true, \'menu_position\' => 5, \'show_in_nav_menus\' => true, \'publicly_queryable\' => true, \'exclude_from_search\' => false, \'has_archive\' => true, \'query_var\' => true, \'can_export\' => true, \'rewrite\' => true, \'capability_type\' => \'post\');
    register_post_type(\'vacancy\', $args);
}
在模板页脚中,我尝试执行以下操作:

wp_list_pages(\'post_type=vacancy\');
其中—from reading the docs 我以为会有用。

除了创建自己的查询和菜单样式之外,还有其他方法可以做到这一点吗?此空缺列表显示为两个其他wp菜单之间的菜单,称为wp_nav_menu 所以我希望它是一个列表结构,就像它们一样。

欢迎对不同方法提供任何帮助或建议:)

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

wp_list_pages docs, 它指出:

如果给定的自定义帖子类型本质上是分层的,那么wp_list_pages() 可用于列出该自定义帖子类型的成员。

根据您的代码,您试图用于wp\\u list\\u pages()的CPT是分层的。

因此,有两种解决方案:

1。更改自定义帖子类型

通过设置\'hierarchical\' => true\'capability_type\' => \'page\'.

2。使用不同的功能,我建议使用以下类似的功能:

$vacancy_menu = get_posts( \'post_type=vacancy\' );

if( $vacancy_menu ) : ?>
    <ul>
    <?php foreach( $vacancy_menu as $menu_item ) : 
      setup_postdata( $menu_item );?>
        <li><a href="<?php the_permalink(); ?>" title="Go to <?php the_title(); ?>"> <?php the_title(); ?></a></li>
    <?php endforeach; ?>
    </ul>
<?php endif; ?>
如果愿意,可以很容易地将其设置为创建自己的“wp\\u list\\u posts()”的函数,或设置为与wp\\u nav\\u menu()的html相匹配。

另外,一定要退房this example 来自CSS技巧,以及关于如何将“当前”类应用于链接的类似解释。

结束