Изменение аргументов состояния сообщения

Можно ли редактировать существующие зарегистрированные статусы сообщений?

Я использую плагин Edit Flow для создания настраиваемых статусов, однако плагин не предоставляет возможность устанавливать, являются ли статусы «общедоступными» или нет. Я вошел в код и смог вставить его, но, очевидно, это будет перезаписано любыми обновлениями. По сути, я ищу дополнительную функцию add_post_type_support () для статусов сообщений.

Так что-то вроде

add_action('init', 'my_custom_init'); function my_custom_init() { add_post_status_support( 'custom_status', array('public'=>true) ); } 

Solutions Collecting From Web of "Изменение аргументов состояния сообщения"

Вы можете изменить статус сообщения после init, изменив глобальную переменную $wp_post_statusses :

 function alt_post_status() { global $wp_post_statuses; $wp_post_statuses['custom_status']->public = true; } add_action( 'init', 'alt_post_status' ); 

register_post_status () (строка 922) делает то же самое:

 ... global $wp_post_statuses; if (!is_array($wp_post_statuses)) $wp_post_statuses = array(); // Args prefixed with an underscore are reserved for internal use. $defaults = array( 'label' => false, 'label_count' => false, 'exclude_from_search' => null, '_builtin' => false, 'public' => null, 'internal' => null, 'protected' => null, 'private' => null, 'publicly_queryable' => null, 'show_in_admin_status_list' => null, 'show_in_admin_all_list' => null, ); $args = wp_parse_args($args, $defaults); $args = (object) $args; ... $wp_post_statuses[$post_status] = $args; ...