web-dev-qa-db-ja.com

ユーザー管理ページにカスタム投稿タイプ数を表示する方法

WordPress管理者エリアのユーザーページに投稿数があります。カスタム投稿タイプのイベントがあります。イベント数を投稿数に追加するためのフック、またはイベント数のための列を追加するためのフックはありますか。

2
Scuba Kay

スコープに使用できる2つの非常に文書化されていないフック'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' );

user_events_column_value funcion内のSQLクエリでは、必ず正しい投稿タイプのスラッグを使用してください。

6
gmazzap