我可以在前端和后端为自定义帖子类型设置不同的 url 吗?

问题描述

这个问题很简单。我有自定义帖子类型“项目”。在项目详细信息页面的前端,我不希望“项目”显示在 url 中。我的意思是认项目详细信息认 url 将是 site_url/project/project_url 但我希望新 url 是 site_url/project_url。 我试过了

           'rewrite'        => array(
                'slug'       => '','with_front' => false,),

但这会导致后端和前端的 url 都被更改,并且名为“Projects”的页面也会引发 404 错误

这能做到吗?欢迎任何建议或帮助。

解决方法

根据我的评论,简而言之,这不是 Wordpress 所预期的初始行为。只有帖子或页面应该显示该行为。我刚刚做了几个测试。没有一个答案能正常工作,因为它们都会对某些关键功能产生影响。

如果您没有使用 single-cpt.php,那么接受的答案可能对您有用(例如:https://wordpress.stackexchange.com/a/204210/190376 但话又说回来,我建议您避免弄乱默认的永久链接结构。

在任何情况下,这些示例都没有讨论在修改永久链接结构时刷新重写规则。进行测试,测试该帖子中给出的所有答案(例如:https://wordpress.stackexchange.com/questions/203951/,并将以下内容添加到您的 function.php 文件的顶部。

<?php

/**
* flush_rewrite_rules
* Remove rewrite rules and then recreate rewrite rules.
* @link https://developer.wordpress.org/reference/functions/flush_rewrite_rules/
* Need to be removed before pushing to live.
* Can be replaced on live by: add_action( 'after_switch_theme','flush_rewrite_rules' );
*/
flush_rewrite_rules(); ?>

确保每次都在冲洗是确保测试准确的唯一方法。

,

我试图在不使用任何插件的情况下实现它,但我失败了。所以我使用了插件“https://wordpress.org/plugins/permalink-manager/”,它帮助我实现了我想要的。