为什么wordpress不在我的插件中识别add_rewrite_rule?

时间:2014-02-12 09:06:10

标签: wordpress rewrite

我正在使用插件中的设置来生成重写规则:

$bioPage = $wpdb->get_var("SELECT settingValue FROM $table_name WHERE settingType='bioPage'");
$post = get_post($bioPage);
$slug = $post->post_name;

add_rewrite_tag('%player%','([^&]+)');

add_rewrite_rule('^'.$slug.'/([^/]*)$','/'.$slug.'/?player=$matches[1]','top');

我得到了正确的slu ..

我有一个看起来像这样的网址:

mysite.com/info/?player=joe.smith.01

我希望它看起来像这样:

mysiste.com/info/joe.smith.01

我正在使用add_rewrite_tag,因此WP将获取该网址的变量。当我访问一个像我正在尝试实现的页面网址时,我找不到一个页面。

1 个答案:

答案 0 :(得分:0)

如果你真的不需要,我不建议修改htaccess文件。 WP的Rewrite APi应该做得很好。

那就是说,我很确定你必须在add_rewrite_rule()的重写参数中通过'index.php'。

我现在没有办法测试这个,但是下面的内容可能有用:

$bioPage = $wpdb->get_var("SELECT settingValue FROM $table_name WHERE settingType='bioPage'");
$post = get_post($bioPage);
$slug = $post->post_name;
$page_id = $post->ID; //Get the post ID to include in the page_id query var

add_rewrite_tag('%player%','([^&]+)');
add_rewrite_rule('^'.$slug.'/([^/]*)$','index.php?page_id='.$page_id'.&player=$matches[1]','top');
相关问题