Advertisement
mbis

MyListing - dynamically change taxonomies

Feb 26th, 2023
827
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.93 KB | None | 0 0
  1. /**
  2.      * If a single MyListing term is detected, load filtered "Explore listing" page instead of default archive template
  3.      *
  4.      * @param array $query The query object.
  5.      * @param array $old_query The original query array.
  6.      *
  7.      * @return array The new query array is being returned if the explore_tab property is present. Otherwise, the original query is returned.
  8.      */
  9. function bis_detect_archives( $query, $old_query ) {
  10.     if ( function_exists( 'mylisting_custom_taxonomies' ) && empty( $_POST['submit_job'] ) ) {
  11.         $explore_page_id = get_option( 'options_general_explore_listings_page', false );
  12.         if ( empty( $explore_page_id ) ) {
  13.             return $query;
  14.         }
  15.  
  16.         $ml_query_vars = array(
  17.             'case27_job_listing_tags' => array(
  18.                 'query_var' => 'explore_tag',
  19.                 'tab'       => 'tags'
  20.             ),
  21.             'region'                  => array(
  22.                 'query_var' => 'explore_region',
  23.                 'tab'       => 'regions'
  24.             ),
  25.             'job_listing_category'    => array(
  26.                 'query_var' => 'explore_category',
  27.                 'tab'       => 'categories'
  28.             )
  29.         );
  30.  
  31.         $ml_taxonomies = mylisting_custom_taxonomies();
  32.  
  33.         if ( ! empty( $ml_taxonomies ) && is_array( $ml_taxonomies ) ) {
  34.             $ml_taxonomies = array_keys( $ml_taxonomies );
  35.  
  36.             foreach ( $ml_taxonomies as $taxonomy ) {
  37.                 $ml_query_vars[ $taxonomy ] = array(
  38.                     'query_var' => "explore_{$taxonomy}",
  39.                     'tab'       => $taxonomy
  40.                 );
  41.             }
  42.         }
  43.  
  44.         if ( ! empty( $query['taxonomy'] ) && in_array( $query['taxonomy'], array_keys( $ml_query_vars ) ) ) {
  45.             $taxonomy_data = $ml_query_vars[ $query['taxonomy'] ];
  46.  
  47.             // 1. Set-up new query array variable
  48.             $new_query = array(
  49.                 "page_id"                   => $explore_page_id,
  50.                 "explore_tab"               => $taxonomy_data['tab'],
  51.                 $taxonomy_data['query_var'] => $query['term']
  52.             );
  53.         }
  54.     }
  55.  
  56.     return ( ! empty( $new_query["explore_tab"] ) ) ? $new_query : $query;
  57. }
  58. add_filter( 'permalink_manager_filter_query', 'bis_detect_archives', 1, 2 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement