ลบส่วนตัวเลือกส่วนตัวออกจากโปรไฟล์


11

ฉันต้องการซ่อน / ลบตัวเลือกส่วนบุคคลในหน้าโปรไฟล์wp-admin/profile.phpผู้ดูแลระบบของคุณ ( )

ฉันรู้ว่ามีคำตอบสำหรับเรื่องนี้ แต่ฉันใช้ jQuery เพื่อซ่อนส่วนนี้ วิธีนี้ใช้งานได้ แต่เมื่อผู้ใช้ปิดการใช้งาน JavaScript ในเบราว์เซอร์จะปรากฏขึ้นอีกครั้ง ดังนั้นจึงไม่ใช่วิธีที่เหมาะสมในการลบตัวเลือกส่วนบุคคล

มีวิธีลบส่วนตัวเลือกส่วนบุคคลจากแหล่ง HTML ของหน้าหรือไม่ ซึ่งหมายความว่าไม่มีแฮ็ก jQuery หรือ CSS หรือการแก้ไขไฟล์หลัก


เพียงแค่เพิ่มหากผู้ใช้ปิดการใช้งาน JavaScript มีอีกมากมายที่พวกเขาจะไม่สามารถใช้ใน Wordpress แต่ยังคงทำมันฝั่งเซิร์ฟเวอร์จะดีกว่ามากเมื่อเป็นไปได้ :)
ทิมมาโลน

ระวัง - ดูคำตอบ: wordpress.stackexchange.com/a/162277/33667
T.Todua

คำตอบ:


24

สิ่งนี้ควรทำเคล็ดลับ

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

นอกจากนี้อย่าลืมทำเครื่องหมายคำถามก่อนหน้าของคุณว่าแก้แล้ว :)


มันยอดเยี่ยม แต่ฉันจะใช้งานกับ WP 3.4 ได้อย่างไร เฉพาะตัวเลือกชุดรูปแบบสีเท่านั้นที่ถูกลบ อาจเป็นเพราะฉันดูเหมือนจะไม่สามารถค้นหาไฟล์admin_head-profile.phpและadmin_footer-profile.phpในแกนกลาง ความคิด? ขอบคุณมาก.
Ana Ban

คุณแน่ใจหรือว่ามันใช้งานไม่ได้? ฉันเพิ่งใช้มันในการติดตั้งใหม่และมันก็ใช้ได้ โปรดทราบว่าคุณต้องแก้ไขโค้ดด้านบนหากคุณใช้ภาษาอื่น นอกจากนี้ยังมีข้อมูลบางอย่างเกี่ยวกับadmin_head-profile.phpและadmin_footer-profile.php: codex.wordpress.org/Plugin_API/…

@CorvanNoorloos ขอบคุณสำหรับสิ่งนี้มีวิธีการออกจากตัวเลือกเพื่อให้พวกเขาตรวจสอบว่าพวกเขาต้องการที่จะแสดงแถบเครื่องมือหรือไม่?
Greenhoe

6

พยายามที่จะหาคำตอบและพบคำตอบนี้ โค้ดข้างต้นโดย Cor van ไม่ทำงานอีกต่อไป แต่ด้วยการเปลี่ยนแปลงเล็กน้อยของ add_action มันสามารถ

สิ่งที่คุณต้องทำคือเปลี่ยนสองบรรทัดสุดท้ายจาก:

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

ถึง

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

ดังนั้นรหัสสุดท้ายจะมีลักษณะดังนี้:

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

ยินดีติดตามการเปลี่ยนแปลงรหัสต้นฉบับทำงานได้อย่างสมบูรณ์
Daniel

คุณสามารถบอกฉันได้ว่าฉันจะลบองค์ประกอบ <h3> มากขึ้นได้อย่างไร ฉันต้องแก้ไขโค้ดข้างต้นอะไรบ้าง
เฟเบียน

5

คำตอบที่ยอมรับไม่ได้ทำงานกับ 4.8

ต่อไปนี้เป็นข้อมูลล่าสุดและรหัสง่าย ๆ ที่ควรใช้กับเวอร์ชันใดก็ได้:

        // 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();
        });     

1
+1 แต่ปัญหาเดียวกับคำตอบที่ยอมรับสตริงต้องถูกแปลเป็นภาษาท้องถิ่นเพื่อให้ทำงานกับภาษาที่ไม่ใช่ภาษาอังกฤษ
Mark Kaplun

@ MarkKaplun นั่นถูกต้อง! ฉันทำการเปลี่ยนแปลง
RafaSashi

3

ขอบคุณที่แสดงความคิดเห็นจาก @Per ฉันได้ทำงานกับ 4.5.2

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

2

อัปเดตสำหรับ 3.9 งานต่อไปนี้:

add_action( 'admin_head', 'cor_profile_subject_start' );
add_action( 'admin_footer', 'cor_profile_subject_end' );

1

นี่คือโซลูชัน CSS ของฉันทดสอบใน 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

ฉันแค่ต้องการชี้แจงว่ารหัสจะไม่ทำงานสำหรับ WordPress รุ่นที่แปลเป็นภาษาท้องถิ่นเพราะPersonal Optionsสตริงhardcoded ฉันไม่สามารถคิดถึงวิธีแก้ปัญหาง่าย ๆ ได้ที่นี่ แต่ยินดีให้คำแนะนำ

ฉันจะเพิ่มนี่เป็นความคิดเห็น แต่ฉันไม่มีชื่อเสียงพอที่จะเพิ่มความคิดเห็น

ฉันยังใช้โอกาสนี้เพื่อวางรหัสใหม่ทั้งหมดที่อัปเดตสำหรับ WordPress เวอร์ชัน 3.9

นี่มันคือ:

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

อีกครั้งถ้าคุณรู้ล่วงหน้าว่าภาษาของการติดตั้ง WP ของคุณจะเปลี่ยนสตริงให้เป็นรุ่นที่มีการแปลภาษาของคุณตัวอย่างเช่นในภาษาอิตาลีคุณจะแทนที่ด้วยPersonal OptionsImpostazioni personali


0

โดยใช้

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

ในฟังก์ชัน cor_remove_personal_options จะถูกแปลเป็นภาษาท้องถิ่นเช่นกัน


0

ฉันพบวิธีแก้ไขปัญหานี้เมื่อ: https://premium.wpmudev.org/blog/how-to-simplify-wordpress-profiles-by-removing-personal-options/?ptm=c&utm_expid=3606929-108.O6f5ypXuTg-XPCV9sY1wyrs 0.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');

หากคุณต้องการที่จะเฉพาะเจาะจงมากขึ้นหรือลบเพิ่มเติมคุณควรดูที่นี่: https://isabelcastillo.com/hide-personal-options-wordpress-admin-profile

คุณสามารถเพิ่มบรรทัดเหล่านั้นลงในฟังก์ชันได้


การลบออกด้วย Javascript ไม่ใช่วิธีปฏิบัติที่ดี ...
Marcos Buarque
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.