wordpress:url中的用户名引用

时间:2013-07-06 18:30:50

标签: wordpress rewrite username

我正在使用wordpress,我正在尝试将www.mysite.com/username中的usename var传递给wordpress页面中的var。我有多个问题。我不知道重写是否工作,wordpress页面注释掉我的php。有什么建议?有谁知道如何做到这一点?

.htaccess文件:

RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteRule ^([^/.]+)$ /index.php?username=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

2 个答案:

答案 0 :(得分:3)

您无法将www.mysite.com/username的变量传递给WordPress页面中的var,因为这意味着所有链接都会导致同一页面和var与用户名相同,您将获得很多冲突和很多问题。

我可以在创建个人资料页面时分享我的代码。 EG:简介并且非常像永久链接 www.mysite.com/profile/eek

那将访问Wordpress页面Profile,我在我的主题中设置为page-profile.php,将下一个变量(例如:Eek)设置为变量,在我的示例中,它将是$ who变量。< / p>

将其添加到functions.php

add_filter( 'page_rewrite_rules', 'profile_page_rewrite_rules' );
function profile_page_rewrite_rules( $rewrite_rules )
{
    end( $rewrite_rules );
    $last_pattern = key( $rewrite_rules );
    $last_replacement = array_pop( $rewrite_rules );
    $rewrite_rules +=  array(
        '(.+?)/([^/]+)/?$' => 'index.php?pagename=$matches[1]&who=$matches[2]',
        $last_pattern => $last_replacement,
    );
    return $rewrite_rules;
}

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

然后从设置 - &gt;永久链接设置 - &gt;更新永久链接。保存。

并在page-profile.php

为了获得当前用户,我有这个片段:

<?php  $who = (get_query_var('who')) ? get_query_var('who') : 0; 
        if($who){$user = get_user_by('login', $who);}

        else{
            if( is_user_logged_in() ){
                $user = wp_get_current_user();
            }else{$user = 0;}
        }
?>

有关在此处向WordPress添加重写规则的更多详细信息:http://codex.wordpress.org/Rewrite_API/add_rewrite_rule

另外,我使用一个很酷的插件来调试我的重写,就是这个:http://wordpress.org/plugins/monkeyman-rewrite-analyzer/(是的,它已经2年了,但它仍然像魅力一样)。

希望这有用!

答案 1 :(得分:0)

如果我理解了这个问题,你就会走错路......所以实际上你可能会采用这种方式(如果2018年的任何人仍然会接受这个答案)

http://mywordpress/?u=myusername

但也可以:

https://www.axew3.com/w3/dropbox/?u=axew3

用刚刚检查传递的var:

$_GET['u'];

但也许我误解了这个问题......