Tipo de publicación personalizada: campo de orden

11

En un tipo de publicación personalizada, ¿hay alguna forma de incluir el campo "orden" que está disponible para las páginas?

¿Hay alguna lógica incorporada que impida valores duplicados en el campo "orden"?

La idea es poder ordenar un tipo de publicación personalizada por orden especificado por el usuario, y luego alfabéticamente por un campo personalizado basado en cadenas.

    
pregunta Force Flow 18.09.2012 - 15:50

2 respuestas

22

Al declarar su tipo de publicación personalizada usando la función register_post_type, debe agregar 'atributos de página' al campo de soporte, como en el siguiente ejemplo:

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

Tendrá que agregar cualquier otra meta caja compatible al campo 'ayudas', vea enlace para más información sobre los campos register_post_type.

También, por lo que sé, no hay ninguna forma integrada para evitar dos del mismo orden, esto se debe a que puede crear subordenaciones basadas en jerarquía (por lo que un grupo de páginas secundarias puede tener un orden diferente al de otro)

    
respondido por el Dave Hunt 18.09.2012 - 15:58
3

Además de la respuesta de @ Dave-Hunt, también puede agregar un filtro, como el siguiente, para definir un orden personalizado, en este caso, alfabético por título. (Codifique gracias a la publicación del blog de Mark Leong. ) Quitar la verificación is_admin() , si también desea personalizar order_by en el front-end.

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');

Actualizar

Para la validación previa al guardado, vea esta respuesta: enlace donde se discuten sus opciones Básicamente, todo se reduce a jQuery personalizado, ya que WordPress no tiene ningún gancho de guardado previo.

También (duplicando mi comentario anterior aquí para referencia futura), aquí se explica cómo exponer el campo 'orden de menú' en el administrador, por lo que es editable por el usuario, como lo es para las páginas: Agregando la columna 'orden de menú' a la pantalla de administrador de tipo de publicación personalizada

    
respondido por el marfarma 18.09.2012 - 16:04

Lea otras preguntas en las etiquetas