我有一个网页,上面有属于特定类别的帖子(例如项目)。我想显示特定类别(如页面)的存档。
现状
现场结构与此类似:
/我们的工作/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>
我想曾经有一段时间它在某种程度上起了作用,但我不记得我是怎么做到的。(可能该页面只显示所有帖子,因为它没有其他信息)。
我的问题是有更好的方法吗?怎样(我考虑创建一个真实的页面并编写一个短代码,其中包括/显示项目类别中的所有帖子)
如果没有,我该怎么做是否可以在这个“子目录”中设置此类职位,如我们的工作/项目/acme
最合适的回答,由SO网友:Tyler Carter 整理而成
您可以使用自定义slug permalink结构注册自定义post类型。
$args = array(
\'rewrite\' => array( \'slug\' => \'our-work/book\' ),
);
register_post_type( \'projects\', $args );
SO网友:Alexander Taubenkorb
泰勒的回答几乎奏效了。我必须至少设置arraykeyshas_archive
和public
真正使用我们的工作/项目/
$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 详细信息)。