Diff: STRATO-apps/wordpress_03/app/wp-includes/robots-template.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
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
+
}
194
+