自定义投递类型URL

时间:2018-09-16 作者:Mehmood Ahmad

实际上,我需要更改自定义帖子类型的url结构(我还想自定义分类url,但只针对这个问题的帖子,以避免混淆)

我的自定义帖子类型是具有slug的属性properties 它有一个分类法“属性类别”,其中包含slugproperty_category

要求目前定制岗位类型的结构如下:https://domain.com/properties/postname

对于自定义帖子类型,我希望在url中包含类别和子类别,并删除properties 鼻涕虫状https://domain.com/property_category/property_sub_category/**/postname

通过使用插件(自定义帖子类型Permalinks),我可以获得这个urlhttps://domain.com/properties/property_category/property_sub_category/**/postname

正如你所看到的,我上面的urlproperties 我必须把它移走,所以在我来之前一切都很好。

之后,我从url中删除了属性,并添加了功能来检查我的属性自定义帖子类型以及帖子和页面,以便我的url成为https://domain.com/property_category/sub_category/**/postname 但这意味着给我404。

此url正在运行,但我不需要此urlhttps://domain.com/property_postname

我相信WordpressReWrite API 可以解决此问题,但无法找到实际的解决方案。

在此方面的任何帮助都将不胜感激。

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

我面临的问题已经详细描述过了。我想wordpress重写api可以解决这个问题,所以我找到了解决方案。我的帖子只有两个主要类别,所以我将它们映射到我的属性,因为我正在从url中删除custom\\u post\\u type name,所以应该有一些东西来标识和映射url。

/**
 * Rewriting url
 */
function mak_rewrite_add_rewrites()
{

    // Mapping Property
    add_rewrite_rule(
        \'^category_one_name(/[\\S]*)+(/[\\S]*)$\',
        \'index.php?property=$matches[2]\',
        \'top\'
    );

    add_rewrite_rule(
        \'^category_two_name(/[\\S]*)+(/[\\S]*)$\',
        \'index.php?property=$matches[2]\',
        \'top\'
    );
}
add_action(\'init\', \'mak_rewrite_add_rewrites\');
$matches[2] 表示从正则表达式的第二个括号中获取值。

结束

相关推荐

Let me choose permalinks

我需要选择一个叫做“mysite”的永久链接。com/1418”,但wordpress不断在永久链接中添加“-2”。通常这意味着我已经有了一个名为“相同”的页面,它位于垃圾箱或其他地方。但这里的情况似乎并非如此。我尝试在设置中重置永久链接,这也没有帮助。我如何使用数字作为页面名称permalink,而不用wordpress在permalink中添加“-2”。