使用 PHP 字符串提取数据时在 URL 中创建一个 slug
Creating a slug in the URL when using PHP String to pull data
对于大多数 PHP 编码人员来说,这可能是一件简单的事情,但是,我以前从来没有这样做过。我正在使用带有页面模板的 Wordpress 网站。在此页面上是我创建的用于通过 User_id 查询结果的页面,然后显示用户个人资料信息。我想要实现的目标如下:
第 1 页
律师目录 > 从数据库中提取了多名律师
行动:
单击 Link
(示例 Link:http://example.com/lawyer-profile?user_id=9)
*数字9是动态数字
第 2 页
律师简介 > 有律师简介信息
问题
我该如何更改 URL
http://example.com/lawyer-profile?user_id=9
到
http://example.com/lawyer-profile/john-doe/
但仍然使用 User_id?
拉取数据
如有任何帮助,我们将不胜感激!
更新:
我在 wordpress 的网站上找到了这个,我修改了它以反映我需要它做什么,但它不起作用。它重定向到 page_id 189 的律师目录页面,但仍显示 URL 中的查询字符串。
这是我正在使用的 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);
如果您使用的是 Wordpress,请查看 add_rewrite_rule()。与 add_rewrite_tag 一起,这将使您能够处理该问题。
您可以为 user_id 定义一个重写标记,以及一个重写规则以将您的模式映射到处理它的单个页面。然后,您可以使用 query_vars 获取值,例如
$wp_query->query_vars['user_id']
所以这会 return 例如。约翰·多伊。在您的数据库中,您将拥有律师永久链接的索引,然后您可以查找该索引以找到他们的 id/record.
起初有点混乱,但上面链接的文档中有一个不错的例子。
对于大多数 PHP 编码人员来说,这可能是一件简单的事情,但是,我以前从来没有这样做过。我正在使用带有页面模板的 Wordpress 网站。在此页面上是我创建的用于通过 User_id 查询结果的页面,然后显示用户个人资料信息。我想要实现的目标如下:
第 1 页 律师目录 > 从数据库中提取了多名律师
行动: 单击 Link (示例 Link:http://example.com/lawyer-profile?user_id=9) *数字9是动态数字
第 2 页 律师简介 > 有律师简介信息
问题 我该如何更改 URL http://example.com/lawyer-profile?user_id=9
到
http://example.com/lawyer-profile/john-doe/
但仍然使用 User_id?
拉取数据如有任何帮助,我们将不胜感激!
更新: 我在 wordpress 的网站上找到了这个,我修改了它以反映我需要它做什么,但它不起作用。它重定向到 page_id 189 的律师目录页面,但仍显示 URL 中的查询字符串。
这是我正在使用的 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);
如果您使用的是 Wordpress,请查看 add_rewrite_rule()。与 add_rewrite_tag 一起,这将使您能够处理该问题。
您可以为 user_id 定义一个重写标记,以及一个重写规则以将您的模式映射到处理它的单个页面。然后,您可以使用 query_vars 获取值,例如
$wp_query->query_vars['user_id']
所以这会 return 例如。约翰·多伊。在您的数据库中,您将拥有律师永久链接的索引,然后您可以查找该索引以找到他们的 id/record.
起初有点混乱,但上面链接的文档中有一个不错的例子。