Entfernen Sie den Abschnitt Persönliche Optionen aus dem Profil

11

Ich möchte die persönlichen Optionen auf der Administrationsseite Ihres Profils ( 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 nicht geeignet, 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 keine jQuery- oder CSS-Hacks oder Änderungen an der Kerndatei.

dev-jim
quelle
Wenn ein Benutzer JavaScript deaktiviert hat, kann er noch viel mehr nicht in Wordpress verwenden. Aber trotzdem ist es viel besser, es serverseitig zu machen, wenn es möglich ist :)
Tim Malone
Seien Sie vorsichtig - siehe Antwort: wordpress.stackexchange.com/a/162277/33667
T.Todua

Antworten:

24

Dies sollte den Trick tun

// 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' );

Vergessen Sie auch nicht, Ihre vorherigen Fragen als gelöst zu markieren :)


quelle
Das ist großartig, aber wie mache ich es für WP 3.4? Nur der Farbschema-Picker wird entfernt. wahrscheinlich, weil ich die Dateien admin_head-profile.phpund admin_footer-profile.phpim Kern nicht finden kann . Ideen? Vielen Dank.
Ana Ban
Bist du sicher, dass es nicht funktioniert? Ich habe dies gerade für eine neue Installation verwendet und es hat in Ordnung funktioniert. Beachten Sie, dass Sie den obigen Code bearbeiten müssen, wenn Sie eine andere Sprache verwenden. Hier sind auch einige Informationen über admin_head-profile.phpund admin_footer-profile.php: codex.wordpress.org/Plugin_API/…
@CorvanNoorloos Danke, gibt es eine Möglichkeit, die Option zu verlassen, damit sie prüfen können, ob sie die Symbolleiste anzeigen möchten oder nicht?
Greenhoe
6

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

Sie müssen lediglich die letzten beiden Zeilen ändern 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' );
KornDev
quelle
Nettes Follow-up, diese Änderung am ursprünglichen Code hat perfekt funktioniert.
Daniel
Können Sie mir sagen, wie ich weitere <h3> -Elemente entfernen kann? Welche Änderungen des obigen Codes benötige ich?
Fabian
5

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();
        });     
RafaSashi
quelle
1
+1, aber das gleiche Problem wie bei der akzeptierten Antwort. Die Zeichenfolge muss lokalisiert werden, damit sie mit nicht englischen Sprachen funktioniert.
Mark Kaplun
@ MarkKaplun das ist richtig! Ich habe die Änderung vorgenommen.
RafaSashi
3

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' );`
Menian Lee
quelle
2

Update für 3.9 funktioniert wie folgt:

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

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

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();
});
Gewähren
quelle
0

Ich wollte nur klarstellen, dass der Code aufgrund der fest codierten Personal OptionsZeichenfolge für lokalisierte Versionen von WordPress 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, wie die Sprache Ihrer WP-Installation aussehen wird, ändern Sie die Personal OptionsZeichenfolge in die lokalisierte Version Ihrer Sprache, z. B. auf Italienisch, durch die Sie sie ersetzen Impostazioni personali.

Emanuele Feliziani
quelle
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.

user3252207
quelle
0

Ich habe diese Lösung gefunden unter: 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 genauer sein oder mehr entfernen möchten, schauen Sie hier vorbei: https://isabelcastillo.com/hide-personal-options-wordpress-admin-profile

Sie können diese Zeilen einfach in die Funktion einfügen.

K. Tromp
quelle
Das Entfernen mit Javascript ist niemals eine gute Praxis ...
Marcos Buarque