【问题标题】:Custom post type custom taxonomy not found未找到自定义帖子类型自定义分类
【发布时间】:2014-08-21 11:11:07
【问题描述】:

我在我的网站上创建了一个名为 Homes 的自定义帖子类型,它可以正常工作。我创建了一个自定义分类法,命名为“可用性类别”,并在该类别中创建了一个名为“现在可用”的类别。分类显示在我的 Wordpress 后端,但是当我在 home/available-now 查看类别时,我收到 404 错误。

这是我的自定义帖子类型的代码:

register_post_type( 'Homes',
    array(
        'labels' => array(
            'name' => __( 'Homes' ),
            'singular_name' => __( 'Homes Item' ),
            'add_new_item' => __('Add New Homes Item'),
            'edit_item' => __('Edit Homes Item'),
            'new_item' => __('New Homes Item'),
        ),
        'supports' => array('title', 'thumbnail', 'editor'),
        'taxonomies' => array('homes-category'),
        'public' => true,
        'has_archive' => false,
        'show_in_nav_menus'   => TRUE,
        'show_in_menu'        => TRUE,
        'rewrite' => array( 
            'slug' => 'homes',
            'with_front' => false,
            'hierarchical' => false,

            ),
    )
);

以及我的自定义分类的代码:

register_taxonomy(
    'homes-category',
    'homes',
    array(
        'hierarchical' => true,
        'label' => __( 'Availability Category' ),
        'rewrite' => array(
            'slug' => 'homes',
            'with_front' => false,
        ),
    )
);

有人可以帮忙吗?我已经搜索了几个小时来解决问题,但到目前为止我所尝试的都没有奏效。任何帮助将不胜感激。

【问题讨论】:

    标签: wordpress custom-post-type permalinks custom-taxonomy


    【解决方案1】:

    我也有同样的问题。我做了一个自定义帖子类型“产品”和自定义分类“产品”,当我试图访问 www.domain.com/products 时,这让我付出了 404 错误。地址 www.domain.com/products/product-01 没问题。

    因此,您必须将自定义帖子类型重命名为“产品”,将 CTP 重命名为“产品”,这样它们就不同了。首先删除自定义帖子类型和自定义分类。然后注册您的新 CPT 和 CTP 用不同的名字!!!

    CPT - 自定义帖子类型 CTP - 自定义分类类型

    【讨论】:

      【解决方案2】:

      问题是您为自定义帖子类型“homes”分配了与分类“homes-category”相同的重写 slug。

      要解决您的问题,只需将用于注册自定义帖子类型的代码更改为:

      register_post_type( 'Homes',
          array(
              'labels' => array(
                  'name' => __( 'Homes' ),
                  'singular_name' => __( 'Homes Item' ),
                  'add_new_item' => __('Add New Homes Item'),
                  'edit_item' => __('Edit Homes Item'),
                  'new_item' => __('New Homes Item'),
              ),
              'supports' => array('title', 'thumbnail', 'editor'),
              'taxonomies' => array('homes-category'),
              'public' => true,
              'has_archive' => false,
              'show_in_nav_menus'   => TRUE,
              'show_in_menu'        => TRUE,
              'rewrite' => array(
                  'slug' => 'home', //remove the "s" so that it's not fighting with Taxonomy
                  'with_front' => false,
                  'hierarchical' => false,
      
                  ),
          )
      );
      

      然后重新访问您的永久链接页面,然后重试。现在的好处是,您还可以重新创建一个名为“homes”的页面,您可以使用它创建自定义模板。我已经测试了所有这些并且它有效。 :)

      【讨论】:

      • 我按照您的建议进行了更改,但是当我去 home/available-now 时仍然收到 404。
      • 您是否为“现在可用”分类分配了一个家?
      • 我不确定您将住宅分配给“现在可用”分类是什么意思。我确实发现如果我将注册分类代码放在自定义帖子类型代码之上,它就可以工作。
      • 奇怪,因为在我的 Functions.php 中,我已经按照您最初的方式订购了它。我的意思是,在您新创建的自定义帖子类型中,您是否在发布之前选择了分类。
      • 将分类法移到自定义帖子类型之上最初是可行的,但我意识到这样做并不能完成我需要它做的事情。是的,我在发布之前选择了分类法。
      【解决方案3】:

      检查您是否有使用相同 slug 的任何冲突页面/帖子(即:您是否创建了名称为“homes”的页面?)。如果你这样做了,请删除它们并确保也清空垃圾箱。

      【讨论】:

      • 我确实有一个名为 home 的页面。我删除它并从垃圾箱中清空它,但我仍然收到 404 错误。
      • 您在执行此操作后是否再次访问了永久链接设置?
      • 是的。我什至将其设置为默认值,然后返回帖子类型,但仍然收到 404。我不知道如何解决这个问题。
      【解决方案4】:

      只需访问 WP 管理 > 设置 > 永久链接

      ,即可尝试刷新您的永久链接

      现在看看你是否仍然得到 404..

      【讨论】:

      • 感谢您的回复。我已经尝试了很多次,但我仍然得到一个 404。如果我将永久链接设置为默认值,页面仍然可以工作。当它们设置为帖子名称时,我只会得到 404。
      猜你喜欢
      • 2014-10-26
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 2012-09-18
      相关资源
      最近更新 更多