2012-05-16 57 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有很多关于这些问题的答案。