web-dev-qa-db-ja.com

プロファイルオプションページのカスタムスタイル

ワードプレスのプロフィールページをスタイルする方法はありますか?次のようなものを追加します。

<h2>タグのすぐ下のページの先頭

<div id="normal-sortables" class="meta-box-sortables ui-sortable">
    <div id="poststuff" class="metabox-holder has-right-sidebar">
        <div id="post-body">
            <div id="post-body-content" style="margin-right: 0 !important;">
                <div id="normal-sortables" class="meta-box-sortables ui-sortable">

各開始前に<table>タグ( "php_e( 'name')"に注意してください)

<div id="namepage" class="postbox ">
    <h3 style="cursor: default !important;"><?php _e('Name') ?></h3>
        <div class="inside">

</table>タグを閉じるたびに

    </div>
</div>

</form>タグの後

                </div>
            </div>
        </div>
    </div>
</div>

私はカスタムCSSファイルを追加することには興味がありません、私はすでにそこにあるものを使用させていただきます。

テストとして、私はwp-adminからuser-edit.phpを編集しました、そしてそれは私の意見でははるかに良い、それはうまく見えます。

これらのdivをページに追加するための適切な方法はありますか。

編集します、私は以下のコードを知っています、しかし私は誰かが上記のdivを追加するために "preg_replace"を手伝うことができると思います。

function users_edited($buffer) {
if (!current_user_can('activate_plugins')) {
        global $pagenow;
        if ($pagenow == 'profile.php' || $pagenow == 'users.php' || $pagenow == 'user-edit.php') {
            //Hide the Name table
            $name = '#<h3>Name</h3>.+?<table.+?/table>#s';
            $buffer=preg_replace($name,'',$buffer,1);
            $personal = array('#<h3>Name</h3>.+?<table.+?/table>#s', '#<h3>Personal Options</h3>.+?<table.+?/table>#s');
            $buffer=preg_replace($personal,'',$buffer,1);

            //Modiffy Contact Person header from h2 to h3
            $contactperson='#<h2>Contact Person</h2>#';
            $buffer=preg_replace($contactperson,'<h3>Contact Person</h3>',$buffer,1);

        }
        return $buffer;
    }
}
function users_edit_start() { 
if (!current_user_can('activate_plugins')) {
        ob_start("users_edited"); 
    }
}
function users_edit_end() { 
if (!current_user_can('activate_plugins')) {
        ob_end_flush(); 
    }
}
add_action('admin_head', 'users_edit_start');
add_action('admin_footer', 'users_edit_end');
2
user983248

他のプラグインがインストールされていなくても標準のプロファイルページ(あなたのプロファイル/プロファイル)で動作します。

他のプラグインは全体的な結果に影響を与える可能性があります。私は、コードを改善することができると思います。enter image description here

function better_profile_page($buffer) {
        global $pagenow;
            if ($pagenow == 'profile.php' || $pagenow == 'users.php' || $pagenow == 'user-edit.php') {
                $form_start = '#<form id="your-profile" action="'.esc_url( self_admin_url( IS_PROFILE_PAGE ? 'profile.php' : 'user-edit.php' ) ).'" method="post">#';
                $new_form_start = '<form id="your-profile" action="'.esc_url( self_admin_url( IS_PROFILE_PAGE ? 'profile.php' : 'user-edit.php' ) ).'" method="post"><div id="normal-sortables" class="meta-box-sortables ui-sortable">
                <div id="poststuff" class="metabox-holder has-right-sidebar">
                    <div id="post-body">
                        <div id="post-body-content" style="margin-right: 0 !important;">
                            <div id="normal-sortables" class="meta-box-sortables ui-sortable">';
                $buffer=preg_replace($form_start, $new_form_start ,$buffer,1);

                $h3_open_a = '#<h3>#';
                $buffer=preg_replace($h3_open_a,'<div id="namepage" class="postbox "><h3 style="cursor: default !important;">',$buffer,1);

                $h3_close = '#</h3>#';
                $buffer=preg_replace($h3_close,'</h3><div class="inside">',$buffer,1);

                $h3_open_b = '#<h3>#';
                $buffer=preg_replace($h3_open_b,'</div></div><div id="namepage" class="postbox "><h3 style="cursor: default !important;">',$buffer);

                $submit_button = '#<p class="submit">#';
                $buffer=preg_replace($submit_button,'<p class="submit" style="float: left ! important; padding: 12px ! important;">',$buffer);

                $form_close =  '#</form>#';
                $new_form_close = '</div></div></div></form>';
                $buffer=preg_replace($form_close, $new_form_close ,$buffer,1);
            }
            return $buffer;
    }
    function edit_profile_page_start() { 
            ob_start("better_profile_page"); 
    }
    function edit_profile_page_end() { 
            ob_end_flush(); 
    }
    add_action('admin_head', 'edit_profile_page_start');
    add_action('admin_footer', 'edit_profile_page_end');
1
user983248

あなたは正しいページを見回しています。私はあなたがその答えをすでに知っていると思います。 :)正しい場所にフックが見えたら、それを実行できます。それ以外の場合は、CSSまたはJavascriptを使用してできることを実行してください。それでも十分でない場合は、コア編集を検討してください。あなたがフックを見たなら、あなたはおそらく尋ねていないでしょう、そう….

また、 チケットを開いてWordPressにパッチを送信する というオプションもあり、必要なフックを手に入れようとします。

0
s_ha_dum