web-dev-qa-db-fra.com

Type de message personnalisé - champ de commande

Dans un type d'article personnalisé, existe-t-il un moyen d'inclure le champ "commande" disponible pour les pages?

Existe-t-il une logique intégrée empêchant les valeurs en double dans le champ "ordre"?

L'idée est de pouvoir trier un type de publication personnalisé selon un ordre spécifié par l'utilisateur, puis alphabétiquement selon un champ personnalisé basé sur une chaîne.

11
Force Flow

Lorsque vous déclarez votre type d'article personnalisé à l'aide de la fonction register_post_type, vous devez ajouter des "attributs de page" au champ d'assistance, comme dans l'exemple suivant:

register_post_type('myposttype', array(
    'supports' => array('title', 'editor', 'page-attributes'),
    'hierarchical' => false
));

Vous devrez également ajouter toute autre boîte à méta prise en charge au champ "supports", voir http://codex.wordpress.org/Function_Reference/register_post_type pour plus d'informations sur les champs register_post_type.

Aussi, pour autant que je sache, il n'y a pas de moyen intégré d'empêcher deux ordres du même ordre, car vous pouvez créer un sous-ordre basé sur la hiérarchie (afin qu'un groupe de pages enfants puisse avoir un ordre différent de celui d'un autre).

23
Dave Hunt

En plus de la réponse de @ Dave-Hunt, vous pouvez également ajouter un filtre, tel que le suivant, pour définir un ordre personnalisé - dans ce cas, alphabétique par titre. (Code grâce à Article de blog de Mark Leong. ) Supprimez la coche is_admin(), si vous souhaitez également que order_by soit personnalisé sur le serveur frontal.

 function set_custom_post_types_admin_order ($ wp_query) {
 if (is_admin ()) {
 
 // Récupère le type de message de la requête 
 $ post_type = $ wp_query-> query ['post_type']; 
 
 if ($ post_type == 'POST_TYPE') {
 
 // valeur 'orderby' peut n'importe quel nom de colonne 
 $ wp_query-> set ('orderby', 'title'); 
 
 // la valeur 'order' peut être ASC ou DESC 
 $ wp_query-> set ('commande', 'ASC'); 
} 
} 
} 
 add_action ('pre_get_posts', 'set_custom_post_types_admin_order'); .____.]

Mise à jour

Pour la validation préalable à l’enregistrement, voir la réponse suivante: https://wordpress.stackexchange.com/a/40095/4645 où sont discutées vos options. En gros, il s’agit de jQuery personnalisé, car WordPress n’a pas de crochets de pré-sauvegarde.

Aussi (en dupliquant ici mon commentaire précédent pour référence future), voici comment exposer le champ 'ordre du menu' dans l'admin, de sorte qu'il soit modifiable par l'utilisateur, comme pour les pages: Ajout de la colonne 'ordre du menu' à un type d'article personnalisé écran d'administration

3
marfarma