web-dev-qa-db-de.com

Entfernen Sie den Abschnitt Persönliche Optionen aus dem Profil

Ich möchte die persönlichen Optionen auf der Admin-Seite Ihr Profil (wp-admin/profile.php) ausblenden/entfernen.

Ich bin mir bewusst, dass es Lösungen dafür gibt, aber ich benutze jQuery, um diesen Abschnitt auszublenden. Dies funktioniert, aber wenn ein Benutzer JavaScript in seinem Browser deaktiviert hat, wird es erneut angezeigt. Daher ist es keine geeignete Methode, um persönliche Optionen zu entfernen.

Gibt es eine Möglichkeit, den Abschnitt "Persönliche Optionen" aus der HTML-Quelle der Seite zu entfernen? Dies bedeutet, dass keine jQuery- oder CSS-Hacks oder Änderungen an der Kerndatei erforderlich sind.

11
dev-jim

Dies sollte den Trick machen

// removes the `profile.php` admin color scheme options
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Personal Options</h3>.+?/table>#s', '', $subject, 1 );
    return $subject;
  }

  function cor_profile_subject_start() {
    ob_start( 'cor_remove_personal_options' );
  }

  function cor_profile_subject_end() {
    ob_end_flush();
  }
}
add_action( 'admin_head-profile.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-profile.php', 'cor_profile_subject_end' );

Vergiss auch nicht, deine vorherigen Fragen als gelöst zu markieren :)

24
user5424

Akzeptierte Antwort funktioniert nicht mit 4.8

Hier kommt ein aktueller und vereinfachter Code, der mit jeder Version funktionieren sollte:

        // removes admin color scheme options

        remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

        //Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.

        add_action( 'admin_head', function () {

            ob_start( function( $subject ) {

                $subject = preg_replace( '#<h[0-9]>'.__("Personal Options").'</h[0-9]>.+?/table>#s', '', $subject, 1 );
                return $subject;
            });
        });

        add_action( 'admin_footer', function(){

            ob_end_flush();
        });     
5
RafaSashi

Ich habe nur versucht, das herauszufinden und bin auf diese Antwort gestoßen. Der obige Code von Cor van funktioniert nicht mehr, kann es aber bei einer leichten Änderung der add_action.

Alles was Sie tun müssen, ist die letzten beiden Zeilen von:

add_action( 'admin_head-profile.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-profile.php', 'cor_profile_subject_end' );

zu

add_action( 'admin_head-user-edit.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-user-edit.php', 'cor_profile_subject_end' );

Der endgültige Code würde also ungefähr so ​​aussehen:

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Personal Options</h3>.+?/table>#s', '', $subject, 1 );
    return $subject;
  }

  function cor_profile_subject_start() {
    ob_start( 'cor_remove_personal_options' );
  }

  function cor_profile_subject_end() {
    ob_end_flush();
  }
}
add_action( 'admin_head-user-edit.php', 'cor_profile_subject_start' );
add_action( 'admin_footer-user-edit.php', 'cor_profile_subject_end' );
5
KornDev

Dank des Kommentars von @Per habe ich es für 4.5.2 zum Laufen gebracht

    // removes admin color scheme options
    remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

    if ( ! function_exists( 'cor_remove_personal_options' ) ) {
        /**
        * Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
        */
        function cor_remove_personal_options( $subject ) {
            $subject = preg_replace( '#<h2>Personal Options</h2>.+?/table>#s', '', $subject, 1 );
            return $subject;
        }

        function cor_profile_subject_start() {
            ob_start( 'cor_remove_personal_options' );
        }

        function cor_profile_subject_end() {
            ob_end_flush();
        }
    }
    add_action( 'admin_head', 'cor_profile_subject_start' );
    add_action( 'admin_footer', 'cor_profile_subject_end' );`
3
Menian Lee

Update für 3.9 funktioniert folgendermaßen:

add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );
2
Allen Sutton

Hier ist meine CSS-Lösung, getestet in Wordpress 4.9.8

remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
add_action( 'admin_head', function(){
    ob_start(); ?>
    <style>
        #your-profile > h2,
        .user-rich-editing-wrap,
        .user-syntax-highlighting-wrap,
        .user-comment-shortcuts-wrap,
        .user-admin-bar-front-wrap {
            display: none;
        }
    </style>
    <?php ob_end_flush();
});
0
Grant

Ich wollte nur klarstellen, dass der Code für lokalisierte Versionen von WordPress aufgrund der fest codierten Zeichenfolge Personal Options nicht funktioniert. Ich kann mir hier keine einfache Lösung vorstellen, aber Vorschläge sind willkommen.

Ich hätte dies als Kommentar hinzugefügt, aber ich habe nicht genug Ruf, um einen Kommentar hinzuzufügen.

Ich nutze diese Gelegenheit auch, um den gesamten für WordPress Version 3.9 aktualisierten Code erneut einzufügen.

Hier ist es:

// removes the `profile.php` admin color scheme options
remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

if ( ! function_exists( 'cor_remove_personal_options' ) ) {
  /**
   * Removes the leftover 'Visual Editor', 'Keyboard Shortcuts' and 'Toolbar' options.
   */
  function cor_remove_personal_options( $subject ) {
    $subject = preg_replace( '#<h3>Personal Options</h3>.+?/table>#s', '', $subject, 1 );
    return $subject;
  }

  function cor_profile_subject_start() {
    ob_start( 'cor_remove_personal_options' );
  }

  function cor_profile_subject_end() {
    ob_end_flush();
  }
}
add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );

Wenn Sie im Voraus wissen, in welcher Sprache Ihre WP -Installation ausgeführt wird, ändern Sie die Zeichenfolge Personal Options in die lokalisierte Version Ihrer Sprache. In Italienisch wird sie beispielsweise durch Impostazioni personali ersetzt.

0

Durch die Nutzung

$subject = preg_replace( '#<h3>'.__("Personal Options").'</h3>.+?/table>#s', '', $subject, 1 );

in der Funktion cor_remove_personal_options ist sie ebenfalls lokalisiert.

0
user3252207

Ich habe diese Lösung gefunden auf: https://premium.wpmudev.org/blog/how-to-simplify-wordpress-profiles-by-removing-personal-options/?ptm=c&utm_expid=3606929-108.O6f5ypXuTg -XPCV9sY1yrw.2

function hide_personal_options(){ 
    echo "\n" . '<script type="text/javascript">jQuery(document).ready(function($) { 
    $(\'form#your-profile > h3:first\').hide(); $(\'form#your-profile > 
    table:first\').hide(); $(\'form#your-profile\').show(); });</script>' . "\n"; 
} 
add_action('admin_head','hide_personal_options');

Wenn Sie spezifischer sein oder mehr entfernen möchten, sollten Sie hier nachsehen: https://isabelcastillo.com/hide-personal-options-wordpress-admin-profile

Sie können diese Zeilen einfach zur Funktion hinzufügen.

0
K. Tromp