POST类型存档页面不起作用

时间:2013-05-15 作者:markyeoj

我使用自定义帖子类型UI注册了一个自定义帖子类型,并创建了一个归档页面,并将其命名为archive recipe。php,“recipe”是我的自定义帖子类型名称。但它不起作用,而是使用默认值archive.php. 我设置了has-archivetrue 但仍然不起作用。如何解决这个问题?

代码如下:

register_post_type(
    \'recipe\', array(
\'label\' => \'Recipe\',
    \'description\' => \'This is a Recipe Custom Post Type\',
    \'public\' => true,
    \'show_ui\' => true,
    \'show_in_menu\' => true,
    \'capability_type\' => \'post\',
    \'hierarchical\' => true,
    \'rewrite\' => array(\'slug\' => \'\'),
    \'query_var\' => true,
    \'has_archive\' => true,
    \'exclude_from_search\' => false,
    \'supports\' => array(\'title\',\'editor\',\'excerpt\',\'trackbacks\',\'custom-fields\',\'comments\',\'revisions\',\'thumbnail\',\'author\',\'page-attributes\',),
    \'labels\' => array (
          \'name\' => \'Recipe\',
          \'singular_name\' => \'Recipe\',
          \'menu_name\' => \'Recipe\',
          \'add_new\' => \'Add Recipe\',
          \'add_new_item\' => \'Add New Recipe\',
          \'edit\' => \'Edit\',
          \'edit_item\' => \'Edit Recipe\',
          \'new_item\' => \'New Recipe\',
          \'view\' => \'View Recipe\',
          \'view_item\' => \'View Recipe\',
          \'search_items\' => \'Search Recipe\',
          \'not_found\' => \'No Recipe Found\',
          \'not_found_in_trash\' => \'No Recipe Found in Trash\',
          \'parent\' => \'Parent Recipe\',
    ),
    )
);

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

根据标准注册,您应具备以下条件:

例如,一个名为“recipe”的post类型是一个recipe post归档。com/recipe/

  • 以表单示例为例的带有URL的recipe帖子。com/recipe/helloworldrecipe/A模板archive-recipe.phpsingle-recipe.php

    \'rewrite\' => array(\'slug\' => \'\'),
    
    这表明您正在尝试从配方URL中删除“配方”前缀。这样做的结果是,您的配方后期存档现在是:

    site URL + \'\'
    
    主页上已经有了这些内容,因此您的帖子档案无法访问。

    最重要的是,它实际上并不像你想象的那样。您不能仅使用register\\u post\\u type rewrite参数将自定义帖子类型更改为其URL中没有“/配方/”部分。您需要进行其他更改,这也会引入潜在的破坏站点的错误。

    例如,如果您有一个名为“pumpkin”的页面和一个名为“pumpkin”的食谱,WordPress在访问示例时如何知道加载哪个。玉米/南瓜?它没有,所以它将使用它首先找到的任何重写规则。

    所以,如果你有一个馅饼的配方,但没有一个叫做馅饼的页面,它寻找这个页面却没有找到,你得不到配方,你就会得到一个404。

    所以我强烈建议你放弃你的尝试。这让你的URL变得不那么有意义,尽管SEO毫无意义;“专家”;比方说,如果它做了任何事情,那么它更有可能损害而不是帮助你的搜索引擎排名(很可能对你毫无帮助)。

    因此,请删除rewrite参数,然后重新保存永久链接

    发布此链接后更新:

    http://seemynewwebsite.com/g2bm/recipecategory/appetizers/

    现在很明显,您正在加载一个分类法,并期望得到一个post类型的归档。分类法不是post类型,正如您在此处看到的,它们不共享相同的回退:

    enter image description here

    更重要的是,他们会这样做是没有意义的。例如,在这些场景中将使用哪个post类型存档模板:

    一种分类法,包含两种类型的帖子类型:人和位置。它会退回到存档位置吗。php或归档人员。php

  • 用户分类法,指的是用户,而不是帖子,因此,请为分类法使用分类法模板,而不是帖子类型存档模板。在这种情况下,分类互惠分类法。php

  • SO网友:Александр Подгорных

    将此筛选器添加到函数中。php文件:

    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\', \'your-custom-post-type-here\'
            ));
          return $query;
        }
    }
    add_filter( \'pre_get_posts\', \'namespace_add_custom_types\' );
    

    结束

    相关推荐

    POST类型存档页面不起作用 - 小码农CODE - 行之有效找到问题解决它

    POST类型存档页面不起作用

    时间:2013-05-15 作者:markyeoj

    我使用自定义帖子类型UI注册了一个自定义帖子类型,并创建了一个归档页面,并将其命名为archive recipe。php,“recipe”是我的自定义帖子类型名称。但它不起作用,而是使用默认值archive.php. 我设置了has-archivetrue 但仍然不起作用。如何解决这个问题?

    代码如下:

    register_post_type(
        \'recipe\', array(
    \'label\' => \'Recipe\',
        \'description\' => \'This is a Recipe Custom Post Type\',
        \'public\' => true,
        \'show_ui\' => true,
        \'show_in_menu\' => true,
        \'capability_type\' => \'post\',
        \'hierarchical\' => true,
        \'rewrite\' => array(\'slug\' => \'\'),
        \'query_var\' => true,
        \'has_archive\' => true,
        \'exclude_from_search\' => false,
        \'supports\' => array(\'title\',\'editor\',\'excerpt\',\'trackbacks\',\'custom-fields\',\'comments\',\'revisions\',\'thumbnail\',\'author\',\'page-attributes\',),
        \'labels\' => array (
              \'name\' => \'Recipe\',
              \'singular_name\' => \'Recipe\',
              \'menu_name\' => \'Recipe\',
              \'add_new\' => \'Add Recipe\',
              \'add_new_item\' => \'Add New Recipe\',
              \'edit\' => \'Edit\',
              \'edit_item\' => \'Edit Recipe\',
              \'new_item\' => \'New Recipe\',
              \'view\' => \'View Recipe\',
              \'view_item\' => \'View Recipe\',
              \'search_items\' => \'Search Recipe\',
              \'not_found\' => \'No Recipe Found\',
              \'not_found_in_trash\' => \'No Recipe Found in Trash\',
              \'parent\' => \'Parent Recipe\',
        ),
        )
    );
    

    2 个回复
    最合适的回答,由SO网友:Tom J Nowell 整理而成

    根据标准注册,您应具备以下条件:

    例如,一个名为“recipe”的post类型是一个recipe post归档。com/recipe/

  • 以表单示例为例的带有URL的recipe帖子。com/recipe/helloworldrecipe/A模板archive-recipe.phpsingle-recipe.php

    \'rewrite\' => array(\'slug\' => \'\'),
    
    这表明您正在尝试从配方URL中删除“配方”前缀。这样做的结果是,您的配方后期存档现在是:

    site URL + \'\'
    
    主页上已经有了这些内容,因此您的帖子档案无法访问。

    最重要的是,它实际上并不像你想象的那样。您不能仅使用register\\u post\\u type rewrite参数将自定义帖子类型更改为其URL中没有“/配方/”部分。您需要进行其他更改,这也会引入潜在的破坏站点的错误。

    例如,如果您有一个名为“pumpkin”的页面和一个名为“pumpkin”的食谱,WordPress在访问示例时如何知道加载哪个。玉米/南瓜?它没有,所以它将使用它首先找到的任何重写规则。

    所以,如果你有一个馅饼的配方,但没有一个叫做馅饼的页面,它寻找这个页面却没有找到,你得不到配方,你就会得到一个404。

    所以我强烈建议你放弃你的尝试。这让你的URL变得不那么有意义,尽管SEO毫无意义;“专家”;比方说,如果它做了任何事情,那么它更有可能损害而不是帮助你的搜索引擎排名(很可能对你毫无帮助)。

    因此,请删除rewrite参数,然后重新保存永久链接

    发布此链接后更新:

    http://seemynewwebsite.com/g2bm/recipecategory/appetizers/

    现在很明显,您正在加载一个分类法,并期望得到一个post类型的归档。分类法不是post类型,正如您在此处看到的,它们不共享相同的回退:

    enter image description here

    更重要的是,他们会这样做是没有意义的。例如,在这些场景中将使用哪个post类型存档模板:

    一种分类法,包含两种类型的帖子类型:人和位置。它会退回到存档位置吗。php或归档人员。php

  • 用户分类法,指的是用户,而不是帖子,因此,请为分类法使用分类法模板,而不是帖子类型存档模板。在这种情况下,分类互惠分类法。php

  • SO网友:Александр Подгорных

    将此筛选器添加到函数中。php文件:

    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\', \'your-custom-post-type-here\'
            ));
          return $query;
        }
    }
    add_filter( \'pre_get_posts\', \'namespace_add_custom_types\' );
    

    相关推荐