我正在使用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]
答案 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'];
但也许我误解了这个问题......