我的WordPress网站有一个组合,在www.mysite.com/portfolio/
。 该产品组合的部分和项目都是通过我创建了一个自定义插件管理。 我想访问如个别项目www.mysite.com/portfolio/my-cool-photo
并有把“我的酷-照片”到下面的查询字符串?portfolio_item=my-cool-photo
,所以我可以读取它从我的代码。
在插件激活PHP文件,我有这样的代码:
function add_rewrite_rules($wp_rewrite) {
$new_rules = array(
'portfolio/(.+)/?$' => 'index.php?&portfolio_item=$1'
);
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action('generate_rewrite_rules', 'add_rewrite_rules');
function query_vars($public_query_vars) {
$public_query_vars[] = "portfolio_item";
return $public_query_vars;
}
add_filter('query_vars', 'query_vars');
这增加了重写规则到数组确定。 问题是,它没有做任何事情。 当我去www.mysite.com/portfolio/testing/
我得到了“这有点尴尬,是不是?” WordPress的404错误页面。 显然,重定向不工作,那么查询字符串将不会被填补,但只是为了确保我这样做:
global $wp_query, $wp_rewrite;
if ($wp_rewrite->using_permalinks()) {
$searchKey = $wp_query->query_vars['portfolio_item'];
} else {
$searchKey = $_GET['portfolio_item'];
}
...果然查询字符串是没有得到通过。
是否有什么我失踪?