如何使用wordpress创建漂亮的URL链接?

时间:2014-07-30 08:53:45

标签: php wordpress .htaccess parameters url-rewriting

我对制作漂亮的网址链接有一些疑问。

在我的网站主页上,我有一个文本(城市和州)的下拉列表,它将成为我的参数。我通过 GET METHOD将值发送到WordPress模板页面,系统将根据传递的值显示内容。显示内容部分正在成功运行,但是,我对链接有一些疑问。

现在,页面的链接正在显示

www.mydomain.com/list/?state=NY&city=Newyork或 www.mydomain.com/list/?state=IL&city=Chicago

我更喜欢链接为以下漂亮的格式,... www.mydomain /列表/ NY /纽约 www.mydomain /列表/ IL /芝加哥

我在很多网站上进行了研究,并找到了使用htaccess的建议。我正在使用以下代码但仍然链接不会更改为漂亮的格式。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ([0-9]+)/?$ ?district=$1
RewriteRule ([0-9]+)/([^/]+)/?$ ?district=$1&templename=$2 [L]
</IfModule> 

# END WordPress

1 个答案:

答案 0 :(得分:0)

您要寻找的内容应该使用wordpress&#39; add_rewrite_rule功能。您可以阅读更多相关信息here

以下是您可能正在寻找的样本:

<?php 
add_rewrite_rule('list/([0-9|a-z|A-Z]*)?/?([0-9|a-z|A-Z]*)?/?([0-9|a-z|A-Z]*)?/?([0-9|a-z|A-Z]*)?','index.php?$matches[1]=$matches[2]&$matches[3]=$matches[4]','top');
?>

详细解释:

  1. 首先,我们声明一个正则表达式,以匹配&#34; list&#34;之后的任何get参数。蛞蝓。 (即:www.mydomain.com/list /)
  2. 其次,我们宣布wordpress应该如何解释它。该文件将永远是index.php for wordpress。参数将与www.mydomain.com/list/state/IL/city/Chicago对齐,在代码中将转换为www.mydomain.com/list/?state=IL&city=Chicago,以便您使用$ _GET参数
  3. top告诉Wordpress这些规则优先超过wordpress&#39;自己的规则。
  4. 您可能需要致电flush_rewrite_rules( false )$wp_rewrite->flush_rules()来清除规则并使更改生效