我正在使用Wordpress 5.4。我使用以下代码创建了一个CPT:
$args = array(
\'labels\' => $labels,
\'description\' => \'Some description\',
\'public\' => true,
\'menu_position\' => 5,
\'supports\' => array( \'title\', \'editor\', \'thumbnail\', \'excerpt\', \'comments\' ),
\'has_archive\' => true,
);
register_post_type( \'article\', $args );
has_archive
我的理解是
/articles
我应该看到所有类型的帖子
article
. 但事实并非如此。当我去的时候
/articles
我看到了我的正常帖子。我没有
article-archive.php
在我的系统上,并理解这是没有必要的。我有一个
./wp-content/themes/twentynineteen/archive.php
我用了一个儿童主题
twnetynineteen
在我的网站上。
我怎样才能解决这个问题?
EDIT:
我试过了/article
但这并不能解决问题我尝试过重新保存永久链接(设置->永久链接),但没有解决问题上面的代码位于插件中我can 如果我去看我的文章/?article=test-article
哪里test-article
是我文章的一部分我正在使用nginx
具有this 配置
SO网友:Tom J Nowell
has\\u archive设置为true,我的理解是,现在当我转到/文章时,我应该看到所有文章类型的帖子。
你的代码中没有提到文章,帖子类型的slug是article
, 因此,其存档的URL应为/article/
. 如果你想的话articles
你必须这么说。
在这种情况下,注册帖子类型或分类法,但不刷新永久链接以添加其规则,这是典型的错误。转到永久链接设置页面,然后重新保存。
至于模板archive.php
, 这与页面是否加载无关。模板层次结构将回退到index.php
如果找不到其他模板,则主题需要该模板。此外,archive.php
不会使URL成为存档。URL使其成为一个归档文件,而事实上它是一个归档文件使WP加载该模板。WP已经确定了在选择模板之前要获取哪些帖子。