mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-28 14:20:15 +00:00
General: Add noindex robots meta tag to search results.
Prevent search engines indexing internal search results to protect against reflected web spam attacks. Props abagtcs, audrasjb, ayeshrajans, burtrw, johnbillion, jonoaldersonwp, peterwilsoncc, poena, sabernhardt, xkon. Fixes #52457 git-svn-id: https://develop.svn.wordpress.org/trunk@50370 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -238,6 +238,7 @@ add_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
|
||||
|
||||
// Robots filters.
|
||||
add_filter( 'wp_robots', 'wp_robots_noindex' );
|
||||
add_filter( 'wp_robots', 'wp_robots_noindex_search' );
|
||||
add_filter( 'wp_robots', 'wp_robots_max_image_preview_large' );
|
||||
|
||||
// Mark site as no longer fresh.
|
||||
|
||||
@@ -87,6 +87,31 @@ function wp_robots_noindex( array $robots ) {
|
||||
return $robots;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds noindex to the robots meta tag if a search is being performed.
|
||||
*
|
||||
* If a search is being performed then noindex will be output to
|
||||
* tell web robots not to index the page content. Add this to the
|
||||
* {@see 'wp_robots'} filter.
|
||||
*
|
||||
* Typical usage is as a {@see 'wp_robots'} callback:
|
||||
*
|
||||
* add_filter( 'wp_robots', 'wp_robots_noindex_search' );
|
||||
*
|
||||
* @since 5.7.0
|
||||
* @see wp_robots_no_robots()
|
||||
*
|
||||
* @param array $robots Associative array of robots directives.
|
||||
* @return array Filtered robots directives.
|
||||
*/
|
||||
function wp_robots_noindex_search( array $robots ) {
|
||||
if ( is_search() ) {
|
||||
return wp_robots_no_robots( $robots );
|
||||
}
|
||||
|
||||
return $robots;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds noindex to the robots meta tag.
|
||||
*
|
||||
|
||||
@@ -176,6 +176,28 @@ class Tests_Robots extends WP_UnitTestCase {
|
||||
$this->assertEmpty( $output );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 52457
|
||||
*/
|
||||
public function test_wp_robots_search_page() {
|
||||
add_filter( 'wp_robots', 'wp_robots_noindex_search' );
|
||||
$this->go_to( home_url( '?s=ticket+52457+core.trac.wordpress.org' ) );
|
||||
|
||||
$output = get_echo( 'wp_robots' );
|
||||
$this->assertContains( 'noindex', $output );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 52457
|
||||
*/
|
||||
public function test_wp_robots_non_search_page() {
|
||||
add_filter( 'wp_robots', 'wp_robots_noindex_search' );
|
||||
$this->go_to( home_url() );
|
||||
|
||||
$output = get_echo( 'wp_robots' );
|
||||
$this->assertNotContains( 'noindex', $output );
|
||||
}
|
||||
|
||||
public function add_noindex_directive( array $robots ) {
|
||||
$robots['noindex'] = true;
|
||||
return $robots;
|
||||
|
||||
Reference in New Issue
Block a user