WordPress中的条件URL重写

时间:2010-09-16 02:46:51

标签: php wordpress

我正在举办活动并使用WordPress来管理网站。我们有一个单独的表(不是WP用户表)的与会者,我希望他们每个人都有我们网站上的页面:

example.com/user1,example.com/user2等

我一直在阅读有关WP_Rewrite的内容,但是如果用户存在,我对如何有条件地重定向感到有点困惑,否则就会进行正常的流程。

非常感谢任何帮助实现这一目标,谢谢!

编辑:

我正试图转发一个单一的页面。现在,它可以通过以下方式访问:

example.com/user?username=user1

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你将为每个用户创建一个页面,所以在永久链接结构中添加标签%postname%,并且可能安装无类别的基础插件。

检查.htaccess是否使用wp为该结构编写的配置创建。如果不是,您只能复制并粘贴。

答案 1 :(得分:0)

我最后通过在用户的url前面加上代字号(〜)来做到这一点。重写代码如下:

// Uncomment only when new rewrites have been made 
//add_filter('init', 'wds_flush');

// Leave uncommented 
add_filter('rewrite_rules_array', 'wds_user_rewrite');
add_filter('query_vars','wds_query_vars');

function wds_flush()
{
     global $wp_rewrite;
     $wp_rewrite->flush_rules();
}
function wds_user_rewrite($rules)
{
        global $wp_rewrite;
        $newRule = array(
                '^~(.+)$' => 'index.php?pagename=user&uid=$matches[1]&act=show',
        );
        $newRules = $newRule + $rules;

        return $newRules;
}
function wds_query_vars($vars)
{
        array_push($vars, 'uid');
        array_push($vars, 'act');
        return $vars;
}