我有一个自定义主题的WordPress网站。我正在使用自定义作者模板页面来显示用户页面的公共“配置文件”。我想显示一个指向编辑页面的链接(我也有一个模板),只有登录用户也是该特定作者。
我有以下代码,但它显示了所有已登录用户的编辑链接。我不希望用户认为他们可以编辑其他作者的个人资料。
<?php global $user_id, $user_login;
get_currentuserinfo();
$author_id = $curauth->user_id;
if($user_id !== '' && $author_id == $user_id){
echo 'EDIT LINK HERE';
}
&GT;
答案 0 :(得分:0)
你快到了。不要担心全局变量,它们只是搞砸了。你想要的是这个:
<?php
if(get_query_var('author_name')) :
$curauth = get_user_by('slug', get_query_var('author_name'));
else :
$curauth = get_userdata(get_query_var('author'));
endif;
get_currentuserinfo();
if( $curauth->ID == $user_ID) {
// Do your edit link work here ...
}
?>
首先根据用于生成作者个人资料页面的查询变量加载当前作者。这就是你得到的$curauth->ID
。然后,它会加载当前用户的所有标准信息(有关get_currentuserinfo()
填充的变量的完整列表,请参阅the Codex)。然后它在两个值之间进行简单的比较......不需要检查$user_ID
是否有值,因为该变量的空值无论如何都不会等于$curauth->ID
。
FWIW我在WP 3.0.1上测试了这个,你应该好好去。