2012-05-16 66 views
2

我試圖使用文件用戶edit.phpWordPress管理自定義字段

我已經添加在正確的位置textarea的和已經嘗試添加在WordPress的管理區域添加自定義的textarea數據庫中wp_usermeta中的新條目,並且它已成功回顯到我的文本框中。

此代碼的工作

<tr> 
    <th><label for="user_ad">Ad Code</label></th> 
    <td><textarea name="user_ad" id="user_ad" rows="5" cols="30"><?php echo esc_attr($profileuser->user_ad) ?></textarea> 
    </td> 
</tr> 

不過......我無法更新爲這個新的textarea的wp_usermeta提交表單時。

我已經嘗試使用,

update_user_meta($user_id, 'user_ad', $_POST['user_ad']); 

但是,這並不工作,我知道這是接近的,因爲它會以一個空白當前meta_value。出於某種原因,$ _POST變量沒有被傳遞,我不知道爲什麼。我不是那種使用wordpress的經歷,所以我可能會忽略一些東西。

感謝

回答

3

實現你以後本博客文章細節的一種方式......

http://justintadlock.com/archives/2009/09/10/adding-and-using-custom-user-profile-fields

我可能誤解了你的問題,但它聽起來非常像你已經修改了用戶編輯。 PHP文件。

你真的不想編輯該頁面 - 這是WordPress核心的一部分。升級WordPress時,您所做的任何更改都將被覆蓋。

WordPress提供了鉤子,因此您不必編輯文件。無可否認,在這種情況下鉤子並不是特別有用,但它仍然是你應該這樣做的方式。這就是上面鏈接的博客帖子處理它的方式。

+1

非常感謝。這幫助我解決了我的問題。 – Jako

0

我懷疑你在得到一個空值:

試試這個代碼,而不是:

if($_POST['user_ad'] != '') { 
    $userAd = $_POST['user_ad']; 
    update_user_meta($user_id, 'user_ad', $userAd); 
} 

然後檢查是否仍然得到這個空場得到過用DB編寫或不用。

+0

當試圖找出它不工作的原因時,我已經嘗試過類似的東西。 仍然沒有運氣,即使我使用你的代碼和輸入的東西到textarea,沒有提交到wp_usermeta表 – Jako

+0

那麼證明'$ _POST ['user_ad']'是空的。你可以檢查它到達代碼的這一部分時爲什麼是空的。 – anubhava

0

這不是對你的問題的直接回答,但你暗示着你正在試圖破解核心文件......如果是這樣,你肯定需要一個插件。

我最近發現這一個,它是真棒添加所有類型的自定義用戶meta:
Cimy User Extra Fields

如果您真的修改了核心文件,請按照此說明將您的WordPress文件恢復到原始狀態。 http://codex.wordpress.org/Updating_WordPress#Manual_Update

否則,在wordpress.stackexchange有很多關於這些問題的答案。