Wordpress url重写 - 来自SugarCRM的名字很好的URL

时间:2014-03-25 20:49:33

标签: php wordpress .htaccess url-rewriting

我正在开发一个Wordpress网站,它加载来自SugarCRM的大部分内容。

目前,我在URL上获得了船只项目

http://domain.com/boats/?id=123456789

但是我希望有一个很好的网址,其名称来自SugarCRM,例如

http://domain.com/boats/this-is-boat-name

有没有办法在不为Wordpress中的每个项目创建自定义帖子类型和帖子的情况下执行此操作?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用add_rewrite_rule

让用户通过网址domain.com/boats/12345/this-is-boat-name/

访问该网页

然后,您可以在PHP中获取ID,就像它是$_GET查询字符串一样。

首先是重写规则;

$rule = '^(boats)/([^/]*)/([^/]*)/?';
$write = 'index.php?name=boats&id=$matches[1]&pagename=$matches[1]';
add_rewrite_rule($rule, $write, 'top');

然后是过滤器,以便您可以像查询字符串一样访问页面URL

add_filter('query_vars', 'foo_my_query_vars');
function foo_my_query_vars($vars){
    $vars[] = 'id';
    $vars[] = 'pagename';
    return $vars;
}

然后,在主题的页面模板中,您可以选择(不可见)查询字符串值,如:

$id = get_query_var('id');
$pagename = get_query_var('pagename');
echo $id.' '.$pagename;

确保在添加重写规则后刷新固定链接并过滤到您的functions.php