从CPT页面链接到分类.php

时间:2014-03-07 作者:MaxNagler

我创建了一个CPT,允许用户向页面添加人员。我已经创建了一个显示所有人的页面模板。此页面还显示用于人员的所有类别。我的问题是:当用户单击某个类别时,如何实现这一点?只有拥有该类别的人才会显示出来?

以下是相关代码摘录:

function.php (注册分类法):

function create_people_taxonomies() {
    $labels = array(
        \'name\'              => _x( \'Categories\', \'taxonomy general name\' ),
        \'singular_name\'     => _x( \'Category\', \'taxonomy singular name\' ),
        \'search_items\'      => __( \'Search Categories\' ),
        \'all_items\'         => __( \'All Categories\' ),
        \'parent_item\'       => __( \'Parent Category\' ),
        \'parent_item_colon\' => __( \'Parent Category:\' ),
        \'edit_item\'         => __( \'Edit Category\' ),
        \'update_item\'       => __( \'Update Category\' ),
        \'add_new_item\'      => __( \'Add New Category\' ),
        \'new_item_name\'     => __( \'New Category Name\' ),
        \'menu_name\'         => __( \'Categories\' ),
    );

    $args = array(
        \'hierarchical\'      => true, // Set this to \'false\' for non-hierarchical taxonomy (like tags)
        \'labels\'            => $labels,
        \'show_ui\'           => true,
        \'show_admin_column\' => true,
        \'query_var\'         => true,
        \'rewrite\'           => array( \'slug\' => \'categories\' ),
    );

    register_taxonomy( \'people_categories\', array( \'people\' ), $args );
}
add_action( \'init\', \'create_people_taxonomies\', 0 );
page-cpt-people.php (显示类别的页面模板):

<?php

        $taxonomy = \'people_categories\';
        $terms = get_terms($taxonomy); // Get all terms of a taxonomy

        if ( $terms && !is_wp_error( $terms ) ) :
        ?>
            <ul>
                <?php foreach ( $terms as $term ) { ?>
                    <li><a href="<?php echo get_term_link($term->slug, $taxonomy); ?>"><?php echo $term->name; ?></a></li>
                <?php } ?>
            </ul>
        <?php endif;?>

        ?>
My questions:

我需要给我的分类页面指定哪个文件名,以便用户在点击cpt people页面中的一个类别时可以直接访问该页面。php

2 个回复
SO网友:Howdy_McGee

您可以创建taxonomy-people_categories.php 或更一般的taxonomy.php (将显示此类别中的所有分类法-不包括帖子类别)-请参见Taxonomy Templates / Template Hierarchy.

至于显示帖子所需的内容taxonomy-people_categories.php 创建您可以只运行普通WordPress循环:

<?php if(have_posts()) : ?>
    <?php while(have_posts()) : ?>
        <?php the_title(); ?>
    <?php endwhile; ?>
<?php endif; ?>

SO网友:elleeott

回复:错误“找不到页面”,是吗flush your rewrites?

结束

相关推荐

提前注册Taxonomy,以便可以在unctions.php和admin-ajax.php中使用它

这是对this post, 概述在函数中无法使用get\\u terms函数的原因。php(实际上是通过ajax/admin\\u ajax.php调用)。我可以在任何帖子、任何页面上获取术语(自定义税),除了在我的ajax函数中。在转储get\\u terms的值时,我收到了可怕的“分类法不存在”错误。问题是,在调用函数查找术语后,分类法被注册。问题是,如何尽早注册税务以便使用此功能?注册自定义帖子类型和分类的代码是函数中的第一个。php(通过外部php提供,以保持functions.php干净)/**