Custom Post Type Permalink

时间:2017-05-01 作者:Samuel

我需要帮助为我制作的自定义帖子类型构建permalink。我想我已经尝试了所有的答案。我希望有人能帮助我。

More Info

自定义帖子在我的url中如下所示www.domain.com/oa/beauty/post-name但我希望它看起来像这样www.domain.com/beauty/post-name/这个beauty 是类别名称的示例。

设置中的自定义永久链接结构设置为/%category%/%postname%/ 我希望我的自定义帖子的永久链接是相同的格式。如果自定义帖子的类别为health 那么它的永久链接就是localhost/health/post-title. 我用过post_type_link 过滤以更改永久链接。

enter image description here

在我的自定义帖子类型中,我尝试重命名url,然后保存它,但当我访问它时,永久链接(url)指向404。即使在设置中重新保存永久链接后,问题仍然存在。

这就是我设置和注册自定义帖子的方式(以防我设置了错误的参数)

$args = array(
\'labels\'                => $labels,
\'public\'                => true,
\'exclude_from_search\'   => false,
\'publicly_queryable\'    => true,
\'show_ui\'               => true,
\'show_in_menu\'          => true, 
\'menu_icon\'             => \'dashicons-star-filled\',     
\'query_var\'             => true,                                              
\'rewrite\'               => array(\'slug\' => \'oa\', \'with_front\' => false),       
\'capability_type\'       => \'post\',  
\'has_archive\'           => true,  
\'hierarchical\'          => false, 
\'menu_position\'         => 1,   
\'supports\'              => array(\'title\', \'thumbnail\', \'comments\'),
\'taxonomies\'            => array(\'category\', \'post_tag\'), 
\'show_in_rest\'          => true, 
\'rest_base\'             => \'oa-api\',
\'rest_controller_class\' => \'WP_REST_Posts_Controller\',
);
根据我的研究,似乎我应该add_rewrite_rule 方法但我不明白重写是如何工作的。这是正确的方向还是我遗漏了什么?

我想通过编程来解决这个问题,而不是使用插件。

3 个回复
SO网友:Patrick S

我无法发表评论,因此将此作为“答案”发表。

一个简单的搜索就会在stackoverflow本身中找到几十个关于这方面的问题,下面是其中之一。

Add category base to url in custom post type/taxonomy

假设您试图在URL中获取分类术语slug。

SO网友:Maher Aldous

抱歉,我不能发表评论,但我想澄清一些关于自定义帖子类型的问题。这不是一个完整的答案,所以如果我错了,请编辑它。

Wordpress有自己的帖子,这是标准帖子。可以在这里找到enter image description here

Woocommerce有自己的自定义帖子类型,即product。如果您下载WooCommerce插件,可以在此处找到它enter image description here

因此,正如您在图像中看到的那样,每个高级自定义帖子类型都有自己的类别和标签。那么,您是否已经检查了自定义菜单中是否有与您自己的类别相同的菜单类型。因为如果你自己的自定义帖子类型没有自己的类别和标签菜单,那么很难从wordpress标准帖子中获得你想要的类别。这就像从另一个帖子类型或默认帖子类型中获取类别一样。

SO网友:Arturo Gallegos

过去我是用https://developer.wordpress.org/reference/functions/add_rewrite_rule/

使用简单的regexp,最好的解决方案可以读取和检测URL中的所有参数,并重写以显示正确的帖子

相关推荐

Permalinks - Archives

WordPress文档说:WordPress offers you the ability to create a custom URL structure for your permalinks and archives. https://codex.wordpress.org/Settings_Permalinks_Screen 我看到此屏幕将如何为特定帖子/页面创建永久链接,但我没有看到此设置屏幕上关于如何为存档帖子/页面创建链接的任何其他详细信息。有人能澄清一下吗?