如何让自定义POST类型识别漂亮的固定链接变量?

时间:2019-08-24 作者:Bill

我正在使用PODS在我的网站上创建一个名为“automobile”的自定义帖子类型。这将产生如下所示的permalink结构:

/automobile/automobile-page
我希望能够通过添加1或2个附加元素将变量发送到此页面

/automobile/{brand is the default page}/%model%/%edition%/
例如

/automobile/porsche/911/carrera
因此,根汽车页面将是品牌(porsche),它称为PODS模板。PODS模板执行允许用户深入查看的代码。对于SEO来说,结构看起来像这样是很重要的。

我已经尝试了几十种解决方案,但只要我在页面之外添加任何内容,我就会收到404错误或被重定向到主页。

从我所研究的一切来看,这应该可以添加到函数中。php:

add_action(\'init\',\'initialize_automobile_vars\');

function initialize_automobile_vars()
{
    add_rewrite_tag(\'%model%\',\'([^/]+)\');
    add_rewrite_tag(\'%edition%\',\'([^/]+)\');
    add_rewrite_rule(\'^automobile/([^/]+)/([^/]+)/?$\',\'index.php?automobile=$matches[1]&model=$matches[2]\',\'top\');
    add_rewrite_rule(\'^automobile/([^/]+)/([^/]+)/([^/]+)/?$\',\'index.php?automobile=$matches[1]&model=$matches[2]&edition=$matches[3]\',\'top\');
}
结果:

如果我输入此信息,我将被引导到Porsche页面:

/automobile/porsche
但如果我输入其中一个,我会得到一个404错误:

/automobile/porsche/911
/automobile/porsche/911/carrera
我几乎什么都试过了,但这件事还没有解决。任何帮助都将不胜感激!

1 个回复
SO网友:Mike Baxter

Building Custom URLs in Wordpress 讨论如何使用Pretty Permalinks使用其他参数显示帖子。

跳转到上的部分Custom Query Vars. 这就是你的情况开始被直接解决的地方。

特别是,您可能希望使用\'pre_get_posts\' 要检索参数并使用meta\\u查询调整WP\\u查询,以便不会因附加参数而导致404错误,请执行以下操作:

add_action( \'pre_get_posts\', \'your_function_name\', 1 );
NOTE: 为了适应本教程提供的示例,您可能需要修改自定义url,使其更像以下内容:

https://your-domain.com/automobile/porsche/model/911/name/carrera

在此示例中,“model”和“name”是键,“911”和“carrera”是各自的值。然后可以将这些用于meta\\u查询搜索。

相关推荐

Problem with permalinks

我已经更改了类别的基本名称,现在它是“博客”,工作正常。但当我通过/blog/%category%/%postname%/更改结构时。显示404。如果我删除结构中的blog,它会再次工作,但我想使用blog word。问题出在哪里?非常感谢。