2010-09-01 93 views
0

我有一個自定義主題的WordPress網站。我正在使用自定義作者模板頁面來顯示用戶頁面的公共「配置文件」。我想顯示一個鏈接到編輯頁面(我也有一個模板),只有登錄的用戶也是該特定作者。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'; 
} 

?>

+0

它應該是$ curauth-> ID; ? – jdp 2010-09-01 17:08:12

+2

任何50%以下的我離開。花2秒鐘點擊複選標記,需要幾分鐘的時間來輸入答案。 – Galen 2010-09-01 17:14:27

+0

如果答案沒有正確回答,或者說不能正確回答,我該如何將答案標記爲「已接受」? – RodeoRamsey 2010-09-06 00:20:14

回答

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上測試過了,你應該很好。

+0

這是一個公平的防守,我不會認爲你有這個問題:-)在將來,你可以隨時爲你的問題提供獎勵。這將彈出它的列表頂部,並讓你更多的答案(http://stackoverflow.com/faq#bounty)。或者問問新的WordPress答案StackExchange(http://wordpress.stackexchange.com)。 – EAMann 2010-09-08 00:20:00

相關問題