WP_Theme_Install_List_Table::single_row() – Prints a theme from the WordPress.org API.

You appear to be a bot. Output may be restricted

Description

Prints a theme from the WordPress.org API.

Usage

WP_Theme_Install_List_Table::single_row( $theme );

Parameters

$theme
( stdClass ) required – { An object that contains theme data returned by the WordPress.org API.
$name
( string ) required – Theme name, e.g. 'Twenty Twenty-One'.
$slug
( string ) required – Theme slug, e.g. 'twentytwentyone'.
$version
( string ) required – Theme version, e.g. '1.1'.
$author
( string ) required – Theme author username, e.g. 'melchoyce'.
$preview_url
( string ) required – Preview URL, e.g. 'https://2021.wordpress.net/'.
$screenshot_url
( string ) required – Screenshot URL, e.g. 'https://wordpress.org/themes/twentytwentyone/'.
$rating
( float ) required – Rating score.
$num_ratings
( int ) required – The number of ratings.
$homepage
( string ) required – Theme homepage, e.g. 'https://wordpress.org/themes/twentytwentyone/'.
$description
( string ) required – Theme description.
$download_link
( string ) required – Theme ZIP download URL. }

Returns

void

Source

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


Lines:

1 to 100 of 117
  public function single_row( $theme ) {
    global $themes_allowedtags;

    if ( empty( $theme ) ) {
      return;
    }

    $name   = wp_kses( $theme->name, $themes_allowedtags );
    $author = wp_kses( $theme->author, $themes_allowedtags );

    /* translators: %s: Theme name. */
    $preview_title = sprintf( __( 'Preview “%s”' ), $name );
    $preview_url   = add_query_arg(
      array(
        'tab'   => 'theme-information',
        'theme' => $theme->slug,
      ),
      self_admin_url( 'theme-install.php' )
    );

    $actions = array();

    $install_url = add_query_arg(
      array(
        'action' => 'install-theme',
        'theme'  => $theme->slug,
      ),
      self_admin_url( 'update.php' )
    );

    $update_url = add_query_arg(
      array(
        'action' => 'upgrade-theme',
        'theme'  => $theme->slug,
      ),
      self_admin_url( 'update.php' )
    );

    $status = $this->WP_Theme_Install_List_Table::_get_theme_status( $theme );

    switch ( $status ) {
      case 'update_available':
        $actions[] = sprintf(
          '<a class="install-now" href="%s" title="%s">%s</a>',
          esc_url( wp_nonce_url( $update_url, 'upgrade-theme_' . $theme->slug ) ),
          /* translators: %s: Theme version. */
          esc_attr( sprintf( __( 'Update to version %s' ), $theme->version ) ),
          __( 'Update' )
        );
        break;
      case 'newer_installed':
      case 'latest_installed':
        $actions[] = sprintf(
          '<span class="install-now" title="%s">%s</span>',
          esc_attr__( 'This theme is already installed and is up to date' ),
          _x( 'Installed', 'theme' )
        );
        break;
      case 'install':
      default:
        $actions[] = sprintf(
          '<a class="install-now" href="%s" title="%s">%s</a>',
          esc_url( wp_nonce_url( $install_url, 'install-theme_' . $theme->slug ) ),
          /* translators: %s: Theme name. */
          esc_attr( sprintf( _x( 'Install %s', 'theme' ), $name ) ),
          __( 'Install Now' )
        );
        break;
    }

    $actions[] = sprintf(
      '<a class="install-theme-preview" href="%s" title="%s">%s</a>',
      esc_url( $preview_url ),
      /* translators: %s: Theme name. */
      esc_attr( sprintf( __( 'Preview %s' ), $name ) ),
      __( 'Preview' )
    );

    
/**
 * Filters the install action links for a theme in the Install Themes list table.
 *
 * @since 3.4.0
 *
 * @param string[] $actions An array of theme action links. Defaults are
 *                          links to Install Now, Preview, and Details.
 * @param stdClass $theme   An object that contains theme data returned by the
 *                          WordPress.org API.
 */
    $actions = apply_filters( 'theme_install_actions', $actions, $theme );

    ?>
		<a class="screenshot install-theme-preview" href="<?php echo esc_url( $preview_url ); ?>" title="<?php echo esc_attr( $preview_title ); ?>">
			<img src="<?php echo esc_url( $theme->screenshot_url . '?ver=' . $theme->version ); ?>" width="150" alt="" />
		</a>

		<h3><?php echo $name; ?></h3>
		<div class="theme-author">
		<?php
      /* translators: %s: Theme author. */

 View on GitHub View on Trac