Add custom order to staff jobs

This commit is contained in:
Brian Miyaji
2017-11-18 19:29:42 +11:00
parent 77f46b23b0
commit 5f150971f1
4 changed files with 42 additions and 9 deletions

View File

@@ -39,11 +39,15 @@ class SP_Admin_Taxonomies {
add_action( 'edited_sp_position', array( $this, 'save_fields' ), 10, 1 );
add_action( 'create_sp_position', array( $this, 'save_fields' ), 10, 1 );
// Add job field
add_action( 'sp_role_edit_form_fields', array( $this, 'edit_taxonomy_fields' ), 10, 1 );
add_action( 'edited_sp_role', array( $this, 'save_fields' ), 10, 1 );
// Change league columns
add_filter( 'manage_edit-sp_league_columns', array( $this, 'taxonomy_columns' ) );
add_filter( 'manage_sp_league_custom_column', array( $this, 'column_value' ), 10, 3 );
// Change league columns
// Change season columns
add_filter( 'manage_edit-sp_season_columns', array( $this, 'taxonomy_columns' ) );
add_filter( 'manage_sp_season_custom_column', array( $this, 'column_value' ), 10, 3 );
@@ -54,6 +58,10 @@ class SP_Admin_Taxonomies {
// Change position columns
add_filter( 'manage_edit-sp_position_columns', array( $this, 'position_columns' ) );
add_filter( 'manage_sp_position_custom_column', array( $this, 'column_value' ), 10, 3 );
// Change job columns
add_filter( 'manage_edit-sp_role_columns', array( $this, 'taxonomy_columns' ) );
add_filter( 'manage_sp_role_custom_column', array( $this, 'column_value' ), 10, 3 );
}
/**

View File

@@ -53,6 +53,7 @@ function sp_get_screen_ids() {
'edit-sp_venue',
'edit-sp_league',
'edit-sp_season',
'edit-sp_position',
'edit-sp_position',
'edit-sp_role',
) );
}

View File

@@ -49,7 +49,7 @@ class SP_Staff extends SP_Custom_Post {
* @return array
*/
public function role() {
$roles = get_the_terms( $this->ID, 'sp_role' );
$roles = $this->get_roles();
if ( $roles && ! is_wp_error( $roles ) ):
return array_shift( $roles );
else:
@@ -64,11 +64,37 @@ class SP_Staff extends SP_Custom_Post {
* @return array
*/
public function roles() {
$roles = get_the_terms( $this->ID, 'sp_role' );
$roles = $this->get_roles();
if ( $roles && ! is_wp_error( $roles ) ):
return (array) $roles;
else:
return array();
endif;
}
public function get_roles() {
$roles = get_the_terms( $this->ID, 'sp_role' );
if ( ! is_array( $roles ) || ! sizeof( $roles ) ) return array();
$include = wp_list_pluck( $roles, 'term_id' );
return get_terms( array(
'taxonomy' => 'sp_role',
'hide_empty' => false,
'orderby' => 'meta_value_num',
'include' => $include,
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'sp_order',
'compare' => 'NOT EXISTS'
),
array(
'key' => 'sp_order',
'compare' => 'EXISTS'
),
),
) );
}
}

View File

@@ -44,11 +44,9 @@ function sportspress_the_title( $title, $id = null ) {
endif;
elseif ( is_singular( 'sp_staff' ) ):
$staff = new SP_Staff( $id );
$roles = $staff->roles();
if ( ! empty( $roles ) ):
$roles = wp_list_pluck( $roles, 'name' );
$title = '<strong class="sp-staff-role">' . implode( '<span class="sp-staff-role-delimiter">/</span>', $roles ) . '</strong> ' . $title;
endif;
$role = $staff->role();
if ( $role )
$title = '<strong class="sp-staff-role">' . $role->name . '</strong> ' . $title;
endif;
endif;