GET_POST不支持POST_STATUS

时间:2014-04-23 作者:Vijay Sharma

我有一个自定义post类型“许可证”,其自定义post状态为“活动、非活动、取消、过期”。但是,当我运行get\\u posts查询以仅获取处于活动状态的帖子时,它会返回所有帖子,而不管状态如何。

$active_licenses = get_posts( array(
        \'post_type\' => \'license\',
        \'post_status\'    => \'active\',
        \'posts_per_page\' => -1,
        \'orderby\'        => \'ID\',
        \'order\'          => \'DESC\',

    ) );
我不知道我做错了什么。

2 个回复
SO网友:Tyler Carter

我会尝试使用\'perm\' => \'readable\' 在查询参数中,以确保WP_Query 运行权限检查。

SO网友:klenwell

你需要register the custom post status.

将以下功能(根据您的自定义状态进行调整)添加到functions.php 为我解决了这个问题:

/**
 * Register custom post status: license
 */
function register_custom_post_status_license() {
    $custom_status = \'license\';
    $count_label = \'License <span class="count">(%s)</span>\';

    register_post_status( $custom_status, array(
        \'label\'                     => _x( \'License\', \'post\' ),
        \'public\'                    => true,
        \'exclude_from_search\'       => false,
        \'show_in_admin_all_list\'    => true,
        \'show_in_admin_status_list\' => true,
        \'label_count\'               => _n_noop( $count_label, $count_label ),
    ) );
}
add_action( \'init\', \'register_custom_post_status_license\' );

结束

相关推荐