WordPress私人帖子不会显示给其他管理员

时间:2021-07-09 作者:user3613253

默认情况下,所有管理员都可以看到Wordpress的私人帖子。但在这个构建中,出于某种原因,私人帖子只会显示(在页面上)给创建它的管理员。我很困惑。我需要所有管理员查看显示的私人帖子。

这是一个使用自定义查询的自定义帖子类型,所以可能我在那里做了些什么。

// query upcoming webinars - Sort by date from date Picker
    $args_upcoming = array(
      \'cat\' => $thiscat_id,
      \'numberposts\' => -1,
      \'meta_key\'=>\'webinar_date\',  
      \'orderby\' => \'meta_value\', 
      \'order\' => \'ASC\',
      \'meta_query\' => array(
          \'key\' => \'webinar_date\',
          \'value\' => $query_date,
          \'compare\' => \'>=\',
          \'type\' => \'DATE\'
        ),
$upcoming_query = new WP_Query( $args_upcoming );
自定义post类型设置程序:

** START--- Custom Post Type Webinars ---*/
function custom_post_type_webinars() {
// Set UI labels for Custom Post Type
    $labels = array(
        \'name\'                => _x( \'Webinars\', \'Post Type General Name\', \'twentytwenty\' ),
        \'singular_name\'       => _x( \'Webinar\', \'Post Type Singular Name\', \'twentytwenty\' ),
        \'menu_name\'           => __( \'Webinars\', \'twentytwenty\' ),
        \'parent_item_colon\'   => __( \'Parent Webinar\', \'twentytwenty\' ),
        \'all_items\'           => __( \'All Webinars\', \'twentytwenty\' ),
        \'view_item\'           => __( \'View Webinar\', \'twentytwenty\' ),
        \'add_new_item\'        => __( \'Add New Webinar\', \'twentytwenty\' ),
        \'add_new\'             => __( \'Add New\', \'twentytwenty\' ),
        \'edit_item\'           => __( \'Edit Webinar\', \'twentytwenty\' ),
        \'update_item\'         => __( \'Update Webinar\', \'twentytwenty\' ),
        \'search_items\'        => __( \'Search Webinar\', \'twentytwenty\' ),
        \'not_found\'           => __( \'Not Found\', \'twentytwenty\' ),
        \'not_found_in_trash\'  => __( \'Not found in Trash\', \'twentytwenty\' ),
    );     
// Set other options for Custom Post Type
    $args = array(
        \'label\'               => __( \'Webinars\', \'twentytwenty\' ),
        \'description\'         => __( \'Upcoming Webinars\', \'twentytwenty\' ),
        \'labels\'              => $labels,
        \'supports\'            => array( \'title\', \'editor\', \'excerpt\', \'thumbnail\', \'revisions\', \'custom-fields\', ),
        \'hierarchical\'        => true,
        \'public\'              => true,
        \'show_ui\'             => true,
        \'show_in_menu\'        => true,
        \'show_in_nav_menus\'   => true,
        \'show_in_admin_bar\'   => true,
        \'menu_position\'       => 5,
        \'can_export\'          => true,
        \'has_archive\'         => true,
        \'public\'              => true,
        \'exclude_from_search\' => false,
        \'publicly_queryable\'  => true,
        \'capability_type\'     => \'post\',
        \'show_in_rest\' => true,
 
    );  
    register_post_type( \'webinars\', $args );
} 
add_action( \'init\', \'custom_post_type_webinars\', 0 );
/** END-- Custom Post Type Webinars --------------*/
网站是https://ibkrwebinars.com/category/webinars-upcoming/

再次:我创建的私人帖子显示给我。但不发送给其他登录的管理员,反之亦然。

1 个回复
SO网友:user3613253

我在pre\\u get\\u posts函数中找到了解决方案:我添加了:

if ( is_user_logged_in() ) {
        $query->set( \'post_status\', array(\'private\', \'publish\'));
    } 
功能完整代码:

/*------- START add webinars custom post type to the main query loop----------*/
add_filter(\'pre_get_posts\', \'query_post_type\');
function query_post_type($query) {
  if( is_category() ) {
    $post_type = get_query_var(\'post_type\');
    // show private posts to admins too.
    if ( is_user_logged_in() ) {
        $query->set( \'post_status\', array(\'private\', \'publish\'));
    } 
    if($post_type)
        $post_type = $post_type;
    else
        $post_type = array(\'nav_menu_item\', \'post\', \'webinars\'); // don\'t forget nav_menu_item to allow menus to work!
    $query->set(\'post_type\',$post_type);
    return $query;
    }
}
/*------- END add webinars custom post type to the main query loop----------*/