我正在开发一个Wordpress网站,它加载来自SugarCRM的大部分内容。
目前,我在URL上获得了船只项目
http://domain.com/boats/?id=123456789
但是我希望有一个很好的网址,其名称来自SugarCRM,例如
http://domain.com/boats/this-is-boat-name
有没有办法在不为Wordpress中的每个项目创建自定义帖子类型和帖子的情况下执行此操作?
答案 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