Wordpress 自定义post状态未出现

Wordpress 自定义post状态未出现,wordpress,wordpress-theming,Wordpress,Wordpress Theming,我正在为我的一个客户端构建一个目录主题,我喜欢通过将帖子状态从publish修改为expired,在帖子中添加过期功能 为了实现这一点,我尝试使用以下代码注册一个新的post状态: add_action('init', 'registerStatus', 0); function registerStatus() { $args = array( 'label' => _x('Expired', 'Status Ge

我正在为我的一个客户端构建一个目录主题,我喜欢通过将帖子状态从publish修改为expired,在帖子中添加过期功能

为了实现这一点,我尝试使用以下代码注册一个新的post状态:

add_action('init',    'registerStatus', 0);

function registerStatus()
{
    $args = array(
        'label'                     =>  _x('Expired', 'Status General Name', 'z' ),
        'label_count'               =>  _n_noop('Expired (%s)',  'Expired (%s)', 'z'),
        'public'                    =>  true,
        'show_in_admin_all_list'    =>  true,
        'show_in_admin_status_list' =>  true,
        'exclude_from_search'       =>  true
    );

    register_post_status('expired', $args);
}
问题是我无法在WordPress帖子中看到注册帖子的状态,也无法在我的自定义帖子类型帖子状态中看到注册帖子的状态


我做错什么了吗?

自定义帖子状态功能仍在开发中(与过去四年一样!),请参阅,并发表评论。更多有用信息请点击此处:

就个人而言,我强烈反对实现自定义post状态,但如果真的有必要,您可以看看插件是如何处理的。

此功能非常有用

注意: 此函数不向管理面板添加已注册的post状态。此功能有待于将来的开发。请参阅。考虑添加这个参数的动作钩子。
现在是2014年11月,仍然存在自定义状态问题。我认为发布的原始代码很好。下面是一个视频,显示了在实现自定义post状态时遇到的问题。可能有一个解决方法,即挂接posts查询并执行自定义查询,但我还没有开始研究

我在制作新的WTG任务管理器插件时拍摄了该屏幕。我将把我的设计留在插件中,希望它能帮助鼓励WordPress在这方面的改进

为了得到正确的答案…我的自定义状态会显示在编辑帖子屏幕上,以显示我的自定义帖子类型,因此这是可能的。如果您想查看自定义帖子类型和状态的我的插件注册,请转到目录“posttypes/tasks.php”并使用一个工作示例。这是插件的官方页面


多亏了Ryan Bayne,我才能够在编辑帖子页面的管理面板中添加自定义帖子状态。没有可用的wordpress筛选器。他的jQuery解决方案是完美的。如果其他任何人正在搜索解决方案,则代码如下:

add_action( 'post_submitbox_misc_actions', 'my_post_submitbox_misc_actions' );
    function my_post_submitbox_misc_actions(){

    global $post;

    //only when editing a post
    if( $post->post_type == 'post' ){

        // custom post status: approved
        $complete = '';
        $label = '';   

        if( $post->post_status == 'approved' ){
            $complete = 'selected=\"selected\"';
            $label = '<span id=\"post-status-display\"> Approved</span>';
        }

        echo '<script>'.
                 'jQuery(document).ready(function($){'.
                     '$("select#post_status").append('.
                         '"<option value=\"approved\" '.$complete.'>'.
                             'Approved'.
                         '</option>"'.
                     ');'.
                     '$(".misc-pub-section label").append("'.$label.'");'.
                 '});'.
             '</script>';
    }
}
add_action('post_submitbox_misc_actions'、'my_post_submitbox_misc_actions');
函数my_post_submitbox_misc_actions(){
全球$员额;
//仅当编辑帖子时
如果($post->post\u type=='post'){
//自定义职位状态:已批准
$complete='';
$label='';
如果($post->post_status=='approved'){
$complete='selected=\'selected\';
$label=‘已批准’;
}
回显“”。
'jQuery(document).ready(函数($){'。
“$”(“选择#发布状态”)。追加(”。
'"'.
“批准”。
'"'.
');'.
“$(“.misc-pub-section-label”).append(“.$label.”)。
'});'.
'';
}
}

在WP 4.8.2中,您必须更改
$label='Approved'
$label='Approved'
'$(“.misc pub section label”)。附加(“.$label.”)至<代码>'$(“.misc pub section#post status display”)。附加(“.$label.”)。仅供参考:强烈建议采用编辑流。我能够轻松地添加额外的职位状态,我的自定义职位类型后,花了1个多小时没有取得任何进展与自定义代码!