Making WordPress.org

Ticket #7534: 7534-add-browse-preview.diff

File 7534-add-browse-preview.diff, 1.7 KB (added by tellyworth, 7 months ago)

Implements the new browse screen only

  • class-plugin-directory.php

     
    546546                ) );
    547547
    548548                // Add the browse/* views.
    549                 add_rewrite_tag( '%browse%', '(featured|popular|beta|blocks|block|new|favorites|adopt-me|updated)' );
     549                add_rewrite_tag( '%browse%', '(featured|popular|beta|blocks|block|new|favorites|adopt-me|updated|preview)' );
    550550                add_permastruct( 'browse', 'browse/%browse%' );
    551551
    552552                // Create an archive for a users favorites too.
     
    795795                // For any invalid values passed to browse, set it to featured instead
    796796                if (
    797797                        ! empty ( $wp_query->query['browse'] ) &&
    798                         ! in_array( $wp_query->query['browse'], array( 'featured', 'popular', 'beta', 'blocks', 'block', 'new', 'favorites', 'adopt-me', 'updated' ) )
     798                        ! in_array( $wp_query->query['browse'], array( 'featured', 'popular', 'beta', 'blocks', 'block', 'new', 'favorites', 'adopt-me', 'updated', 'preview' ) )
    799799                ) {
    800800                         $wp_query->query['browse']      = 'featured';
    801801                         $wp_query->query_vars['browse'] = 'featured';
     
    817817
    818818                                break;
    819819
     820                        case 'preview':
     821                                $wp_query->query_vars['orderby'] ??= 'last_updated';
     822
     823                                // Limit the Beta tab to plugins updated within 12 months.
     824                                $meta_query                = $wp_query->get( 'meta_query' ) ?: [];
     825                                $meta_query['live-preview'] = [
     826                                        'key'     => '_public_preview',
     827                                        'value'   => '1',
     828                                        'compare' => '=',
     829                                ];
     830                                $wp_query->set( 'meta_query', $meta_query );
     831
     832                                break;
     833
    820834                        case 'favorites':
    821835                                $favorites_user = wp_get_current_user();
    822836                                if ( ! empty( $wp_query->query_vars['favorites_user'] ) ) {