Changeset 2155197
- Timestamp:
- 09/12/2019 12:07:36 AM (7 years ago)
- Location:
- wp-soundsystem/trunk
- Files:
-
- 2 edited
-
wp-soundsystem.php (modified) (2 diffs)
-
wpsstm-core-tracks.php (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wp-soundsystem/trunk/wp-soundsystem.php
r2155192 r2155197 6 6 Author: G.Breant 7 7 Author URI: https://profiles.wordpress.org/grosbouff/#content-plugins 8 Version: 3.1. 28 Version: 3.1.3 9 9 License: GPL2 10 10 */ … … 37 37 * @public string plugin version 38 38 */ 39 public $version = '3.1. 2';39 public $version = '3.1.3'; 40 40 /** 41 41 * @public string plugin DB version -
wp-soundsystem/trunk/wpsstm-core-tracks.php
r2155192 r2155197 53 53 add_filter( 'template_include', array($this,'manager_template')); 54 54 55 add_filter( 'posts_join', array($this,'tracks_query_left_join_subtracks'), 10, 2 ); 55 add_filter( 'posts_join', array($this,'include_subtracks_query_join'), 10, 2 ); 56 add_filter( 'posts_join', array($this,'exclude_subtracks_query_join'), 10, 2 ); 56 57 add_filter( 'posts_fields', array($this,'tracks_query_subtrack_ids'), 10, 2 ); 57 58 add_filter( 'posts_where', array($this,'track_query_exclude_subtracks'), 10, 2 ); … … 453 454 $post_type = $screen->post_type; 454 455 $subtracks_exclude = get_query_var('subtrack_exclude'); 455 456 456 457 $link = add_query_arg( array('post_type'=>$post_type,'subtrack_exclude'=>true),admin_url('edit.php') ); 457 458 $count = count(WPSSTM_Core_Tracks::get_orphan_track_ids()); … … 461 462 ); 462 463 463 if ($subtracks_exclude === true){464 if ($subtracks_exclude){ 464 465 $attr['class'] = 'current'; 465 466 } … … 476 477 } 477 478 478 function tracks_query_left_join_subtracks($join,$query){479 function include_subtracks_query_join($join,$query){ 479 480 global $wpdb; 480 481 if ( !$this->is_subtracks_query($query) ) return $join; 481 482 482 483 $subtracks_table = $wpdb->prefix . wpsstm()->subtracks_table_name; 483 484 $join .= sprintf("INNER JOIN %s AS subtracks ON %s.ID = subtracks.track_id",$subtracks_table,$wpdb->posts); … … 485 486 } 486 487 488 function exclude_subtracks_query_join($join,$query){ 489 global $wpdb; 490 if ( !$query->get('subtrack_exclude') ) return $join; 491 492 $subtracks_table = $wpdb->prefix . wpsstm()->subtracks_table_name; 493 $join .= sprintf("LEFT JOIN %s AS subtracks ON %s.ID = subtracks.track_id",$subtracks_table,$wpdb->posts); //so we can rely on subtracks.subtrack_id = null 494 return $join; 495 } 496 487 497 /* 488 498 Include the subtrack_id when fetching subtracks … … 494 504 if ( !$this->is_subtracks_query($query) ) return $fields; 495 505 506 if ( $query->get('fields') === 'ids' ) return $fields;//when requesting ids, we don't want several fields returned. 507 496 508 //TOUCHECK SHOULD BE THIS? BUT NOT WORKING URGENT return sprintf('%s.ID,%s.subtrack_id',$wpdb->posts,'subtracks'); 497 509 … … 504 516 function track_query_exclude_subtracks($where,$query){ 505 517 global $wpdb; 506 if ( !$this->is_subtracks_query($query) ) return $where; 507 508 $subtracks_table = $wpdb->prefix . wpsstm()->subtracks_table_name; 509 510 $no_subtracks = $query->get('subtrack_exclude'); 511 512 if ($no_subtracks){ 513 $where .= sprintf(" AND subtracks.track_id IS NULL"); 514 } 515 518 519 if ( !$query->get('subtrack_exclude') ) return $where; 520 521 $where .= sprintf(" AND subtracks.track_id IS NULL"); 516 522 return $where; 517 523 } … … 1405 1411 'posts_per_page'=> -1, 1406 1412 'fields' => 'ids', 1407 'subtrack_query' => true,1408 1413 'subtrack_exclude' => true, 1409 1414 );
Note: See TracChangeset
for help on using the changeset viewer.