为什么WordPress选择的是Archive.php而不是page.php?

时间:2022-03-04 作者:hnnnng

我有一个自定义帖子类型(CPT),名为;“职业”;带“,”;“职业”;作为slug。

我用Elementor创建了我的职业列表页面(页面slug也是“职业”),删除了Posts小部件,并使用查询设置选择我的职业CPT。然后,我再次使用Elementor为我的单个职业帖子创建了一个帖子主题。这些单篇帖子可以正常工作,但现在当我单击返回我的职业列表页面时,我得到的归档页面与我用Elementor创建的页面完全不同(我看到该页面现在使用的是带有Reveal template插件的archive.php)。我试图通过选择自定义页面模板来强制使用该模板,但这没有帮助。我还尝试重置永久链接,但也没有帮助。

当我试图在Elementor中打开我的职业页面时,我会得到;无法加载预览错误;。当我将页面URL从;“职业”;“到”;“职业生涯”;或“或”;未结头寸;然后错误消失了,我现在可以用Elementor打开页面(使用新的slug)。

CPT段塞不能与页面段塞相同,这是正确的假设吗?有没有更好的方法来实现这一点(最好对页面和CPT使用相同的slug)?甚至在Elementor pro的帮助下?

这是我的CPT代码:

function create_careers_posttype() {
    register_post_type( \'careers\',
        array(
            \'labels\' => array(
                \'name\' => __(\'Careers\'),
                \'singular_name\' => __(\'Career\')
            ),
            \'public\' => true,
            \'has_archive\' => true,
            \'rewrite\' => array(\'slug\' => \'careers\'),
            \'show_in_rest\' => true,
            \'supports\' => array(\'title\', \'page-attributes\'),
        )
    );
}
add_action( \'init\', \'create_careers_posttype\' );

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

你不能用子弹careers 作为页面slug,因为它已经用作CPT名称。/careers 是你的帖子类型存档,这就是它被加载的原因archive.php 而不是page.php.

即使您确实有一个带有该段塞的页面,归档重写规则也具有更高的优先级。您还可以在生成的站点地图中找到它/careers slug还用于为该类型的各个帖子生成永久链接。

您所能得到的最接近的方法是关闭存档。

我试图通过选择一个自定义页面模板来强制使用该模板,但没有任何帮助。

这不起作用,因为页面从来都不是从显示开始的。WordPress认为,根据主查询,它是在类型为careers 并将根据标准模板层次结构进行操作,选择它能找到的最具体的匹配模板。E、 g.如果archive-careers.php 如果可用,则会加载该文件。

请记住,选择的模板由主查询的参数决定。WordPress没有加载页面,因为您在page.php, 它在另一个方向,它装载了page.php 因为主查询说它是针对一个页面的,如果查询中的页面指定了自定义页面模板,它可能会决定加载该页面模板。但如果这是一个没有发生的档案。查看模板层次结构以了解更多详细信息。

甚至在Elementor pro的帮助下?

如果您想使用Elementor设置归档的样式,那么您需要联系Elementor支持部门或在Elementor社区中发布。第三方插件开发支持在这里是离题的,不在此堆栈范围内。

相关推荐

为什么我的可过滤公文包页面在Slug按钮和Slug输出WORDRPESS之间不能完美地工作?

我目前在Wordpress中有一个公文包自定义页面,可以根据需要工作,但我有一个问题。问题是,当我单击其中一个slug按钮时,主体/输出不是我想要的那样工作,例如在slug IOS中有3个项目,当我单击IOS slug中的“显示3个项目”时,应该是这样,但在这只显示1个项目。我读过很多类似于这个问题的教程,但都没有解决,请有人帮帮我,我一直在尝试解决这个问题,但仍然没有成功。以下是我读过的一篇文章:https://danny.care/a-responsive-filterable-portfolio-t