使用PHP String拉取数据时在URL中创建一个slug

时间:2015-01-27 11:43:44

标签: php mysql wordpress

对于大多数PHP程序员来说,这可能是一件简单的事情,但是,我以前从未这样做过。我正在使用带有页面模板的Wordpress网站。在此页面上是我创建的用于按User_id查询结果的页面,然后显示用户配置文件信息。我想要实现的目标如下:

第1页 律师目录>有多名律师从数据库中撤出

操作: 单击链接 (示例链接:http://example.com/lawyer-profile?user_id=9) *数字9是动态数字

第2页 律师简介>有律师简介信息

问题 如何更改此URL http://example.com/lawyer-profile?user_id=9

TO

http://example.com/lawyer-profile/john-doe/

但是仍然使用User_id来拉取数据?

任何帮助将不胜感激!


更新: 我在wordpress的网站上找到了这个,我修改了它以反映我需要它做什么,但它不起作用。它重定向到lawyer目录页面,即page_id 189,但仍显示URL中的查询字符串。

这是我正在使用的网址: http://example.com/index.php?page_id=189&userid=195&fullname=jack-bowers

它应该是这样的: http://example.com/lawyer-directory/jack-bowers/

有什么建议吗?

 function custom_rewrite_tag() {
   add_rewrite_tag('%userid%', '([^&]+)');
   add_rewrite_tag('%fullname%', '([^&]+)');
 }
 add_action('init', 'custom_rewrite_tag', 10, 0);

 function custom_rewrite_rule() {
     add_rewrite_rule('^lawyer-directory/([^/]*)/([^/]*)/?','index.php?page_id=189&userid=$matches[1]&fullname=$matches[2]','top');
 }
 add_action('init', 'custom_rewrite_rule', 10, 0);

1 个答案:

答案 0 :(得分:0)

如果您使用的是Wordpress,请查看add_rewrite_rule()。与add_rewrite_tag一起,这将允许您处理。

您可以做的是为user_id定义重写标记,以及将模式映射到处理它的单个页面的重写规则。然后,您可以使用query_vars获取值,例如。

$wp_query->query_vars['user_id']

所以这会返回例如。约翰 - 母鹿。在您的数据库中,您将获得律师永久链接的索引,然后您可以查找该索引以查找其ID /记录。

起初有点令人困惑,但在上面链接的文档中有一个不错的例子。