未显示自定义帖子类型作者的WordPress帖子计数

时间:2014-07-24 作者:Metin

我创建了一些基于Dave Rupert\'s boilerplate 然后通过将现有帖子迁移到这些新创建的CPTPost Type Switcher 插件。除了更改CPT名称和support* 属性。

\'supports\' => array(
   \'title\',
   \'editor\',
   \'author\',
   \'thumbnail\',
   \'excerpt\',
   \'comments\'
),
迁移的帖子可以正确显示其作者,并且可以更改帖子的作者。但是,当我在中查看作者列表时Users 第节,非管理员作者的帖子计数器为zero (0). 暂时将作者角色更改为admin并再次更改,这无助于显示单个作者的正确帖子数量。

我也检查了数据库记录(请检查下表中wp\\U帖子的视图)。作者ID似乎被正确分配给了各个帖子。尽管如此,我还是认为我打破了数据库中某个地方的后作者关系,但我可以找出其中的原因。

有人知道如何解决这个问题吗?

view from wp_posts table

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

这是我从一个被抛弃的问题中重新得到的答案。我想这会帮你解决这个问题

默认情况下,所有自定义帖子类型都会从主查询中排除,这就是为什么在转到前端作者页面时看不到任何帖子的原因。要完成此操作,您需要修改主查询以包括这些职位类型。为此,您将使用pre_get_posts 行动挂钩。您还将使用条件标记is_author() 检查您是否在“作者存档”页面上。(我已经使用我的自定义帖子类型测试了这段代码event_typecameras, 因此,只需相应地更改即可)

function custom_post_author_archive($query) {
    if ($query->is_author() && $query->is_main_query() )
        $query->set( \'post_type\', array(\'event_type\', \'cameras\', \'post\', \'page\') );
}
add_action(\'pre_get_posts\', \'custom_post_author_archive\');
为了解决后端的post count问题,我认为取消设置posts 列,然后将其替换为一个新列,该列将统计所有帖子类型,即event\\u type、post和page。您可以相应地对此进行编辑

在这里,您将使用manage_users_columnsmanage_users_custom_column 这并没有很好的记录。

function add_extra_user_column($columns) { //Add CPT Column for events and remove default posts column
    unset($columns[\'posts\']);
    return array_merge( $columns, 
              array(\'foo\' => __(\'Posts\')) );
}
add_filter(\'manage_users_columns\' , \'add_extra_user_column\');

function add_post_type_column( $value, $column_name, $id ) { //Print event_type value
  if( $column_name == \'foo\' ) {
    global $wpdb;
    $count = (int) $wpdb->get_var( $wpdb->prepare(
      "SELECT COUNT(ID) FROM $wpdb->posts WHERE 
       post_type IN (\'event_type\', \'cameras\', \'post\', \'page\') AND post_status = \'publish\' AND post_author = %d",
       $id
    ) );

    if ( $count > 0 ) {
        $r = "<a href=\'edit.php?author=$id\'>";
        $r .= $count;
        $r .= \'</a>\';
    } else {
        $r = 0;
    }

    return $r;
  }
}

add_filter( \'manage_users_custom_column\', \'add_post_type_column\', 10, 3 );

结束

相关推荐

_Author_meta(‘user_url’,$Author->ID)工作不正常。我怎么才能解决这个问题?

我的博客上有两位作者和一位管理员。我在我的贡献者中使用以下代码。phpfunction contributors() { global $wpdb; $authors = $wpdb->get_results(\"SELECT ID, user_nicename from $wpdb->users ORDER BY display_name\"); foreach($authors as $author