프로필에서 개인 옵션 섹션 제거


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에서 어떻게 작동하게합니까? 색 구성표 선택기 만 제거됩니다. 아마 bec 나는 파일 admin_head-profile.phpadmin_footer-profile.php핵심 을 찾을 수없는 것 같습니다 . 아이디어? 감사합니다.
아나 반

작동하지 않습니까? 방금 새 설치에서 이것을 사용했고 정상적으로 작동했습니다. 다른 언어를 사용하는 경우 위의 코드를 편집해야합니다. 또한, 여기에 대한 몇 가지 정보입니다 admin_head-profile.phpadmin_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' );

좋은 후속 조치, 원래 코드의 변경 사항은 완벽하게 작동했습니다.
다니엘

더 많은 <h3> 요소를 어떻게 제거 할 수 있습니까? 위 코드를 수정하려면 무엇이 필요합니까?
Fabian

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

다음은 Wordpress 4.9.8에서 테스트 한 CSS 솔루션입니다.

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

하드 코드 된 Personal Options문자열로 인해 현지화 된 WordPress 버전에서는 코드가 작동하지 않는다는 것을 분명히하고 싶었습니다 . 나는 쉬운 해결책을 생각할 수 없지만 제안은 환영합니다.

나는 이것을 의견으로 추가했을 것이지만, 의견을 추가 할만 큼 평판이 충분하지 않습니다.

또한이 기회를 통해 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 Options문자열을 현지화 된 언어 버전으로 변경하십시오. 예를 들어 이탈리아어로 바꾸면 언어가로 바뀝니다 Impostazioni 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-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');

더 구체적이거나 더 많이 제거하려면 여기를 살펴보십시오. https://isabelcastillo.com/hide-personal-options-wordpress-admin-profile

해당 라인을 함수에 추가하면됩니다.


Javascript로 그것을 제거하는 것은 결코 좋은 습관이 아닙니다 ...
Marcos Buarque
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.