web-dev-qa-db-fra.com

Comment changer la position par défaut de WP meta box?

Je me demande s’il existe un moyen de modifier la position par défaut des boîtes de méta Wordpresses, telles que "image sélectionnée" pour les types de publication personnalisés, sans avoir à les faire glisser manuellement?

Exemple:  Meta Box Positioning Example

16
Mr.Brown

Vous pouvez supprimer les méta-boîtes par défaut avec remove_meta_box et les rajouter dans une position différente avec add_meta_box:

add_action('do_meta_boxes', 'wpse33063_move_meta_box');

function wpse33063_move_meta_box(){
    remove_meta_box( 'postimagediv', 'post', 'side' );
    add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}

Cela va l'enlever de la colonne latérale et l'ajouter à la colonne principale. remplacez post dans cet exemple par le type de votre message personnalisé.

20
Milo

J'ai eu du mal avec ça aussi. Je n'ai pas vraiment trouvé de moyen propre de redéfinir la mise en page/l'ordre, d'autant plus que les utilisateurs peuvent le modifier quand/s'ils déplacent les cases.

J'aime faire des choses 'avec' wordpress (ça rapporte généralement), mais ne pas entrer en conflit avec elle et la façon dont wordpress le fait est la suivante:

wordpress stocke les positions glissées par utilisateur et par écran. De nombreuses méta-clés utilisateur sont utilisées selon la page/l'écran affiché.

Vous pouvez donc ajouter une action ou un filtre pour chaque nouvel utilisateur afin de définir les paramètres utilisateur de la manière souhaitée.
1) Faites glisser et organisez la page que vous souhaitez affecter, puis 2) regardez dans phpmyadmin votre user-meta pour votre identifiant et voyez ce que wp y a stocké. 3) puis codez l'action d'un nouvel utilisateur comme suit si un utilisateur N'A PAS déjà défini ce paramètre (pour éviter d'écraser un choix personnel), vous pouvez le définir comme vous le souhaitez - avec la valeur que vous avez trouvée manuellement.

Pour vous faire une idée des méta-méta-utilisateurs que vous recherchez, voyez ces captures d'écran: http://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/

(J'ai fini par écrire un plugin générique pour pouvoir définir, en tant qu'administrateur, la mise en page de mon choix pour tous les utilisateurs pour toutes sortes de pages/écrans. Ils pourraient ensuite modifier cela, par exemple, à mesure qu'ils deviendraient plus compétents. Le plugin récupère simplement les valeurs utilisateur du modèle, il n'essaie même pas de définir la valeur sur une valeur codée en dur.)

5
anmari

Si vous souhaitez commander précisément vos méta-boîtes, vous pouvez utiliser ce plugin: https://wordpress.org/plugins/post-meta-box-order/

Il joue sur la meta-box-order_post de l'option user (table wp_usermeta).

Remarque 1: cette technique peut être appliquée à n'importe quel CPT personnalisé en modifiant la fin du drapeau: meta-box-order_ [YOUR_CPT].

Note 2: n'oubliez pas de changer le hash dans le code du plugin pour appliquer votre nouvelle commande à tous les utilisateurs existants.

0
rebe100x