[ Index ] |
PHP Cross Reference of WordPress |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Robots template functions. 4 * 5 * @package WordPress 6 * @subpackage Robots 7 * @since 5.7.0 8 */ 9 10 /** 11 * Displays the robots meta tag as necessary. 12 * 13 * Gathers robots directives to include for the current context, using the 14 * {@see 'wp_robots'} filter. The directives are then sanitized, and the 15 * robots meta tag is output if there is at least one relevant directive. 16 * 17 * @since 5.7.0 18 * @since 5.7.1 No longer prevents specific directives to occur together. 19 */ 20 function wp_robots() { 21 /** 22 * Filters the directives to be included in the 'robots' meta tag. 23 * 24 * The meta tag will only be included as necessary. 25 * 26 * @since 5.7.0 27 * 28 * @param array $robots Associative array of directives. Every key must be the name of the directive, and the 29 * corresponding value must either be a string to provide as value for the directive or a 30 * boolean `true` if it is a boolean directive, i.e. without a value. 31 */ 32 $robots = apply_filters( 'wp_robots', array() ); 33 34 $robots_strings = array(); 35 foreach ( $robots as $directive => $value ) { 36 if ( is_string( $value ) ) { 37 // If a string value, include it as value for the directive. 38 $robots_strings[] = "{$directive}:{$value}"; 39 } elseif ( $value ) { 40 // Otherwise, include the directive if it is truthy. 41 $robots_strings[] = $directive; 42 } 43 } 44 45 if ( empty( $robots_strings ) ) { 46 return; 47 } 48 49 echo "<meta name='robots' content='" . esc_attr( implode( ', ', $robots_strings ) ) . "' />\n"; 50 } 51 52 /** 53 * Adds `noindex` to the robots meta tag if required by the site configuration. 54 * 55 * If a blog is marked as not being public then noindex will be output to 56 * tell web robots not to index the page content. Add this to the 57 * {@see 'wp_robots'} filter. 58 * 59 * Typical usage is as a {@see 'wp_robots'} callback: 60 * 61 * add_filter( 'wp_robots', 'wp_robots_noindex' ); 62 * 63 * @since 5.7.0 64 * 65 * @see wp_robots_no_robots() 66 * 67 * @param array $robots Associative array of robots directives. 68 * @return array Filtered robots directives. 69 */ 70 function wp_robots_noindex( array $robots ) { 71 if ( ! get_option( 'blog_public' ) ) { 72 return wp_robots_no_robots( $robots ); 73 } 74 75 return $robots; 76 } 77 78 /** 79 * Adds `noindex` to the robots meta tag for embeds. 80 * 81 * Typical usage is as a {@see 'wp_robots'} callback: 82 * 83 * add_filter( 'wp_robots', 'wp_robots_noindex_embeds' ); 84 * 85 * @since 5.7.0 86 * 87 * @see wp_robots_no_robots() 88 * 89 * @param array $robots Associative array of robots directives. 90 * @return array Filtered robots directives. 91 */ 92 function wp_robots_noindex_embeds( array $robots ) { 93 if ( is_embed() ) { 94 return wp_robots_no_robots( $robots ); 95 } 96 97 return $robots; 98 } 99 100 /** 101 * Adds `noindex` to the robots meta tag if a search is being performed. 102 * 103 * If a search is being performed then noindex will be output to 104 * tell web robots not to index the page content. Add this to the 105 * {@see 'wp_robots'} filter. 106 * 107 * Typical usage is as a {@see 'wp_robots'} callback: 108 * 109 * add_filter( 'wp_robots', 'wp_robots_noindex_search' ); 110 * 111 * @since 5.7.0 112 * 113 * @see wp_robots_no_robots() 114 * 115 * @param array $robots Associative array of robots directives. 116 * @return array Filtered robots directives. 117 */ 118 function wp_robots_noindex_search( array $robots ) { 119 if ( is_search() ) { 120 return wp_robots_no_robots( $robots ); 121 } 122 123 return $robots; 124 } 125 126 /** 127 * Adds `noindex` to the robots meta tag. 128 * 129 * This directive tells web robots not to index the page content. 130 * 131 * Typical usage is as a {@see 'wp_robots'} callback: 132 * 133 * add_filter( 'wp_robots', 'wp_robots_no_robots' ); 134 * 135 * @since 5.7.0 136 * 137 * @param array $robots Associative array of robots directives. 138 * @return array Filtered robots directives. 139 */ 140 function wp_robots_no_robots( array $robots ) { 141 $robots['noindex'] = true; 142 143 if ( get_option( 'blog_public' ) ) { 144 $robots['follow'] = true; 145 } else { 146 $robots['nofollow'] = true; 147 } 148 149 return $robots; 150 } 151 152 /** 153 * Adds `noindex` and `noarchive` to the robots meta tag. 154 * 155 * This directive tells web robots not to index or archive the page content and 156 * is recommended to be used for sensitive pages. 157 * 158 * Typical usage is as a {@see 'wp_robots'} callback: 159 * 160 * add_filter( 'wp_robots', 'wp_robots_sensitive_page' ); 161 * 162 * @since 5.7.0 163 * 164 * @param array $robots Associative array of robots directives. 165 * @return array Filtered robots directives. 166 */ 167 function wp_robots_sensitive_page( array $robots ) { 168 $robots['noindex'] = true; 169 $robots['noarchive'] = true; 170 return $robots; 171 } 172 173 /** 174 * Adds `max-image-preview:large` to the robots meta tag. 175 * 176 * This directive tells web robots that large image previews are allowed to be 177 * displayed, e.g. in search engines, unless the blog is marked as not being public. 178 * 179 * Typical usage is as a {@see 'wp_robots'} callback: 180 * 181 * add_filter( 'wp_robots', 'wp_robots_max_image_preview_large' ); 182 * 183 * @since 5.7.0 184 * 185 * @param array $robots Associative array of robots directives. 186 * @return array Filtered robots directives. 187 */ 188 function wp_robots_max_image_preview_large( array $robots ) { 189 if ( get_option( 'blog_public' ) ) { 190 $robots['max-image-preview'] = 'large'; 191 } 192 return $robots; 193 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Nov 21 01:00:03 2024 | Cross-referenced by PHPXref 0.7.1 |