Type de message personnalisé - champ de commande
-
-
Dupliquer: http://wordpress.stackexchange.com/questions/43970/adding-menu-order-column-to-custom-post-type-admin-screenDuplicate: http://wordpress.stackexchange.com/questions/43970/adding-menu-order-column-to-custom-post-type-admin-screen
- 0
- 2012-09-18
- marfarma
-
2 réponses
- votes
-
- 2012-09-18
Lorsque vous déclarez votretype depublicationpersonnalisé à l'aide de lafonction register_post_type,vous devez ajouter des "attributs depage" au champ de support,comme dans l'exemple suivant:
register_post_type('myposttype', array( 'supports' => array('title', 'editor', 'page-attributes'), 'hierarchical' => false ));
Vous devrez également ajoutertoutes les autresméta-boîtesprisesen charge dans le champ "supports",voir http://codex.wordpress.org/Function_Reference/register_post_type pourplus d'informations sur les champs register_post_type.
Deplus,pour autant queje sache,iln'y apas demoyenintégrépourempêcher deux dumême ordre,c'estparce que vouspouvez créer un sous-ordrebasé sur l'hérarchie (donc ungroupe depagesenfantspeut avoir un ordre différent de celuiun autre)
When declaring your custom post type using the register_post_type function, you have to add 'page-attributes' to the support field, like in the following example:
register_post_type('myposttype', array( 'supports' => array('title', 'editor', 'page-attributes'), 'hierarchical' => false ));
You'll need to add any other supported meta boxes as well to the 'supports' field, see http://codex.wordpress.org/Function_Reference/register_post_type for more information about the register_post_type fields.
Also as far as I know there isn't any built in way to prevent two of the same order, this is because you can create sub-ordering based on heirarchy (so one group of children pages can have a different ordering than another)
-
l'utilisation de `page-attributes`présente à lafois le champ` order`et le champ `parent`.Comment supprimer le champ «parent»?using `page-attributes` presents both the `order` field and the `parent` field. How do I get rid of the `parent` field?
- 0
- 2012-09-19
- Force Flow
-
Çane fait rien.Définir `hierarchical` surfalse s'en débarrasse.Nevermind. Setting `hierarchical` to false gets rid of it.
- 0
- 2012-09-19
- Force Flow
-
Monmal,je ne savaispas que vousne vouliezpas aussi lapageparents.Jemettrai àjourma réponsepour l'exclure.My bad, didn't realize you didn't also want the page parents. I'll update my answer to exclude it.
- 0
- 2012-09-20
- Dave Hunt
-
Salut.J'ai ce codemaisje ne vois rien: '' //Type depublicationpersonnalisé du service add_action ('init','create_post_type'); function create_post_type () { $ supports_args=tableau ( 'title','editor','page-attributes' ); register_post_type ('service', tableau ( 'labels'=>tableau ( 'name'=> __ ('Services'), 'singular_name'=> __ ('Service'), 'supports'=> $ supports_args, 'hierarchical'=>faux ), 'public'=> vrai, 'has_archive'=> vrai, //'menu_position'=> 2 ) ); } ''Hi. I have this code but I see nothing: ``` // Service Custom Post Type add_action( 'init', 'create_post_type' ); function create_post_type() { $supports_args = array( 'title', 'editor', 'page-attributes' ); register_post_type( 'service', array( 'labels' => array( 'name' => __( 'Services' ), 'singular_name' => __( 'Service' ), 'supports' => $supports_args, 'hierarchical' => false ), 'public' => true, 'has_archive' => true, //'menu_position' => 2 ) ); } ```
- 0
- 2017-07-20
- Sylar
-
@Sylar Jeme rends compte que c'esttrèstard,maisilme semble que votre 'supports'=> $ supports_args,'hierarchical'=>falseest dans lamauvaisepartie dutableau.Vous l'avezimbriqué sous letableau labels de votreexemple,il devrait être dans letableau debase,aumêmeniveau que 'public'=>true@Sylar I realize this is very late, but it looks to me like your 'supports' => $supports_args, 'hierarchical' => false is in the wrong part of the array. You have it nested under the labels array in your example, it should be in the base array, at the same level as 'public' => true
- 0
- 2018-03-14
- Dave Hunt
-
- 2012-09-18
Enplus de la réponse de @ Dave-Hunt,vouspouvez également ajouter unfiltre,tel que le suivant,pour définir un ordrepersonnalisé - dans ce cas,alphabétiquepartitre. (Codegrâce au billet deblog de Mark Leong. ) Supprimez la coche
is_admin()
,si vous souhaitez égalementpersonnaliser order_by sur lefront-end.function set_custom_post_types_admin_order ($ wp_query) { if (is_admin ()) { //Récupère letype depublication de la requête $post_type=$ wp_query-> query ['post_type']; if ($post_type=='POST_TYPE') { //La valeur 'orderby'peut êtren'importe quelnom de colonne $ wp_query-> set ('orderby','title'); //La valeur de 'commande'peut être ASC ou DESC $ wp_query-> set ('ordre','ASC'); } } } add_action ('pre_get_posts','set_custom_post_types_admin_order');
<❯Mise àjour
Pour la validationpréalable à l'enregistrement,consultez cette réponse: https://wordpress.stackexchange.com/a/40095/4645 où vos options sont discutées. Fondamentalement,cela se résume àjQuerypersonnalisé,car WordPressn'apas de hook depré-sauvegarde.
Aussi (en dupliquantmon commentaireprécédenticipour référencefuture),voici commentexposer le champ 'ordre dumenu' dans l'admin,afin qu'il soitmodifiablepar l'utilisateur,comme c'est le caspour lespages: Ajout de «l'ordre desmenus» colonne vers l'écran d'administration dutype demessagepersonnalisé
In addition to @Dave-Hunt's response, you can also add a filter, such as the following, to define a custom order - in this case, alphabetical by title. (Code thanks to Mark Leong's blog post.) Remove the
is_admin()
check, if you want you custom order_by on the front-end as well.function set_custom_post_types_admin_order($wp_query) { if (is_admin()) { // Get the post type from the query $post_type = $wp_query->query['post_type']; if ( $post_type == 'POST_TYPE') { // 'orderby' value can be any column name $wp_query->set('orderby', 'title'); // 'order' value can be ASC or DESC $wp_query->set('order', 'ASC'); } } } add_action('pre_get_posts', 'set_custom_post_types_admin_order');
Update
For pre-save validation, see this answer: https://wordpress.stackexchange.com/a/40095/4645 where your options are discussed. Basically, it comes down to custom jQuery, as WordPress doesn't have any pre-save hooks.
Also (duplicating my previous comment here for future reference), here's how to expose the 'menu order' field in the admin, so it's user-editable, as it is for pages: Adding 'menu order' column to custom post type admin screen
Dans untype depublicationpersonnalisé,existe-t-il unmoyen d'inclure le champ "commande" disponiblepour lespages?
Existe-t-il une logiqueintégrée quiempêche les valeursen double dans le champ "ordre"?
L'idéeest depouvoirtrier untype depublicationpersonnalisé selon un ordre spécifiépar l'utilisateur,puispar ordre alphabétique d'un champpersonnalisébasé sur une chaîne.