Rewriting URLs in Wordpress

时间:2012-12-04 作者:user1609391

我试图解决一个重写问题,但不完全理解如何阅读下面的代码。

我相信event/industry/(.+)/?$\' 正在声明重写后新url中所需的格式,这应该是示例。com/事件/行业/某些术语/

这部分似乎就是参数。=> \'index.php?post_type=eg_event&industry=\' . $wp_rewrite->preg_index(1)

这是正确的理解吗?

是什么告诉代码在我的新url中放置什么值,这是什么:(.+)/?$\' 是不是$wp_rewrite->preg_index(1) 那么preg_index(1) 意思是

$new_rules = array( \'event/industry/(.+)/?$\' => \'index.php?post_type=eg_event&industry=\' . $wp_rewrite->preg_index(1) ); $wp_rewrite->rules = $new_rules + $wp_rewrite->rules; }

非常感谢您提供的任何帮助,帮助我理解上面的逻辑。

1 个回复
SO网友:ahmiz

\'event/industry/(.+)/?$\'
以上是将在幕后重写的URL。括号创建了所谓的“反向引用”。

\'index.php?post_type=eg_event&industry=\' . $wp_rewrite->preg_index(1)
以上是将提供给浏览器的实际URL。

所以http://yourdomain.com/event/industry/abc/ 匹配规则“事件/行业/(.+)/?$”。术语“abc”成为索引1的反向引用,因为它与括号中的术语相匹配。

当有人浏览到该URL时,服务器将悄悄地将该URL重写为“index.php?post\\u type=eg\\u event&;industry=abc”,并提供该页面。此“重写”对浏览器/最终用户不可见。

$wp\\u rewrite->preg\\u index(1)只是引用索引1的反向引用。

您可以有多个反向引用。例如:

event/(.+)/(.+)/?$
现在此规则将匹配http://yourdomain.com/event/magic/def/.

这一次,“magic”变为索引1的反向引用,“def”变为索引2的反向引用。

因此,您可以将规则重写为:

index.php?post_type=eg_event&\' . $wp_rewrite->preg_index(1) . \'=\' . $wp_rewrite->preg_index(2)
即索引。php?post\\u类型=例如事件(&U);magic=定义

结束

相关推荐