Making WordPress.org


Ignore:
Timestamp:
11/14/2017 05:01:46 AM (7 years ago)
Author:
SergeyBiryukov
Message:

Plugin Directory: Allow closed/disabled plugins to have a public page.

  • Add a notice explaining the plugin's current status.
  • Add noindex meta tag.
  • Remove Download button and Previous Versions section.

Props tellyworth, jipmoors, Ipstenu, SergeyBiryukov.
See #2627.

File:
1 edited

Legend:

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

    r6027 r6118  
    4646
    4747        // Schema for plugin pages.
    48         if ( is_singular( 'plugin' ) ) :
    49             $plugin = get_queried_object();
    50 
    51             $rating      = get_post_meta( $plugin->ID, 'rating', true ) ?: 0;
    52             $ratings     = get_post_meta( $plugin->ID, 'ratings', true ) ?: [];
    53             $num_ratings = array_sum( $ratings );
    54 
    55             echo PHP_EOL;
    56             ?>
     48        if ( is_singular( 'plugin' ) && 'publish' === get_post_status( get_queried_object_id() ) ) {
     49            self::plugin_json_jd_schema( get_queried_object() );
     50        }
     51    }
     52
     53    /**
     54     * Prints JSON LD schema for a specific plugin.
     55     *
     56     * @static
     57     *
     58     * @param \WP_Post $plugin Plugin to output JSON LD Schema for.
     59     */
     60    protected static function plugin_json_jd_schema( $plugin ) {
     61        $rating      = get_post_meta( $plugin->ID, 'rating', true ) ?: 0;
     62        $ratings     = get_post_meta( $plugin->ID, 'ratings', true ) ?: [];
     63        $num_ratings = array_sum( $ratings );
     64
     65        echo PHP_EOL;
     66        ?>
    5767<script type="application/ld+json">
    5868    [
     
    115125    ]
    116126</script>
    117             <?php
    118         endif;
    119     }
    120 
    121     /**
    122      * Prints meta description in the head of a page.
    123      *
    124      * @static
    125      */
    126     public static function meta_description() {
     127        <?php
     128    }
     129
     130    /**
     131     * Prints meta tags in the head of a page.
     132     *
     133     * @static
     134     */
     135    public static function output_meta() {
     136        $metas = [];
     137
    127138        if ( is_singular( 'plugin' ) ) {
    128             printf( '<meta name="description" value="%s"/>',
    129                 esc_attr( get_the_excerpt( get_queried_object() ) )
     139            $metas[] = sprintf( '<meta name="description" value="%s" />',
     140                esc_attr( get_the_excerpt() )
    130141            );
    131         }
     142
     143            // Add noindex on disabled plugin page.
     144            if ( 'publish' !== get_post_status() ) {
     145                $metas[] = '<meta name="robots" content="noindex" />';
     146            }
     147        }
     148
     149        echo implode( "\n", $metas );
    132150    }
    133151
Note: See TracChangeset for help on using the changeset viewer.