WordPress Version: 7.1
/**
* Robots template functions.
*
* @package WordPress
* @subpackage Robots
* @since 5.7.0
*/
/**
* Displays the robots meta tag as necessary.
*
* Gathers robots directives to include for the current context, using the
* {@see 'wp_robots'} filter. The directives are then sanitized, and the
* robots meta tag is output if there is at least one relevant directive.
*
* @since 5.7.0
* @since 5.7.1 No longer prevents specific directives to occur together.
*/
function wp_robots()
{
/**
* Filters the directives to be included in the 'robots' meta tag.
*
* The meta tag will only be included as necessary.
*
* @since 5.7.0
*
* @param array $robots Associative array of directives. Every key must be the name of the directive, and the
* corresponding value must either be a string to provide as value for the directive or a
* boolean `true` if it is a boolean directive, i.e. without a value.
*/
$robots = apply_filters('wp_robots', array());
$robots_strings = array();
foreach ($robots as $directive => $value) {
if (is_string($value)) {
// If a string value, include it as value for the directive.
$robots_strings[] = "{$directive}:{$value}";
} elseif ($value) {
// Otherwise, include the directive if it is truthy.
$robots_strings[] = $directive;
}
}
if (empty($robots_strings)) {
return;
}
echo "<meta name='robots' content='" . esc_attr(implode(', ', $robots_strings)) . "' />\n";
}