WP_Plugin_Install_List_Table::display_rows() –

You appear to be a bot. Output may be restricted

Description

Usage

WP_Plugin_Install_List_Table::display_rows();

Parameters

Returns

void

Source

File name: wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php
Lines:

1 to 100 of 357
  public function display_rows() {
    $plugins_allowedtags = array(
      'a'       => array(
        'href'   => array(),
        'title'  => array(),
        'target' => array(),
      ),
      'abbr'    => array( 'title' => array() ),
      'acronym' => array( 'title' => array() ),
      'code'    => array(),
      'pre'     => array(),
      'em'      => array(),
      'strong'  => array(),
      'ul'      => array(),
      'ol'      => array(),
      'li'      => array(),
      'p'       => array(),
      'br'      => array(),
    );

    $plugins_group_titles = array(
      'Performance' => _x( 'Performance', 'Plugin installer group title' ),
      'Social'      => _x( 'Social', 'Plugin installer group title' ),
      'Tools'       => _x( 'Tools', 'Plugin installer group title' ),
    );

    $group = null;

    foreach ( (array) $this->items as $plugin ) {
      if ( is_object( $plugin ) ) {
        $plugin = (array) $plugin;
      }

      // Display the group heading if there is one.
      if ( isset( $plugin['group'] ) && $plugin['group'] !== $group ) {
        if ( isset( $this->groups[ $plugin['group'] ] ) ) {
          $group_name = $this->groups[ $plugin['group'] ];
          if ( isset( $plugins_group_titles[ $group_name ] ) ) {
            $group_name = $plugins_group_titles[ $group_name ];
          }
        } else {
          $group_name = $plugin['group'];
        }

        // Starting a new group, close off the divs of the last one.
        if ( ! empty( $group ) ) {
          echo '</div></div>';
        }

        echo '<div class="plugin-group"><h3>' . esc_html( $group_name ) . '</h3>';
        // Needs an extra wrapping div for nth-child selectors to work.
        echo '<div class="plugin-items">';

        $group = $plugin['group'];
      }

      $title = wp_kses( $plugin['name'], $plugins_allowedtags );

      // Remove any HTML from the description.
      $description = strip_tags( $plugin['short_description'] );

      
/**
 * Filters the plugin card description on the Add Plugins screen.
 *
 * @since 6.0.0
 *
 * @param string $description Plugin card description.
 * @param array  $plugin      An array of plugin data. See {@see plugins_api()}
 *                            for the list of possible values.
 */
      $description = apply_filters( 'plugin_install_description', $description, $plugin );

      $version = wp_kses( $plugin['version'], $plugins_allowedtags );

      $name = strip_tags( $title . ' ' . $version );

      $author = wp_kses( $plugin['author'], $plugins_allowedtags );
      if ( ! empty( $author ) ) {
        /* translators: %s: Plugin author. */
        $author = ' <cite>' . sprintf( __( 'By %s' ), $author ) . '</cite>';
      }

      $requires_php = isset( $plugin['requires_php'] ) ? $plugin['requires_php'] : null;
      $requires_wp  = isset( $plugin['requires'] ) ? $plugin['requires'] : null;

      $compatible_php = is_php_version_compatible( $requires_php );
      $compatible_wp  = is_wp_version_compatible( $requires_wp );
      $tested_wp      = ( empty( $plugin['tested'] ) || version_compare( get_bloginfo( 'version' ), $plugin['tested'], '<=' ) );

      $action_links = array();

      if ( current_user_can( 'install_plugins' ) || current_user_can( 'update_plugins' ) ) {
        $status = install_plugin_install_status( $plugin );

        switch ( $status['status'] ) {
          case 'install':
            if ( $status['url'] ) {
              if ( $compatible_php && $compatible_wp ) {
                $action_links[] = sprintf(
                  '<a class="install-now button" data-slug="%s" href="%s" aria-label="%s" data-name="%s">%s</a>',
 

 View on GitHub View on Trac