回顾和更新答案:
我们无法使用user_contactmethods
过滤器删除网站包装程序,因为这部分内容被硬编码在user-edit.php
文件中,而不是可过滤的用户联系人循环的一部分,该 循环由以下内容生成:
wp_get_user_contact_methods( $profileuser )
用CSS隐藏它
该网站排元素现在有它自己的.user-url-wrap
类:
<tr class="user-url-wrap">
<th><label for="url"><?php _e('Website') ?></label></th>
<td>
<input type="url" name="url" id="url"
value="<?php echo esc_attr( $profileuser->user_url ) ?>"
class="regular-text code" />
</td>
</tr>
以前,我们不得不使用jQuery来定位#url
要删除的字段的父行。
但是现在我们可以轻松地将网站包装定位为目标,并使用CSS将其隐藏:
function remove_website_row_wpse_94963_css()
{
echo '<style>tr.user-url-wrap{ display: none; }</style>';
}
add_action( 'admin_head-user-edit.php', 'remove_website_row_wpse_94963_css' );
add_action( 'admin_head-profile.php', 'remove_website_row_wpse_94963_css' );
隐藏其他领域
有类似的行类:
tr.user-{field}-wrap
适用于以下字段:
admin-color,
comment-shortcuts,
admin-bar-front,
user-login,
role,
super-admin,
first-name,
last-name,
nickname,
display-name,
email,
description,
pass1,
pass2,
sessions,
capabilities,
...
包括动态用户联系方式中的所有字段。
在这里,我们只用{field}
相应的字段名称替换零件。
屏幕截图
删除网站行之前:
删除网站行后:
.remove()
的,而不是.hide()