如何在用户管理页面中显示自定义帖子类型计数

时间:2014-03-04 作者:Scuba Kay

WordPress管理区的用户页面中有一个帖子计数。我有一个自定义的post类型事件。是否有一些钩子可用于将我的事件计数添加到post计数,或者为事件计数添加一列?

2 个回复
最合适的回答,由SO网友:gmazzap 整理而成

有两个非常没有文档记录的钩子\'manage_users_custom_column\'\'manage_users_columns\' 可以用于范围的。

它们以相同的方式工作\'manage_posts_custom_column\'\'manage_posts_columns\' 有更好的文档记录,请参阅Codex.

所以你可以这样做:

/*
 * Add Event Column 
 */
function users_events_column( $cols ) {
  $cols[\'user_events\'] = \'Events\';   
  return $cols;
}

/*
 * Print Event Column Value  
 */ 
function user_events_column_value( $value, $column_name, $id ) {
  if( $column_name == \'user_events\' ) {
    global $wpdb;
    $count = (int) $wpdb->get_var( $wpdb->prepare(
      "SELECT COUNT(ID) FROM $wpdb->posts WHERE 
       post_type = \'events\' AND post_status = \'publish\' AND post_author = %d",
       $id
    ) );
    return $count;
  }
}

add_filter( \'manage_users_custom_column\', \'user_events_column_value\', 10, 3 );
add_filter( \'manage_users_columns\', \'users_events_column\' );
仅确保在内部SQL查询中使用正确的post类型sluguser_events_column_value 功能

SO网友:Ituk

以下是对@gmazzap答案的改进,包括到帖子列表的链接:

/*
 * Add Location (business) Column to user screen
 */
function bayadaim_users_location_column( $cols ) {
  $cols[\'user_locations\'] = \'YOUR_COLUMN_NAME\';  
  return $cols;
}

/*
 * Print Event Column Value  
 */ 
function bayadaim_users_location_column_value( $value, $column_name, $id ) {
  if( $column_name == \'user_locations\' ) {
    global $wpdb;
    $count = (int) $wpdb->get_var( $wpdb->prepare(
      "SELECT COUNT(ID) FROM $wpdb->posts WHERE 
       post_type = \'YOUR_POST_TYPE\' AND post_status = \'publish\' AND post_author = %d",
       $id
    ) );
    $link = \'<a href="\' . admin_url() . \'edit.php?post_type=location\' . \'&author=\' . $id . \'" title="Posts location">\' . $count . \'</a>\';

    $return = ($count > 0) ? $link : $count;

    return $return;
  }
}

add_filter( \'manage_users_custom_column\', \'bayadaim_users_location_column_value\', 10, 3 );
add_filter( \'manage_users_columns\', \'bayadaim_users_location_column\' );

结束

相关推荐

users and usermeta table

每个用户在usermeta表中也必须有条目,还是可选的?最近,我遇到了一个wordpress数据库,它在用户表中有数千个用户,但只有少数用户在usermeta表中有条目。我想知道在什么情况下会发生这种情况,因为这些条目看起来不像是手动从数据库中删除的。