Changeset 5412 for trunk/bp-core/bp-core-functions.php
- Timestamp:
- 11/29/2011 08:58:28 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-core/bp-core-functions.php
r5406 r5412 1601 1601 remove_action( 'template_redirect', 'redirect_canonical' ); 1602 1602 } 1603 1604 /** 1605 * Canonicalizes BuddyPress URLs 1606 * 1607 * This function ensures that requests for BuddyPress content are always redirected to their 1608 * most specific, trailingslashed versions. 1609 * 1610 * @since 1.6 1611 * @see BP_Members_Component::setup_globals() where $bp->redirect_stack['base_url'] and 1612 * ['component'] may be set 1613 * @see bp_core_new_nav_item() where $bp->redirect_stack['action'] may be set 1614 */ 1615 function bp_redirect_canonical() { 1616 global $bp; 1617 1618 if ( !bp_is_blog_page() && apply_filters( 'bp_do_redirect_canonical', true ) ) { 1619 // build the URL in the address bar 1620 $requested_url = is_ssl() ? 'https://' : 'http://'; 1621 $requested_url .= $_SERVER['HTTP_HOST']; 1622 $requested_url .= $_SERVER['REQUEST_URI']; 1623 1624 // Stash query args 1625 $url_stack = explode( '?', $requested_url ); 1626 $req_url_clean = $url_stack[0]; 1627 1628 // Process the redirect stack 1629 if ( isset( $bp->redirect_stack['base_url'] ) ) { 1630 $url_stack[0] = $bp->redirect_stack['base_url']; 1631 } 1632 1633 if ( isset( $bp->redirect_stack['component'] ) ) { 1634 $url_stack[0] = trailingslashit( $url_stack[0] . $bp->redirect_stack['component'] ); 1635 } 1636 1637 if ( isset( $bp->redirect_stack['action'] ) ) { 1638 $url_stack[0] = trailingslashit( $url_stack[0] . $bp->redirect_stack['action'] ); 1639 } 1640 1641 if ( !empty( $bp->redirect_stack['action_variables'] ) ) { 1642 foreach( (array)$bp->redirect_stack['action_variables'] as $av ) { 1643 $url_stack[0] = trailingslashit( $url_stack[0] . $av ); 1644 } 1645 } 1646 1647 // Add trailing slash 1648 $url_stack[0] = trailingslashit( $url_stack[0] ); 1649 1650 // Only redirect if we've assembled a URL different from the request 1651 if ( $url_stack[0] !== $req_url_clean ) { 1652 bp_core_redirect( implode( '?', $url_stack ) ); 1653 } 1654 } 1655 } 1656 add_action( 'bp_core_pre_load_template', 'bp_redirect_canonical' ); 1603 1657 ?>
Note: See TracChangeset
for help on using the changeset viewer.