How to create a custom status?
How can I create a custom status for a custom post type (‘places’ in this example):
Add this function to your plugin or function file:
<?php /* * Create Custom Status 'removed' for CPT 'places' */ // add custom status for Places to edit post add_action( 'init', 'wpster_custom_post_status' ); function wpster_custom_post_status(){ register_post_status( 'removed', array( 'label' => _x( 'Removed', 'post' ), 'public' => true, 'show_in_admin_all_list' => false, 'show_in_admin_status_list' => true, 'label_count' => _n_noop( 'Removed <span class="count">(%s)</span>', 'Removed <span class="count">(%s)</span>' ) ) ); } // add custom status in quick edit post select bar for Places add_action('admin_footer-edit.php','wpster_append_post_status_quickedit'); function wpster_append_post_status_quickedit() { echo "<script> jQuery(document).ready( function() { jQuery( 'select[name=\"_status\"]' ).append( '<option value=\"removed\">Removed</option>' ); }); </script>"; } // add custom status in post select bar for Places add_action('admin_footer-post.php', 'wpster_append_post_status_edit'); function wpster_append_post_status_edit(){ global $post; $complete = ''; $label = ''; if($post->post_type == 'places'){ if($post->post_status == 'removed'){ $complete = ' selected="selected"'; $label = '<span id="post-status-display">Removed</span>'; } echo ' <script> jQuery(document).ready(function($){ $("select#post_status").append("<option value=\"removed\" '.$complete.'>Removed</option>"); $(".misc-pub-section label").append("'.$label.'"); }); </script> '; } } ?>