プロファイルから個人用オプションのセクションを削除する


11

プロファイルwp-admin/profile.php)管理ページの個人オプションを非表示/削除したい。

これに対する解決策が存在することは知っていますが、jQueryを使用してこのセクションを非表示にしています。これは機能しますが、ユーザーがブラウザでJavaScriptを無効にすると、再び表示されます。したがって、個人オプションを削除することは適切な方法ではありません。

ページのHTMLソースから[個人用オプション]セクションを削除する方法はありますか?これは、jQueryやCSSのハッキング、またはコアファイルの変更がないことを意味します。


加えて、ユーザーがJavaScriptを無効にしている場合、Wordpressで使用できないものはもっとたくさんあります。しかし、まだ、それをやって、サーバー側は、はるかに良いときも可能です:)
ティム・マローン

注意してください-回答を参照してください:wordpress.stackexchange.com/a/162277/33667
T.Todua 2018

回答:


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.phpadmin_footer-profile.phpコアを見つけることができないようです。アイデア?どうもありがとう。
Ana Ban

動作しませんか?新しいインストールでこれを使用したところ、問題なく動作しました。他の言語を使用している場合は、上記のコードを編集する必要があることに注意してください。また、ここでいくつかについての情報だadmin_head-profile.phpadmin_footer-profile.phpcodex.wordpress.org/Plugin_API/...

@CorvanNoorloosこのおかげで、ツールバーを表示するかどうかを確認するオプションを残す方法はありますか?
Greenhoe

6

これを理解しようとしていて、この答えに出くわしました。上記のCor vanによるコードは機能しなくなりましたが、add_actionを少し変更するだけで機能します。

あなたがする必要があるすべてはからの最後の2行を変更することです:

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 2017年

@MarkKaplun正解です!変更しました。
RafaSashi 2017年

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.