Wordpress 管理员自定义字段
Posted
技术标签:
【中文标题】Wordpress 管理员自定义字段【英文标题】:Wordpress Admin Custom Field 【发布时间】:2012-05-16 21:22:15 【问题描述】:我正在尝试使用文件 user-edit.php 在 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>
但是...在提交表单时,我无法更新这个新文本区域的 wp_usermeta。
我试过了,
update_user_meta( $user_id, 'user_ad', $_POST['user_ad'] );
但这不起作用,我知道它很接近,因为它用空白覆盖了当前的 meta_value。由于某种原因,$_POST 变量没有被传递,我不知道为什么。我没有使用 wordpress 的经验,所以我可能会忽略一些东西。
谢谢
【问题讨论】:
【参考方案1】:这篇博文详细介绍了实现您所追求的一种方法...
http://justintadlock.com/archives/2009/09/10/adding-and-using-custom-user-profile-fields
我可能误解了你的问题,但听起来很像你修改了 user-edit.php 文件。
您真的不想编辑该页面 - 它是 WordPress 核心的一部分。当您升级 WordPress 时,您所做的任何更改都将被覆盖。
WordPress 提供了挂钩,因此您不必编辑文件。诚然,这些钩子在这种情况下并不是特别有用,但它仍然是您应该这样做的方式。这就是上面链接的博客文章的处理方式。
【讨论】:
【参考方案2】:我怀疑你得到一个空值:
试试这个代码:
if($_POST['user_ad'] != '')
$userAd = $_POST['user_ad'];
update_user_meta( $user_id, 'user_ad', $userAd );
然后检查您是否仍然让这个空字段在 DB 中被覆盖。
【讨论】:
在试图找出它为什么不起作用时,我已经尝试过类似的方法。仍然没有运气,即使我使用您的代码并将某些内容输入到 textarea 中,也没有任何内容提交到 wp_usermeta 表 这证明$_POST['user_ad']
是空的。你能检查一下为什么当它到达这部分代码时它是空的吗?【参考方案3】:
这不是您问题的直接答案,但您暗示您正在尝试对核心文件进行此操作...如果是这样,您肯定需要一个插件。
我最近发现了这个,它非常适合添加各种自定义用户元:Cimy User Extra Fields。
如果您确实修改了核心文件,请按照此说明将您的 WordPress 文件恢复到其原始状态。 http://codex.wordpress.org/Updating_WordPress#Manual_Update
要不然wordpress.stackexchange里有很多关于这些问题的答案。
【讨论】:
以上是关于Wordpress 管理员自定义字段的主要内容,如果未能解决你的问题,请参考以下文章
WordPress ACF:为自定义帖子类型添加默认行到管理部分的中继器字段类型
在Wordpress上使用ACF上的自定义字段时找不到“图库”字段类型