像特定子目录中的页面一样进行后归档

时间:2014-04-24 作者:Alexander Taubenkorb

我有一个网页,上面有属于特定类别的帖子(例如项目)。我想显示特定类别(如页面)的存档。

现状

现场结构与此类似:

/我们的工作/our-work/projects <;-在这里,我想拥有项目的存档。。。

我使用以下设置:

  • category_base = 类别permalink_structure = /新闻/%类别%/%postname%/
我可以通过示例访问项目档案。com/cat/项目。

我已经尝试了以下方法,但没有成功:

删除page_for_posts 并将其设置为新创建的页面“新闻”。

在中包括以下代码。wordpress部分之前的htaccess文件(带和不带[L]: 如果我使用[L,r=301] 我收到301重定向。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^/our-work/projects/$ /cat/projects/
</IfModule>
我想曾经有一段时间它在某种程度上起了作用,但我不记得我是怎么做到的。(可能该页面只显示所有帖子,因为它没有其他信息)。

我的问题是有更好的方法吗?怎样(我考虑创建一个真实的页面并编写一个短代码,其中包括/显示项目类别中的所有帖子)
  • 如果没有,我该怎么做

  • 2 个回复
    最合适的回答,由SO网友:Tyler Carter 整理而成

    您可以使用自定义slug permalink结构注册自定义post类型。

    $args = array(
       \'rewrite\' => array( \'slug\' => \'our-work/book\' ),
    );
    register_post_type( \'projects\', $args );
    

    SO网友:Alexander Taubenkorb

    泰勒的回答几乎奏效了。我必须至少设置arraykeyshas_archivepublic 真正使用我们的工作/项目/

    $args = array(
        \'label\'       => \'projects\',
        \'description\' => \'Projects\',
        \'rewrite\'     => array( \'slug\' => \'our-work/projects\' ),
        \'has_archive\' => true, //so I can use /our-work/projects/ (archive)
        \'public\'      =>\'true\', //otherwise it included other posts in the archive
        \'show_ui\'     => true, //to see it in the admin menu
    );
    register_post_type( \'projects\', $args );
    
    我也不得不打电话flush_rewrite_rules() 更新permalink结构(请参阅https://codex.wordpress.org/Function_Reference/register_post_type#Flushing_Rewrite_on_Activation 详细信息)。

    结束

    相关推荐

    Show Pages in Categories

    通过将此代码添加到函数中,我创建了category函数。php:function page_category() { register_taxonomy_for_object_type(\'category\', \'page\'); } // Add to the admin_init hook of your theme functions.php file add_action( \'init\', \'page_category\' ); 但问