如何重写自定义POST类型档案页面的插件

时间:2018-07-05 作者:andresgl

我有一个名为“案例研究”的CPT,这个CPT的归档页面的slug是www.my-domain.com/case-studies CPT柱的弹头是www.my-domain.com/case-studies/case-study-name.

现在,出于SEO目的,我必须将归档页面的slug改为“推荐案例研究”,因此“案例研究”归档页面的slug必须是www.my-domain.com/testimonials-case-studies/ 而柱子的弹头必须是www.my-domain.com/case-studies/case-study-name (同上)。

最好的方法或解决方案是什么?

到目前为止,我尝试的是:

创建自定义页面模板并将页面的slug更改为/testimonials-case-studies/ 和重定向/case-studies//testimonials-case-studies/ 但是这些帖子www.my-domain.com/case-studies/case-study-name 无法正常工作,因为重定向存在问题。

使用:

\'rewrite\' => array(
    \'slug\' => \'testimonials-case-studies\',
    \'with_front\' => false
),
在自定义post类型中,但post的slug更改为www.my-domain.com/testimonials-case-studies/case-study-name 但必须做到:www.my-domain.com/case-studies/case-study-name

有没有可能的解决方案?

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

通过传递所需的归档段塞has_archive:

$args = array(
    \'rewrite\'     => array( \'slug\' => \'case-studies\' ),
    \'has_archive\' => \'testimonials-case-studies\',
);

结束
如何重写自定义POST类型档案页面的插件 - 小码农CODE - 行之有效找到问题解决它

如何重写自定义POST类型档案页面的插件

时间:2018-07-05 作者:andresgl

我有一个名为“案例研究”的CPT,这个CPT的归档页面的slug是www.my-domain.com/case-studies CPT柱的弹头是www.my-domain.com/case-studies/case-study-name.

现在,出于SEO目的,我必须将归档页面的slug改为“推荐案例研究”,因此“案例研究”归档页面的slug必须是www.my-domain.com/testimonials-case-studies/ 而柱子的弹头必须是www.my-domain.com/case-studies/case-study-name (同上)。

最好的方法或解决方案是什么?

到目前为止,我尝试的是:

创建自定义页面模板并将页面的slug更改为/testimonials-case-studies/ 和重定向/case-studies//testimonials-case-studies/ 但是这些帖子www.my-domain.com/case-studies/case-study-name 无法正常工作,因为重定向存在问题。

使用:

\'rewrite\' => array(
    \'slug\' => \'testimonials-case-studies\',
    \'with_front\' => false
),
在自定义post类型中,但post的slug更改为www.my-domain.com/testimonials-case-studies/case-study-name 但必须做到:www.my-domain.com/case-studies/case-study-name

有没有可能的解决方案?

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

通过传递所需的归档段塞has_archive:

$args = array(
    \'rewrite\'     => array( \'slug\' => \'case-studies\' ),
    \'has_archive\' => \'testimonials-case-studies\',
);

相关推荐

如何将Page-{slug}.php这样的页面模板文件移到子目录中?

我想移动页面模板文件,如page-{slug}.php 到我的主题中的子目录,WordPress将自动识别它们。如果所述表单的页面模板在子目录中不存在,那么WordPress应该回到默认的模板加载规则。我如何才能做到这一点?Note-1: This 对于页面模板和this 链接提及template-parts/page, 这不是一回事。Note-2: 我有多个page-{slug}.php 像页面模板文件一样,我想将它们移动到子目录中,以获得更整洁的文件组织。