Wordpress - Custom post type - order field
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)
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