Resposta revisitada e atualizada:
Não podemos usar o user_contactmethods
filtro para remover o wrapper do site, porque esta parte está codificada no user-edit.php
arquivo e não faz parte do loop de contatos filtráveis do usuário , gerado por:
wp_get_user_contact_methods( $profileuser )
Ocultando-o com CSS
O elemento de linha do site agora possui sua própria .user-url-wrap
classe:
<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>
Anteriormente, tínhamos que usar o jQuery, para direcionar a linha pai do #url
campo, para remoção.
Mas agora podemos segmentar facilmente o wrapper do site e ocultá-lo com 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' );
Ocultando outros campos
Existem classes de linha semelhantes:
tr.user-{field}-wrap
disponível para os campos:
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,
...
incluindo todos os campos dos métodos de contatos dinâmicos do usuário .
Aqui apenas substituímos a {field}
peça pelo nome do campo correspondente.
Screenshots
Antes de remover a linha do site:
Depois de remover a linha do site:
.remove()
em vez de.hide()
if
frase com o teste de capacidade. Ele funcionafunctions.php
, mas acho que é melhor tê-lo em um plug-in para que você não o perca ao mudar o tema.apply_filters( "user_{$name}_label", $desc );
user-*-wrap
partes ;-) @BradDaltonResolvi o problema com funções ob_ e DOMDocument. É melhor que jQuery ou CSS para proteger o formulário.
Uso esse tipo de solução sempre que não consigo acessar uma parte do conteúdo HTML por meio de um gancho.
fonte
Expandindo a @ birgire's e justificando a resposta de @Patricia Walton, se você adicionar apenas
add_action('admin_head-user-edit.php','remove_website_row_wpse_94963');
ele sairá da página em que o administrador está editando um perfil. Para também desaparecer quando um usuário edita seu próprio perfil, adicione também
add_action('admin_head-profile.php','remove_website_row_wpse_94963');
, como isso:fonte
add_action('admin_head-user-new.php','remove_website_row_wpse_94963');
O código também não estava funcionando para mim, mas alterar o add_action para apontar para profile.php funcionou.
fonte
Expandindo a resposta da @ birgire, escrevi isso em uma matriz, para ficar um pouco mais fácil de ler:
fonte