Making WordPress.org

Changeset 3420


Ignore:
Timestamp:
06/17/2016 08:27:41 PM (8 years ago)
Author:
obenland
Message:

Plugin Directory: Introduce a reviews shortcode.

Displays a list of reviews about a plugin.
WIP, still need to properly grab an entire review, not just the rating.

See #1719.

Location:
sites/trunk/wordpress.org/public_html/wp-content
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php

    r3409 r3420  
    247247        add_shortcode( 'wporg-plugin-upload',       array( __NAMESPACE__ . '\Shortcodes\Upload',      'display' ) );
    248248        add_shortcode( 'wporg-plugins-screenshots', array( __NAMESPACE__ . '\Shortcodes\Screenshots', 'display' ) );
     249        add_shortcode( 'wporg-plugins-reviews',     array( __NAMESPACE__ . '\Shortcodes\Reviews',     'display' ) );
    249250    }
    250251
     
    676677            'screenshots' => '[wporg-plugins-screenshots]',
    677678            'developers'  => '[wporg-plugins-developers]',
     679            'reviews'     => '[wporg-plugins-reviews]',
    678680        );
    679681
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-tools.php

    r2836 r3420  
    2727
    2828        return $tonesque->color();
     29    }
     30
     31    /**
     32     * Returns the two latest reviews of a specific plugin.
     33     *
     34     * @global \wpdb $wpdb WordPress database abstraction object.
     35     *
     36     * @todo Populate with review title/content.
     37     *
     38     * @param string $plugin_slug The plugin slug.
     39     * @return array|false
     40     */
     41    public static function get_plugin_reviews( $plugin_slug ) {
     42        if ( false === ( $reviews = wp_cache_get( "{$plugin_slug}_reviews", 'wporg-plugins' ) ) ) {
     43            global $wpdb;
     44
     45            $reviews = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM ratings WHERE object_type = 'plugin' AND object_slug = %s ORDER BY review_id DESC LIMIT 2", $plugin_slug ) );
     46            wp_cache_set( "{$plugin_slug}_reviews", $reviews, 'wporg-plugins', HOUR_IN_SECONDS );
     47        }
     48
     49        return $reviews;
    2950    }
    3051
  • sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins/template-parts/plugin-single.php

    r3412 r3420  
    4545        <?php
    4646            $plugin_sections = Template::get_plugin_sections();
     47
    4748            foreach ( array( 'description', 'screenshots', 'faq', 'reviews', 'changelog', 'developers' ) as $section_slug ) :
    48                 if ( ! array_key_exists( $section_slug, $content ) || in_array( $section_slug, array( 'installation', 'other_notes' ) ) ) :
     49                $section_content = trim( apply_filters( 'the_content', $content[ $section_slug ], $section_slug ) );
     50
     51                if ( ! array_key_exists( $section_slug, $content ) || in_array( $section_slug, array( 'installation', 'other_notes' ) ) || empty( $section_content ) ) :
    4952                    continue;
    5053                endif;
     54
    5155                $section = wp_list_filter( $plugin_sections, array( 'slug' => $section_slug ) );
    5256                $section = array_pop( $section );
     
    5559            <div id="<?php echo esc_attr( $section_slug ); ?>" class="read-more" aria-expanded="false">
    5660                <h2><?php echo $section['title']; ?></h2>
    57                 <?php echo apply_filters( 'the_content', $content[ $section_slug ], $section_slug ); ?>
     61                <?php echo $section_content; ?>
    5862            </div>
    5963            <button type="button" class="button-link section-toggle" aria-controls="<?php echo esc_attr( $section_slug ); ?>"><?php _e( 'Read more', 'wporg-plugins' ); ?></button>
Note: See TracChangeset for help on using the changeset viewer.