Modify Post Status Arguments

时间:2012-12-18 作者:Kyle

是否可以编辑现有的注册职位状态?

我正在使用编辑流插件创建自定义状态,但是,该插件不提供设置状态是否为“公共”的选项。我查看了代码并能够将其插入,但很明显,任何更新都会覆盖该代码。本质上,我正在寻找一个补充函数来为post状态添加\\u post\\u type\\u support()。

比如说

add_action(\'init\', \'my_custom_init\');
function my_custom_init() {

      add_post_status_support( \'custom_status\', array(\'public\'=>true) );

}

1 个回复
最合适的回答,由SO网友:Mike Madern 整理而成

通过更改全局变量,可以在init之后更改post状态$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;

...

结束

相关推荐