Make WordPress Core

Changeset 50078


Ignore:
Timestamp:
01/29/2021 08:36:03 PM (6 years ago)
Author:
flixos90
Message:

Robots: Add max-image-preview:large directive by default.

This changeset introduces a wp_robots_max_image_preview_large() function which is hooked into the wp_robots filter to include the max-image-preview:large directive for all sites which are configured to be indexed by search engines. The directive allows search engines to display large image previews for the site in search results.

Props adamsilverstein, Clorith, flixos90, helen, joostdevalk, tweetythierry, westonruter.
Fixes #51511.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/default-filters.php

    r50065 r50078  
    234234// Robots filters.
    235235add_filter( 'wp_robots', 'wp_robots_noindex' );
     236add_filter( 'wp_robots', 'wp_robots_max_image_preview_large' );
    236237
    237238// Mark site as no longer fresh.
  • trunk/src/wp-includes/robots-template.php

    r49992 r50078  
    134134        return $robots;
    135135}
     136
     137/**
     138 * Adds 'max-image-preview:large' to the robots meta tag.
     139 *
     140 * This directive tells web robots that large image previews are allowed to be
     141 * displayed, e.g. in search engines, unless the blog is marked as not being public.
     142 *
     143 * Typical usage is as a {@see 'wp_robots'} callback:
     144 *
     145 *     add_filter( 'wp_robots', 'wp_robots_max_image_preview_large' );
     146 *
     147 * @since 5.7.0
     148 *
     149 * @param array $robots Associative array of robots directives.
     150 * @return array Filtered robots directives.
     151 */
     152function wp_robots_max_image_preview_large( array $robots ) {
     153        if ( get_option( 'blog_public' ) ) {
     154                $robots['max-image-preview'] = 'large';
     155        }
     156        return $robots;
     157}
  • trunk/tests/phpunit/tests/robots.php

    r49992 r50078  
    162162        }
    163163
     164        /**
     165         * @ticket 51511
     166         */
     167        public function test_wp_robots_max_image_preview_large() {
     168                add_filter( 'wp_robots', 'wp_robots_max_image_preview_large' );
     169
     170                update_option( 'blog_public', '1' );
     171                $output = get_echo( 'wp_robots' );
     172                $this->assertContains( "'max-image-preview:large'", $output );
     173
     174                update_option( 'blog_public', '0' );
     175                $output = get_echo( 'wp_robots' );
     176                $this->assertEmpty( $output );
     177        }
     178
    164179        public function add_noindex_directive( array $robots ) {
    165180                $robots['noindex'] = true;
Note: See TracChangeset for help on using the changeset viewer.