目录
描述
Register a post status.
A simple function for creating or modifying a post status based on the parameters given. The function will accept two parameters; a string for the post status name and an array of arguments.
This function should not be called before the 'init' action.
NOTICE:
This function does NOT add the registered post status to the admin panel. This functionality is pending future development. Please refer to Trac Ticket #12706.
Consider the action hook post_submitbox_misc_actions for adding this parameter.
用法
<?php register_post_status( $post_status, $args ); ?>
参数
$post_status
(string) (必填) Name of the post status. Maximum length is 20 characters.
默认值: None
$args
(array|string) (可选) An array of arguments for this post status.
默认值: None
Arguments
label
(string) (可选) A descriptive name for the post status marked for translation.
默认值: $post_status
public
(bool) (可选) Whether posts of this status should be shown in the front end of the site.
默认值: false
exclude_from_search
(bool) (可选) Whether to exclude posts with this post status from search results.
默认值: false
show_in_admin_all_list
(bool) (可选) Whether to include posts in the edit listing for their post type.
默认值: true
show_in_admin_status_list
(bool) (可选) Show in the list of statuses with post counts at the top of the edit listings, e.g. All (12) , Published (9) , My Custom Status (2) ...
默认值: true
label_count
(array) (可选) The text to display on the admin screen (or you won't see your status count). Array should be in the same format as _n_noop() output.
默认值: None
历史
- 添加于 版本: 3.0
源文件
register_post_status() 函数的代码位于 wp-includes/post.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
/* ---------------------------------- * wordpress之魂 © http://wphun.com * ---------------------------------- */ /** * Register a post status. Do not use before init. * * A simple function for creating or modifying a post status based on the * parameters given. The function will accept an array (second optional * parameter), along with a string for the post status name. * * Arguments prefixed with an _underscore shouldn't be used by plugins and themes. * * @since 3.0.0 * @global array $wp_post_statuses Inserts new post status object into the list * * @param string $post_status Name of the post status. * @param array|string $args { * Optional. Array or string of post status arguments. * * @type bool|string $label A descriptive name for the post status marked * for translation. Defaults to value of $post_status. * @type bool|array $label_count Descriptive text to use for nooped plurals. * Default array of $label, twice * @type bool $exclude_from_search Whether to exclude posts with this post status * from search results. Default is value of $internal. * @type bool $_builtin Whether the status is built-in. Core-use only. * Default false. * @type bool $public Whether posts of this status should be shown * in the front end of the site. Default false. * @type bool $internal Whether the status is for internal use only. * Default false. * @type bool $protected Whether posts with this status should be protected. * Default false. * @type bool $private Whether posts with this status should be private. * Default false. * @type bool $publicly_queryable Whether posts with this status should be publicly- * queryable. Default is value of $public. * @type bool $show_in_admin_all_list Whether to include posts in the edit listing for * their post type. Default is value of $internal. * @type bool $show_in_admin_status_list Show in the list of statuses with post counts at * the top of the edit listings, * e.g. All (12) | Published (9) | My Custom Status (2) * Default is value of $internal. * } * @return object */ function register_post_status( $post_status, $args = array() ) { 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; $post_status = sanitize_key($post_status); $args->name = $post_status; // Set various defaults. if ( null === $args->public && null === $args->internal && null === $args->protected && null === $args->private ) $args->internal = true; if ( null === $args->public ) $args->public = false; if ( null === $args->private ) $args->private = false; if ( null === $args->protected ) $args->protected = false; if ( null === $args->internal ) $args->internal = false; if ( null === $args->publicly_queryable ) $args->publicly_queryable = $args->public; if ( null === $args->exclude_from_search ) $args->exclude_from_search = $args->internal; if ( null === $args->show_in_admin_all_list ) $args->show_in_admin_all_list = !$args->internal; if ( null === $args->show_in_admin_status_list ) $args->show_in_admin_status_list = !$args->internal; if ( false === $args->label ) $args->label = $post_status; if ( false === $args->label_count ) $args->label_count = array( $args->label, $args->label ); $wp_post_statuses[$post_status] = $args; return $args; } |
- 原文:http://codex.wordpress.org/Function_Reference/register_post_status
- 翻译:黄聪@WordPress之魂