【发布时间】:2014-09-24 04:56:53
【问题描述】:
我的自定义帖子分类法遇到了一些问题。当我调用 url/team 时,它完美地显示了我所有的自定义帖子,但是当我想调用一个类别页面(例如像 url/team/labor 这样的“劳工”)时,我得到一个404.
这是我的插件文件中自定义帖子类型和分类的注册:
$labels = array(
'name' => 'Team',
'singular_name' => 'Team-Mitglied',
'add_new' => 'Neues Team-Mitglied',
'add_new_item' => 'Hinzufügen',
'edit_item' => 'Team-Mitglied bearbeiten',
'new_item' => 'Neues Team-Mitglied',
'all_items' => 'Alle Team-Mitglieder',
'view_item' => 'Team-Mitglied anzeigen',
'search_items' => 'Team-Mitglied suchen',
'not_found' => 'Team-Mitglied nicht gefunden',
'not_found_in_trash' => 'Team-Mitglied nicht im Papierkorb gefunden',
'parent_item_colon' => '',
'menu_name' => 'Team',
);
$args = array(
'labels' => $labels,
'description' => 'Team-Mitglieder erstellen und verwalten',
'hierarchical' => true,
'supports' => array( 'title', 'thumbnail','editor'),
'public' => true,
'show_ui' => true,
'menu_position' => 25,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => true,
'has_archive' => true,
'query_var' => true,
'can_export' => true,
'rewrite' => true,
'capability_type' => 'post',
'menu_icon' => plugins_url( '../img/icon.png',__FILE__),
'has_archive' => true,
'rewrite' => array( 'slug' => 'team' )
);
register_post_type( 'team_manager', $args );
flush_rewrite_rules(); // renew the rewrite rules
//register custom category for the team manager
$labels = array(
'name' => 'Abteilungen',
'singular_name' => 'Abteilung',
'search_items' => 'Abteilung suchen',
'popular_items' => 'Beliebteste Abteilungen',
'all_items' => 'Alle Abteilungen',
'parent_item' => null,
'parent_item_colon' => null,
'edit_item' => 'Abteilung bearbeiten',
'update_item' => 'Abteilung aktualisieren',
'add_new_item' => 'Neue Abteilung',
'new_item_name' => 'Neuer Abteilungsname',
'separate_items_with_commas' => 'Abteilungen durch Komma trennen',
'add_or_remove_items' => 'Abteilungen hinzufügen oder entfernen',
'choose_from_most_used' => 'Aus den meist genutzten Abteilungen wählen',
'not_found' => 'Keine Abteilung gefunden',
'menu_name' => 'Abteilungen',
);
$args = array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'update_count_callback' => '_update_post_term_count',
'query_var' => true,
'rewrite' => array( 'slug' => 'abteilungen' )
);
register_taxonomy( 'team_groups', 'team_manager', $args );
这是我archive-team_manager.php的一部分:
$the_query = new WP_Query(array(
'post_type' => 'team_manager',
'tax_query' => array(
'taxonomy' => 'team_groups',
),
'nopaging' => true,
));
if ( $the_query->have_posts() ) : ?>
<?php
while ( $the_query->have_posts() ) { ?>
<div class="team-member">
<?php $the_query->the_post(); ?>
<div class="team-member-pic">
<?php echo get_the_post_thumbnail( $post_id, 'full', array( 'class' => 'alignleft' ) ); ?>
</div><!-- END .team-member-pic -->
<div class="team-member-meta">
<?php
$prename = get_post_meta( get_the_ID(), 'td-staff-prename', true );
if(! empty($prename)) {
echo '<span class="team-member-prename">' . $prename . '</span><br />';
}
$name = get_post_meta( get_the_ID(), 'td-staff-name', true );
if(! empty($name)) {
echo '<span class="team-member-name">' . $name . '</span>';
}
$td_staff_function = get_post_meta( get_the_ID(), 'td-staff-function', true );
if(! empty($td_staff_function)) {
echo '<p class="team-member-function">' . $td_staff_function . '</p>';
}?>
</div><!-- END .team-member-meta -->
<div class="team-member-desc">
<?php
$td_staff_job_training = get_post_meta( get_the_ID(), 'td-staff-job-training', true );
if(! empty($td_staff_job_training)) {
echo "<p><strong>Berufsausbildung:</strong> " . $td_staff_job_training . "</p>";
}?>
<?php
$td_staff_service_area = get_post_meta( get_the_ID(), 'td-staff-service-area', true );
if(! empty($td_staff_service_area)) {
echo "<p><strong>Arbeitsbereich:</strong> " . $td_staff_service_area . "</p>";
}?>
<?php
$td_staff_employment_since = get_post_meta( get_the_ID(), 'td-staff-employment-since', true );
if(! empty($td_staff_employment_since)) {
echo "<p><strong>Beschäftigt seit:</strong> " . $td_staff_employment_since . "</p>";
}?>
<?php
$td_staff_birthday = get_post_meta( get_the_ID(), 'td-staff-birthday', true );
if(! empty($td_staff_birthday)) {
echo "<p><strong>Geburtsdatum:</strong> " . $td_staff_birthday . "</p>";
}?>
</div><!-- END .team-member-desc -->
</div><!-- END .team-member -->
<?php
}
else :
get_template_part( '/partials/content', 'not-found' );
endif;
我用taxonomy.php 尝试过,但效果不佳。我阅读了所有关于此的 wordpress-codex,但我真的很想知道为什么它不起作用!我需要这样的自定义类别档案的 url 结构:
`url/team`(我的自定义帖子类型中的所有帖子)*完成*
`url/team/labor`(我的自定义帖子中的所有帖子都输入了一个特定的自定义类别)*404 错误*
最后希望大家对我有所了解:)
【问题讨论】:
-
为什么要调用分类法?您想在一个页面中列出所有分类法还是其他任何内容?
-
你好,Arshad,我需要在档案中显示自定义类别,以便我可以显示由类别表示的部门中的工作人员。
标签: wordpress plugins custom-taxonomy