Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress url中的用户名引用_Wordpress_Rewrite - Fatal编程技术网

Wordpress url中的用户名引用

Wordpress url中的用户名引用,wordpress,rewrite,Wordpress,Rewrite,我使用wordpress,我试图将usename var从www.mysite.com/username传递到wordpress页面中的var。我有多个问题。我不知道重写是否不起作用,wordpress页面会注释掉我的php。有什么建议吗?有人知道如何做到这一点吗 .htaccess文件: RewriteEngine On RewriteRule ^index\.php$ - [L] RewriteRule ^([^/.]+)$ /index.php?username=$1 [L] Rewrit

我使用wordpress,我试图将usename var从www.mysite.com/username传递到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]

您不能将www.mysite.com/username的变量传递给WordPress页面中的一个变量,因为这意味着所有链接都将指向同一个页面和用户名的变量,您将遇到很多冲突和问题

我可以在创建个人资料页面时与您分享我的代码。例如:个人资料和具有相当永久性的 www.mysite.com/profile/eek

这将访问Wordpress页面配置文件,我在主题中将其设置为page-Profile.php,然后将下一个变量(例如:Eek)放入一个变量,在我的示例中,它将是$who变量

将其添加到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%','([^&]+)');
然后从设置->永久链接设置->保存更新永久链接

在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添加重写规则的更多详细信息,请参见此处:

另外,我正在使用一个很酷的插件来调试我的重写,它是这样的:(是的,它已经2年了,但它仍然像一个魔咒一样工作)


希望这是有帮助的

如果我理解这个问题,你走错了方向。。。因此,也许你会按照这种方式来做(以防2018年的任何人仍会落入这个答案)

但也可能是:

https://www.axew3.com/w3/dropbox/?u=axew3
仅使用以下命令检查传递的var:

$_GET['u'];
但也许我误解了这个问题

$_GET['u'];