get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->term_relationships WHERE term_taxonomy_id = %d", $term ) ); do_action( 'edit_term_taxonomy', $term, $taxonomy ); $wpdb->update( $wpdb->term_taxonomy, compact( 'count' ), array( 'term_taxonomy_id' => $term ) ); do_action( 'edited_term_taxonomy', $term, $taxonomy ); } } function aio_lite_register_user_taxonomy() { register_taxonomy( 'department', 'user', array( 'public' => true, 'labels' => array( 'name' => __( 'Department' ), 'singular_name' => __( 'Department' ), 'menu_name' => __( 'Departments' ), 'search_items' => __( 'Search Departments' ), 'popular_items' => __( 'Popular Departments' ), 'all_items' => __( 'All Departments' ), 'edit_item' => __( 'Edit Department' ), 'update_item' => __( 'Update Department' ), 'add_new_item' => __( 'Add New Department' ), 'new_item_name' => __( 'New Department Name' ), 'separate_items_with_commas' => __( 'Separate departments with commas' ), 'add_or_remove_items' => __( 'Add or remove departments' ), 'choose_from_most_used' => __( 'Choose from the most popular departments' ), ), 'rewrite' => array( 'with_front' => true, 'slug' => 'author/department' // Use 'author' (default WP user slug). ), 'capabilities' => array( 'manage_terms' => 'edit_users', // Using 'edit_users' cap to keep this simple. 'edit_terms' => 'edit_users', 'delete_terms' => 'edit_users', 'assign_terms' => 'read', ), 'update_count_callback' => 'aio_lite_update_department_count' // Use a custom function to update the count. ) ); } add_action( 'personal_options_update', 'aio_tc_lite_save_user_department_terms' ); add_action( 'edit_user_profile_update', 'aio_tc_lite_save_user_department_terms' ); function aio_tc_lite_save_user_department_terms( $user_id ) { $tax = get_taxonomy( 'department' ); if ( !current_user_can( 'edit_user', $user_id ) && current_user_can( $tax->cap->assign_terms ) ) return false; $term = esc_attr( $_POST['department'] ); wp_set_object_terms( $user_id, array( $term ), 'department', false); clean_object_term_cache( $user_id, 'department' ); } add_action( 'admin_menu', 'aio_lite_add_department_admin_page' ); function aio_lite_add_department_admin_page() { $tax = get_taxonomy( 'department' ); add_users_page( esc_attr( $tax->labels->menu_name ), esc_attr( $tax->labels->menu_name ), $tax->cap->manage_terms, 'edit-tags.php?taxonomy=' . $tax->name ); } add_filter( 'manage_edit-departments_columns', 'aio_lite_manage_department_user_column' ); function aio_lite_manage_department_user_column( $columns ) { unset( $columns['posts'] ); $columns['users'] = __( 'Users' ); return $columns; } add_action( 'manage_department_custom_column', 'aio_lite_manage_department_column', 10, 3 ); function aio_lite_manage_department_column( $display, $column, $term_id ) { if ( 'users' === $column ) { $term = get_term( $term_id, 'department' ); echo $term->count; } } add_action( 'show_user_profile', 'aio_lite_edit_user_department_section' ); add_action( 'edit_user_profile', 'aio_lite_edit_user_department_section' ); function aio_lite_edit_user_department_section( $user ) { $tax = get_taxonomy( 'department' ); if ( !current_user_can( $tax->cap->assign_terms ) ) return; $terms = get_terms( 'department', array( 'hide_empty' => false ) ); ?>
|
ID, 'department', $term ) ); ?> /> |