Überarbeitete und aktualisierte Antwort:
Wir können den user_contactmethods
Filter nicht zum Entfernen des Website-Wrappers verwenden, da dieses user-edit.php
Teil in der Datei fest codiert ist und nicht Teil der filterbaren Benutzerkontaktschleife ist, die generiert wird von:
wp_get_user_contact_methods( $profileuser )
Verstecke es mit CSS
Das Website- Zeilenelement hat jetzt eine eigene .user-url-wrap
Klasse:
<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>
Zuvor mussten wir jQuery verwenden, um die übergeordnete Zeile des #url
Felds zum Entfernen anzuvisieren .
Aber jetzt können wir den Website- Wrapper ganz einfach als Ziel festlegen und ihn mit CSS ausblenden:
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' );
Andere Felder ausblenden
Es gibt ähnliche Zeilenklassen:
tr.user-{field}-wrap
verfügbar für die Felder:
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,
...
einschließlich aller Felder aus den dynamischen Benutzerkontaktmethoden .
Hier ersetzen wir einfach das {field}
Teil durch den entsprechenden Feldnamen.
Screenshots
Vor dem Entfernen der Websitezeile:
Nach dem Entfernen der Website-Zeile:
.remove()
anstelle von.hide()
if
Satz mit dem Fähigkeitstest auskommentieren. Es funktioniert infunctions.php
, aber ich denke, es ist besser, es in einem Plugin zu haben, damit Sie es nicht verlieren, wenn Sie das Thema ändern.apply_filters( "user_{$name}_label", $desc );
user-*-wrap
Teile zu haben ;-) @BradDaltonIch habe das Problem mit ob_ Funktionen und DOMDocument gelöst. Es ist besser als jQuery oder CSS, um das Formular zu schützen.
Ich verwende diese Art von Lösung jedes Mal, wenn ich nicht über einen Hook auf einen Teil des HTML-Inhalts zugreifen kann.
quelle
Erweitern Sie die Antwort von @ birgire und begründen Sie die Antwort von @Patricia Walton, wenn Sie nur hinzufügen
add_action('admin_head-user-edit.php','remove_website_row_wpse_94963');
Es wird nur von der Seite entfernt, auf der der Administrator ein Profil bearbeitet. Damit es auch verschwindet, wenn ein Benutzer sein eigenes Profil bearbeitet, fügen Sie es hinzu
add_action('admin_head-profile.php','remove_website_row_wpse_94963');
, so was:quelle
add_action('admin_head-user-new.php','remove_website_row_wpse_94963');
Der Code funktionierte auch nicht für mich, aber das Ändern der add_action in "profile.php" hat funktioniert.
quelle
Als Erweiterung der Antwort von @ birgire habe ich dies in ein Array geschrieben, damit es etwas einfacher zu lesen ist:
quelle