我在WordPress中创建了一个名为“找到”的自定义帖子类型。其中,我创建了两个分类法,“宠物”(称为petsfound)和“电子”(称为electronicsfound),这两个分类法都有不同的术语。WordPress自定义分类显示404
如果我查看使用分类术语网站上的帖子,他们表现出正确的,但是,试图查看职位的分类列表显示404。因此,发生以下情况:
https://example.com/found/pets-found/显示404页面。
https://example.com/found/pets-found/dog显示在宠物狗的列表中找到分类。
我已经使用archive.php和taxonomy-petsfound.php进行了测试,但都显示了分类的404。电子分类学也是如此。
以下是“发现” CPT代码和“petsfound”分类:
function found_custom_post_type() {
$labels = array(
'name' => _x('Found Items', 'Post Type General Name', 'lost_and_found'),
'singular_name' => _x('Found', 'Post Type Singular Name', 'lost_and_found'),
'menu_name' => __('Found', 'lost_and_found'),
'name_admin_bar' => __('Found', 'lost_and_found'),
'archives' => __('Item Archives', 'lost_and_found'),
'parent_item_colon' => __('Parent Item:', 'lost_and_found'),
'all_items' => __('All Items', 'lost_and_found'),
'add_new_item' => __('Add New Item', 'lost_and_found'),
'add_new' => __('Add New', 'lost_and_found'),
'new_item' => __('New Item', 'lost_and_found'),
'edit_item' => __('Edit Item', 'lost_and_found'),
'update_item' => __('Update Item', 'lost_and_found'),
'view_item' => __('View Item', 'lost_and_found'),
'search_items' => __('Search Item', 'lost_and_found'),
'not_found' => __('Not found', 'lost_and_found'),
'not_found_in_trash' => __('Not found in Trash', 'lost_and_found'),
'featured_image' => __('Featured Image', 'lost_and_found'),
'set_featured_image' => __('Set featured image', 'lost_and_found'),
'remove_featured_image' => __('Remove featured image', 'lost_and_found'),
'use_featured_image' => __('Use as featured image', 'lost_and_found'),
'insert_into_item' => __('Insert into item', 'lost_and_found'),
'uploaded_to_this_item' => __('Uploaded to this item', 'lost_and_found'),
'items_list' => __('Items list', 'lost_and_found'),
'items_list_navigation' => __('Items list navigation', 'lost_and_found'),
'filter_items_list' => __('Filter items list', 'lost_and_found'),
);
$args = array(
'label' => __('Found', 'lost_and_found'),
'description' => __('Found Post Type', 'lost_and_found'),
'labels' => $labels,
'supports' => array('title', 'editor', 'author', 'thumbnail', 'revisions', 'custom-fields',),
'taxonomies' => array('petsfound', 'electronicsfound', 'countyfound'),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'rewrite' => true,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'page',
);
register_post_type('found', $args);
}
add_action('init', 'found_custom_post_type', 5);
}
function found_taxonomies_pets() {
$labels = array(
'name' => _x('Pets', 'taxonomy general name'),
'singular_name' => _x('Pet', 'taxonomy singular name'),
'search_items' => __('Search Pets'),
'all_items' => __('All Pets'),
'parent_item' => __('Parent Pets'),
'parent_item_colon' => __('Parent Pet:'),
'edit_item' => __('Edit Pet'),
'update_item' => __('Update Pet'),
'add_new_item' => __('Add New Pet'),
'new_item_name' => __('New Pet'),
'menu_name' => __('Pets'),
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'rewrite' => array('slug' => 'found/pets-found', 'with_front' => true),
'show_admin_column' => true,
//'has_archive' => true
);
register_taxonomy('petsfound', 'found', $args);
flush_rewrite_rules();
}
add_action('init', 'found_taxonomies_pets', 1);
- 我已经重新在多个场合固定链接。
- 我测试过将
hierarchical
和with_front
的值从真到假修改过来,以防万一它们有任何影响。 我对404.php模板跑
print_r($wp_query);
和接收的query_vars开始执行以下操作:[query_vars] => Array ([page] => 0 [found] => pets-found [post_type] => found [name] => pets-found
不知道要寻找什么别的事情,所以希望有人能帮助。
干杯
达明
编辑 - 添加分类学,petsfound.php代码
<?php
/**
* The template for displaying Pets Found Taxonomy.
*
* Learn more: http://codex.wordpress.org/Template_Hierarchy
*
* @package dazzling
*/
get_header(); ?>
<div class="breadcrumb" typeof="BreadcrumbList" vocab="http://schema.org/">
<?php if(function_exists('bcn_display'))
{
bcn_display();
}?>
</div>
<?php print_r($wp_query); ?>
<section id="primary" class="content-area col-sm-12 col-md-12 <?php echo of_get_option('site_layout'); ?>">
<main id="main" class="site-main" role="main">
<?php if (have_posts()) : ?>
<header class="page-header">
<h1 class="page-title">
Found Items 2
</h1>
<?php
// Show an optional term description.
$term_description = term_description();
if (! empty($term_description)) :
printf('<div class="taxonomy-description">%s</div>', $term_description);
endif;
?>
</header><!-- .page-header -->
<?php /* Start the Loop */ ?>
<?php while (have_posts()) : the_post(); ?>
<?php
/* Include the Post-Format-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Format name) and that will be used instead.
*/
get_template_part('content', get_post_format());
?>
<?php endwhile; ?>
<?php dazzling_paging_nav(); ?>
<?php else : ?>
<?php get_template_part('content', 'none'); ?>
<?php endif; ?>
</main><!-- #main -->
</section><!-- #primary -->
<?php get_footer(); ?>
不知道这是否有任何影响,但要注册的分类法后类型职位类型已经注册了。 – inarilo
如何?这是放在这个部分的首要吗? 'add_action('init','found_taxonomies_pets',1);'? – damienoneill2001
是的。如果不同的功能以相同的优先级注册,则按照它们添加的顺序执行。 – inarilo