不使用存档结构的自定义帖子类型

时间:2012-11-13 作者:kristina childs

我一直在用我的头撞我的iMac,试图找出问题所在。我还浏览了这些档案,并尝试了以下修复方法:

清除可能存在冲突的类别/段塞flush_rewrite_rules( false );

  • \'has_archive\' => true, \'has_archive\' => false (以及许多类似的$args 变化archive-{CPT}.php, archive-{CPTSlug}.php
  • category-{CPT}.php, category-{CPTSlug}.php
  • content-{CPT}.php, content-{CPTSlug}.php
  • {CPT}-archive.php, {CPTSlug}-archive.php
  • 更改CPT和分类的slug,并刷新永久链接www.site.com/CPTSlugwww.site.com/CPT. 然而,CPT的各个帖子在URL上正确显示www.site.com/CPTSlug/post_title.

    当我将这些设置为类别而不是自定义帖子类型时,它工作得非常好。如果有人能发现这个问题,我将不胜感激。

    function register_artists_post_type() {
        register_post_type(\'artists\',array(
            \'labels\' => array(
                    \'name\' => __( \'Artists\' ),
                    \'singular_name\' => __( \'Artist\' ),
                    \'add_new\' => __( \'Add Artist\',\'Artist\' ),
                    \'add_new_item\' => __( \'Add New Artist\' ),
                    \'edit_item\' => __( \'Edit Artist\' ),
                    \'new_item\' => __( \'New Artist\' ),
                    \'view_item\' => __( \'View Artist\' ),
                    \'search_items\' => __( \'Search Artists\' ),
                    \'not_found\' => __( \'No Artists Found\' ),
                    \'not_found_in_trash\' => __( \'No Artists In Trash\' ),
                    \'parent_item_colon\' => \'\'
                ),
            \'public\' => true,
            \'publicly_queryable\' => true,
            \'show_ui\' => true,
            \'query_var\' => true,
            \'has_archive\' => true,
            \'supports\' => array( \'title\',\'editor\',\'excerpt\',\'custom-fields\',\'thumbnail\' ),
            \'rewrite\' => array(\'slug\' => \'artists\'),
            \'taxonomies\' => array(\'large_feature\',\'small_feature\'),
            \'capability_type\' => \'post\',
            \'hierarchical\' => false,
        ));
    }
    add_action(\'init\',\'register_artists_post_type\');
    
    以前有一些类别被称为“艺术家”(slug=artists) 以及包含large_featuresmall_feature. 这些都已从数据库中删除,并已替换为下面的自定义帖子类型和您在注册中看到的slug。

    主题文件如下(虽然我认为这不是问题,因为它显示的是404页,但为了提供尽可能多的相关信息……)

    archive.phparchive_{cpt}.phpcategory.php一二www.site.com/CPTSlug

    单篇文章正确地使用了single_{cpt}.php. 然而,档案并非如此。

  • 3 个回复
    最合适的回答,由SO网友:kristina childs 整理而成

    这个问题没有任何黄金答案,但为了解决这个问题,我确实把它修好了。

    任何有这个问题的人。我强烈建议制作一个wordpress沙盒并在新安装中构建它。我做到了,效果很好。令人沮丧的是,在一个接一个地添加所有函数和插件之后,我从未遇到过同样的问题,即使我使用的是相同的数据库、相同的插件、相同的模板文件和相同的函数functions.php.

    唯一的区别是,我的主题是基于《211》,这次我选择了Starkers,这是一个面向主题开发人员的赤裸裸的主题。因此,它一定是《二十一世纪》的本土作品,这是相互矛盾的。令人遗憾的是,什么样的冲突仍然是个谜。

    SO网友:Oleg Butuzov

    您始终可以尝试筛选rewrite\\u URL数组,并为自定义帖子类型创建规则。

    SO网友:Freddy

    \'hierarchical\' => false,
    ));
    
    尝试删除此后面的逗号。它一定是在这方面出错了。

    结束

    相关推荐

    WooCommerce permalinks

    我有以下问题:当我转到WooCommerce类别时,链接显示如下:http://www.example.com/product-category/category/其中粗体文本是链接,其余是需要显示的产品类别。当我进入WooCommerce设置并进入pages选项卡时,我可以选择更改productcategory slug。如果我在此文本字段中填写以下内容:%product_cat% 链接显示如下:http://www.example.com/category/category/我想在我的链接中显示的是: