Making WordPress.org


Ignore:
Timestamp:
10/16/2019 06:09:41 AM (7 years ago)
Author:
dd32
Message:

Theme Directory: 404 on invalid browse requests.

Fixes #4415.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/theme-directory/query-modifications.php

    r9086 r9188  
    106106            $query->query_vars['orderby'] = 'meta_value DESC';
    107107            break;
     108
     109        default:
     110            // Force a 404 for anything else.
     111            if ( $query->query_vars['browse'] ) {
     112                $query->query_vars['error'] = 404;
     113                $query->query_vars['name'] = 'please-trigger-a-404';
     114                $query->query_vars['p'] = -404;
     115                $query->set_404();
     116            }
     117            break;
    108118    }
    109119
     
    148158    return $clauses;
    149159}
     160
     161/**
     162 * Handle proper 404 errors for requests.
     163 */
     164function wporg_themes_parse_request( $wp ) {
     165    $sections = array(
     166        'new', 'updated', 'featured', 'favorites', 'popular'
     167    );
     168
     169    if ( !empty( $wp->query_vars['browse'] ) && ! in_array( $wp->query_vars['browse'], $sections ) ) {
     170        $wp->handle_404();
     171    }
     172}
     173add_action( 'parse_request', 'wporg_themes_parse_request' );
Note: See TracChangeset for help on using the changeset viewer.