web-dev-qa-db-fra.com

Style personnalisé sur la page options de profil

y a-t-il un moyen de styler la page de profil sur wordpress? J'aimerai ajouter quelque chose comme:

Début de la page juste en dessous de la balise <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">

Avant chaque balise <table> d'ouverture (notez "le php_e ('nom')")

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

Après chaque balise </table> de fermeture

    </div>
</div>

Après la balise </form>

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

Je ne suis pas intéressé par l'ajout d'un fichier CSS personnalisé, je me ferai un plaisir d'utiliser ce qui existe déjà.

En guise de test, j'ai édité le fichier user-edit.php de wp-admin et il a l'air bien, à mon avis bien meilleur.

Existe-t-il un moyen approprié d’ajouter ces div à la page?.

Edit, je connais le code suivant, mais j'espère qu'un organisme peut aider avec le "preg_replace" pour ajouter les div ci-dessus.

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

Cela fonctionne sur une page de profil standard (votre profil/profil) sans autres plugins installés.

D'autres plugins peuvent affecter le résultat global. Je pense que le code peut être amélioré, si quelqu'un sait comment essayer, s'il vous plaît.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

Vous avez fouillé dans les bonnes pages. Je pense que vous connaissez déjà la réponse. :) Si vous voyez un crochet au bon endroit, vous pouvez le faire. Sinon, faites ce que vous pouvez avec CSS ou Javascript, et si cela ne vous suffit pas, vous envisagez une édition de base. Si vous voyiez un crochet, vous ne le demanderiez probablement pas, alors ...

Vous avez également la possibilité d'ouvrir un ticket et de soumettre un correctif à WordPress et d'essayer d'obtenir les points d'ancrage souhaités.

0
s_ha_dum