Changeset 13461 for trunk/src/bp-core/bp-core-template-loader.php
- Timestamp:
- 04/24/2023 02:32:27 AM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-core/bp-core-template-loader.php
r13455 r13461 579 579 580 580 /** 581 * Parse the query for the Ajax context. 582 * 583 * @since 12.0.0 584 * 585 * @param WP_Query $referer_query WP_Query object. 586 */ 587 function bp_parse_ajax_referer_query( $referer_query ) { 588 if ( ! wp_doing_ajax() || 'rewrites' !== bp_core_get_query_parser() ) { 589 return; 590 } 591 592 /** 593 * Fires at the end of the bp_parse_ajax_referer_query function. 594 * 595 * Allow BuddyPress components to parse the ajax referer query. 596 * 597 * @since 12.0.0 598 * 599 * @param WP_Query $posts_query WP_Query instance. Passed by reference. 600 */ 601 do_action_ref_array( 'bp_parse_query', array( &$referer_query ) ); 602 } 603 604 /** 581 605 * Resets the query to fit our permalink structure if needed. 582 606 * … … 601 625 } 602 626 603 // Temporarly override the request uri. 604 if ( isset( $wp->request ) ) { 627 // Use the BP Rewrites API to parse the ajax referer request. 628 if ( wp_doing_ajax() ) { 629 if ( ! bp_has_pretty_urls() ) { 630 $matched_query = wp_parse_url( $bp_request, PHP_URL_QUERY ); 631 } else { 632 // Temporarly override the request uri. 633 $_SERVER['REQUEST_URI'] = $bp_request; 634 635 $wp_ajax = new WP(); 636 $wp_ajax->parse_request(); 637 638 // Extra step to check for root profiles. 639 $member = bp_rewrites_get_member_data( $wp_ajax->request ); 640 if ( isset( $member['object'] ) && $member['object'] ) { 641 $_SERVER['REQUEST_URI'] = trailingslashit( $bp->members->root_slug ) . $wp_ajax->request; 642 643 // Reparse the request. 644 $wp_ajax->parse_request(); 645 } 646 647 $matched_query = $wp_ajax->matched_query; 648 } 649 650 // Use a specific function to fire the `bp_parse_query` hook. 651 add_action( 'parse_query', 'bp_parse_ajax_referer_query', 2 ); 652 653 // Parse the matched query. 654 $query->parse_query( $matched_query ); 655 656 // Use to requery in case of root profiles. 657 } elseif ( isset( $wp->request ) ) { 658 // Temporarly override the request uri. 605 659 $_SERVER['REQUEST_URI'] = str_replace( $wp->request, $bp_request, $reset_server_request_uri ); 606 660
Note: See TracChangeset
for help on using the changeset viewer.