From a415c29efee45520ae252d2aa28f1083a521cd7b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 09:56:49 +0200 Subject: Adding upstream version 6.4.3+dfsg1. Signed-off-by: Daniel Baumann --- wp-includes/robots-template.php | 193 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 wp-includes/robots-template.php (limited to 'wp-includes/robots-template.php') diff --git a/wp-includes/robots-template.php b/wp-includes/robots-template.php new file mode 100644 index 0000000..e719e74 --- /dev/null +++ b/wp-includes/robots-template.php @@ -0,0 +1,193 @@ + $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 "\n"; +} + +/** + * Adds `noindex` to the robots meta tag if required by the site configuration. + * + * If a blog is marked as not being public 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' ); + * + * @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( array $robots ) { + if ( ! get_option( 'blog_public' ) ) { + return wp_robots_no_robots( $robots ); + } + + return $robots; +} + +/** + * Adds `noindex` to the robots meta tag for embeds. + * + * Typical usage is as a {@see 'wp_robots'} callback: + * + * add_filter( 'wp_robots', 'wp_robots_noindex_embeds' ); + * + * @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_embeds( array $robots ) { + if ( is_embed() ) { + return wp_robots_no_robots( $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. + * + * This directive tells web robots not to index the page content. + * + * Typical usage is as a {@see 'wp_robots'} callback: + * + * add_filter( 'wp_robots', 'wp_robots_no_robots' ); + * + * @since 5.7.0 + * + * @param array $robots Associative array of robots directives. + * @return array Filtered robots directives. + */ +function wp_robots_no_robots( array $robots ) { + $robots['noindex'] = true; + + if ( get_option( 'blog_public' ) ) { + $robots['follow'] = true; + } else { + $robots['nofollow'] = true; + } + + return $robots; +} + +/** + * Adds `noindex` and `noarchive` to the robots meta tag. + * + * This directive tells web robots not to index or archive the page content and + * is recommended to be used for sensitive pages. + * + * Typical usage is as a {@see 'wp_robots'} callback: + * + * add_filter( 'wp_robots', 'wp_robots_sensitive_page' ); + * + * @since 5.7.0 + * + * @param array $robots Associative array of robots directives. + * @return array Filtered robots directives. + */ +function wp_robots_sensitive_page( array $robots ) { + $robots['noindex'] = true; + $robots['noarchive'] = true; + return $robots; +} + +/** + * Adds `max-image-preview:large` to the robots meta tag. + * + * This directive tells web robots that large image previews are allowed to be + * displayed, e.g. in search engines, unless the blog is marked as not being public. + * + * Typical usage is as a {@see 'wp_robots'} callback: + * + * add_filter( 'wp_robots', 'wp_robots_max_image_preview_large' ); + * + * @since 5.7.0 + * + * @param array $robots Associative array of robots directives. + * @return array Filtered robots directives. + */ +function wp_robots_max_image_preview_large( array $robots ) { + if ( get_option( 'blog_public' ) ) { + $robots['max-image-preview'] = 'large'; + } + return $robots; +} -- cgit v1.2.3