【问题标题】:WordPress - 404 error on custom post type single pagesWordPress - 自定义帖子类型单页上的 404 错误
【发布时间】:2015-11-17 20:17:55
【问题描述】:

我使用自定义帖子类型,它也应该有自定义分类。当我访问存档页面 /kollektion/ 时,我可以看到这个 CPT 的所有项目,当我访问 /kollektion/mytaxonomy1/ 时,我可以看到分配给这个分类的所有项目。

当我单击自定义帖子类型的单个项目时,我收到 404 错误。我还尝试进入我的 WP 仪表板并再次更改并重新保存永久链接 - 没有成功。

是否有人在我的声明中看到导致自定义帖子类型的单页出现 404 错误的错误?

谢谢。

functions.php:分类法

// register two taxonomies to go with the post type
function sm_register_taxonomy() {
    // set up labels
    $labels = array(
        'name'              => 'Kollektionen Categories',
        'singular_name'     => 'Kollektion Category',
        'search_items'      => 'Search Kollektion Categories',
        'all_items'         => 'All Kollektion Categories',
        'edit_item'         => 'Edit Kollektion Category',
        'update_item'       => 'Update Kollektion Category',
        'add_new_item'      => 'Add New Kollektion Category',
        'new_item_name'     => 'New Kollektion Category',
        'menu_name'         => 'Kollektion Categories'
    );
    // register taxonomy
    register_taxonomy( 'kollektionen', 'kollektion', array(
        'hierarchical' => true,
        'labels' => $labels,
        'query_var' => true,
        'show_admin_column' => true,
        'rewrite' => array(
            'slug' => 'kollektion', // This controls the base slug that will display before each term
            'with_front' => false // Don't display the category base before
        ),
    ) );
}
add_action( 'init', 'sm_register_taxonomy' );

functions.php:自定义帖子类型

// Register Custom Post Type Kollektion
    function post_type_kollektion() {

        $labels = array(
            'name'                  => _x( 'Kollektionen', 'Post Type General Name', 'genesis' ),
            'singular_name'         => _x( 'Kollektion', 'Post Type Singular Name', 'genesis' ),
            'menu_name'             => __( 'Kollektion', 'genesis' ),
            'name_admin_bar'        => __( 'Kollektion', 'genesis' ),
            'parent_item_colon'     => __( 'Parent Item:', 'genesis' ),
            'all_items'             => __( 'All Items', 'genesis' ),
            'add_new_item'          => __( 'Add New Item', 'genesis' ),
            'add_new'               => __( 'Add New', 'genesis' ),
            'new_item'              => __( 'New Item', 'genesis' ),
            'edit_item'             => __( 'Edit Item', 'genesis' ),
            'update_item'           => __( 'Update Item', 'genesis' ),
            'view_item'             => __( 'View Item', 'genesis' ),
            'search_items'          => __( 'Search Item', 'genesis' ),
            'not_found'             => __( 'Not found', 'genesis' ),
            'not_found_in_trash'    => __( 'Not found in Trash', 'genesis' ),
            'items_list'            => __( 'Items list', 'genesis' ),
            'items_list_navigation' => __( 'Items list navigation', 'genesis' ),
            'filter_items_list'     => __( 'Filter items list', 'genesis' ),
        );
        $args = array(
            'label'                 => __( 'Kollektion', 'genesis' ),
            'description'           => __( 'Kollektionen', 'genesis' ),
            'labels'                => $labels,
            'supports'              => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', ),
            'taxonomies'            => array( 'post_tag', 'kollektionen' ),
            'hierarchical'          => false,
            'public'                => true,
            'show_ui'               => true,
            'show_in_menu'          => true,
            'menu_position'         => 5,
            'show_in_admin_bar'     => true,
            'show_in_nav_menus'     => true,
            'can_export'            => true,
            'has_archive'           => 'kollektion',
            'exclude_from_search'   => false,
            'publicly_queryable'    => true,
            'capability_type'       => 'page',
        );
        register_post_type( 'kollektion', $args );

    }
    add_action( 'init', 'post_type_kollektion');
}

function namespace_add_custom_types( $query ) {
  if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
    $query->set( 'post_type', array(
     'post', 'nav_menu_item', 'kollektion', 'kollektionen'
        ));
      return $query;
    }
}
add_filter( 'pre_get_posts', 'namespace_add_custom_types' );

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    看起来您对分类和自定义帖子类型有相同的影响。尝试更改分类(或 CPT)的 slug 并重新保存永久链接 - 这应该会有所帮助。

    【讨论】:

    • 嗯? CPT 是 /kollektion/,分类是 /kollektionen/,但最后我想访问 /kollektion/ -> 显示 CPT 中的所有项目,以及 /kollektion/customtaxonomy/ 显示 CPT 中分配给的所有项目customtaxonomy - 这不可能吗?
    • 我已经在我的 WordPress 安装中尝试过它并且更改它可以工作。你有 'slug' => 'kollektion',在术语声明中
    猜你喜欢
    • 2015-06-07
    • 1970-01-01
    • 2020-03-22
    • 2014-09-29
    • 2023-03-13
    • 2017-09-22
    • 1970-01-01
    • 2014-07-12
    • 2016-06-05
    相关资源
    最近更新 更多