为什么WordPress最后一直在我的CPT永久链接上添加邮政编码?

时间:2021-06-04 作者:mach2

另一个问题:如何更改CPT的Permalink结构,使帖子名位于URL的中间,而不是末尾,例如。/a/%postname%/b/c

在更改自定义帖子类型中的permalink结构时,有什么建议吗?现在我希望结构是/a/%postname%/b/c 但它最终会默认添加postname,如/a/%postname%/b/c/%postname% .

这是我的register_post_type 密码

$args = array(
    \'label\' => __(\'testCPT\', \'text_domain\'),
    \'description\' => __(\'Site articles.\', \'text_domain\'),
    \'labels\' => $labels,
    \'supports\' => array(\'title\', \'revisions\'),
    \'hierarchical\' => false,
    \'public\' => true,
    \'show_ui\' => true,
    \'show_in_menu\' => true,
    \'menu_position\' => 5,
    \'show_in_admin_bar\' => true,
    \'show_in_nav_menus\' => true,
    \'can_export\' => true,
    \'has_archive\' => true,
    \'exclude_from_search\' => false,
    \'publicly_queryable\' => true,
    \'rewrite\' => array(
        \'slug\' => \'/a/%postname%/b/c\',
        \'with_front\'    => false
    ),
);
生成的结构:

http://localhost/project/a/yoda/b/c/yoda/

所需结构:

http://localhost/project/a/yoda/b/c/

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

请注意,您应该使用%<post type>%slug 值,因此如果post类型为test_cpt, 然后你会使用%test_cpt% 如中所示/a/%test_cpt%/b/c.

将帖子名/slug移到permalink结构的中间或开头实际上非常简单:

注册帖子类型:

// replace test_cpt with the correct post type
register_post_type( \'test_cpt\', $args );

global $wp_rewrite;
// replace test_cpt with the correct post type
$wp_rewrite->extra_permastructs[\'test_cpt\'][\'struct\'] = \'/a/%test_cpt%/b/c\';
记住刷新重写规则,只需访问永久链接设置页面即可完成。

相关推荐

Page-slug.php不起作用,但仅适用于特定的插件

我正在尝试创建一个名为“的页面”;“漫画”;带着鼻涕虫“;“漫画”;用作我的网络经济网站的主目录。我已经创建了一个页面的漫画。然而,当我转到页面时,它只是链接回索引。php。当我尝试使用ID时,它也不起作用。当我尝试在其他slug和id中使用相同的格式时,效果很好,所以我知道WordPress工作正常。我认为这可能与我在函数中的某些内容相冲突。php,但是没有其他名称使用;“漫画”;(我已链接到下面的文件,供任何人查看)。我还尝试清理数据库中可能使用该slug的任何已删除项目,但一无所获。有人知道是什么导