WordPress.org

Making WordPress.org

Changeset 4047


Ignore:
Timestamp:
09/13/2016 05:26:33 PM (3 years ago)
Author:
jmdodd
Message:

Support Forums: Add redirects for plugin and theme RSS/reviews views.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/support-forums/inc/class-directory-compat.php

    r4043 r4047  
    5757     */
    5858    public function request( $query_vars ) {
     59        // Redirect some older URLs to the correct location. This can be
     60        // removed once nginx rules are in place to handle them.
     61        $redirects = array(
     62            // RSS: https://wordpress.org/support/rss/plugin/akismet/
     63            'rss' => 'rss/' . $this->compat() . '/',
     64            // Reviews: https://wordpress.org/support/view/plugin-reviews/akismet/
     65            'reviews' => 'view/' . $this->compat() . '-reviews/',
     66            // Reviews RSS: https://wordpress.org/support/rss/view/plugin-reviews/akismet/
     67            'reviews_rss' => 'rss/view/' . $this->compat() . '-reviews/',
     68        );
     69        if ( array_key_exists( 'pagename', $query_vars ) ) {
     70            $pagename = $query_vars['pagename'];
     71
     72            foreach ( $redirects as $r => $base ) {
     73                $url = false;
     74                if ( 0 !== strpos( $pagename, $base ) ) {
     75                    continue;
     76                }
     77                $ending = str_replace( $base, '', $pagename );
     78                $slug = explode( '/', $ending );
     79                if ( $slug ) {
     80                    switch ( $r ) {
     81                        case 'rss' :
     82                            $url = sprintf( 'https://wordpress.org/support/%s/%s/feed/',
     83                                $this->compat(),
     84                                    sanitize_key( $slug[0] ) );
     85                            break;
     86                        case 'reviews' :
     87                            $url = sprintf( 'https://wordpress.org/support/%s/%s/reviews/',
     88                                $this->compat(),
     89                                sanitize_key( $slug[0] ) );
     90                            break;
     91                        case 'reviews_rss' :
     92                            $url = sprintf( 'https://wordpress.org/support/%s/%s/reviews/feed/',
     93                                $this->compat(),
     94                                sanitize_key( $slug[0] ) );
     95                    }
     96                    if ( $url ) {
     97                        wp_safe_redirect( esc_url( $url ), 301 );
     98                        exit;
     99                    }
     100                }
     101            }
     102        }
     103
    59104        if ( isset( $query_vars['feed'] ) && isset( $query_vars[ $this->query_var() ] ) ) {
    60105
Note: See TracChangeset for help on using the changeset viewer.