Version Description
(2022-04-15) = * Fixed security issue related to Cross-Site Scripting attacks on debug page * Fixed HTTP error while generating sitemap (because of conflict of www and now www site) * Fixed handling WordPress core sitemap entry from robots.txt * Added option to flush database rewrite on plugin deactivation * Added option to split the custom categories into multiple sitemaps by custom taxonomy * Added option to omit the posts specified as disallow in robots.txt * Added option to set links per page for tags and categories * Added option to set a custom filename for the sitemap * Added option to list custom post in the archive sitemap
Download this release
Release Info
Developer | auctollo |
Plugin | Google XML Sitemaps |
Version | 4.1.2 |
Comparing to | |
See all releases |
Code changes from version 4.1.1 to 4.1.2
- class-googlesitemapgeneratorloader.php +504 -0
- class-googlesitemapgeneratorstandardbuilder.php +856 -0
- class-googlesitemapgeneratorstatus.php +214 -0
- class-googlesitemapgeneratorui.php +1701 -0
- documentation.txt +413 -411
- google-sitemap-generator-prio-provider-base.php +54 -0
- img/sitemap.js +110 -109
- lang/sitemap-ja_EUC.po +322 -322
- lang/sitemap-ja_SJIS.po +322 -322
- lang/sitemap-ja_UTF.po +322 -322
- lang/sitemap-sr_RS.po +964 -964
- readme.txt +487 -467
- screenshot-1.png +0 -0
- sitemap-builder.php +0 -567
- sitemap-core.php +2771 -2272
- sitemap-loader.php +0 -467
- sitemap-ui.php +0 -1316
- sitemap-wpmu.php +14 -6
- sitemap.php +120 -111
- sitemap.xsl +158 -159
class-googlesitemapgeneratorloader.php
ADDED
@@ -0,0 +1,504 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Loader class for the XML Sitemap Generator
|
4 |
+
*
|
5 |
+
* This class takes care of the sitemap plugin and tries to load the different parts as late as possible.
|
6 |
+
* On normal requests, only this small class is loaded. When the sitemap needs to be rebuild, the generator itself is loaded.
|
7 |
+
* The last stage is the user interface which is loaded when the administration page is requested.
|
8 |
+
*
|
9 |
+
* @author Arne Brachhold
|
10 |
+
* @package sitemap
|
11 |
+
*/
|
12 |
+
|
13 |
+
/**
|
14 |
+
* This class is for the sitemap loader
|
15 |
+
*/
|
16 |
+
class GoogleSitemapGeneratorLoader {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Version of the generator in SVN.
|
20 |
+
*
|
21 |
+
* @var string Version of the generator in SVN
|
22 |
+
*/
|
23 |
+
private static $svn_version = '$Id: class-googlesitemapgeneratorloader.php 937300 2014-06-23 18:04:11Z arnee $';
|
24 |
+
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Enabled the sitemap plugin with registering all required hooks
|
28 |
+
*
|
29 |
+
* @uses add_action Adds actions for admin menu, executing pings and handling robots.t xt
|
30 |
+
* @uses add_filter Adds filtes for admin menu icon and contexual help
|
31 |
+
* @uses GoogleSitemapGeneratorLoader::call_show_ping_result() Shows the ping result on request
|
32 |
+
*/
|
33 |
+
public static function enable() {
|
34 |
+
|
35 |
+
// Register the sitemap creator to WordPress...
|
36 |
+
add_action( 'admin_menu', array( __CLASS__, 'register_admin_page' ) );
|
37 |
+
|
38 |
+
// Add a widget to the dashboard.
|
39 |
+
add_action( 'wp_dashboard_setup', array( __CLASS__, 'wp_dashboard_setup' ) );
|
40 |
+
|
41 |
+
// Nice icon for Admin Menu (requires Ozh Admin Drop Down Plugin) .
|
42 |
+
add_filter( 'ozh_adminmenu_icon', array( __CLASS__, 'register_admin_icon' ) );
|
43 |
+
|
44 |
+
// Additional links on the plugin page .
|
45 |
+
add_filter( 'plugin_row_meta', array( __CLASS__, 'register_plugin_links' ), 10, 2 );
|
46 |
+
|
47 |
+
// Listen to ping request .
|
48 |
+
add_action( 'sm_ping', array( __CLASS__, 'call_send_ping' ), 10, 1 );
|
49 |
+
|
50 |
+
// Listen to daily ping .
|
51 |
+
add_action( 'sm_ping_daily', array( __CLASS__, 'call_send_ping_daily' ), 10, 1 );
|
52 |
+
|
53 |
+
// Post is somehow changed (also publish to publish (=edit) is fired) .
|
54 |
+
add_action( 'transition_post_status', array( __CLASS__, 'schedule_ping_on_status_change' ), 9999, 3 );
|
55 |
+
|
56 |
+
add_action(
|
57 |
+
'init',
|
58 |
+
function() {
|
59 |
+
remove_action( 'init', 'wp_sitemaps_get_server' );
|
60 |
+
},
|
61 |
+
5
|
62 |
+
);
|
63 |
+
|
64 |
+
// Robots.txt request .
|
65 |
+
add_action( 'do_robots', array( __CLASS__, 'call_do_robots' ), 100, 0 );
|
66 |
+
|
67 |
+
// Help topics for context sensitive help .
|
68 |
+
// add_filter('contextual_help_list', array( __CLASS__, 'call_html_show_help_list' ), 9999, 2); .
|
69 |
+
|
70 |
+
// Check if the result of a ping request should be shown .
|
71 |
+
if ( isset( $_GET['sm_ping_service'] ) && ! empty( sanitize_text_field( wp_unslash( $_GET['sm_ping_service'] ) ) ) ) {
|
72 |
+
self::call_show_ping_result();
|
73 |
+
}
|
74 |
+
|
75 |
+
// Fix rewrite rules if not already done on activation hook. This happens on network activation for example.
|
76 |
+
if ( get_option( 'sm_rewrite_done', null ) !== self::$svn_version ) {
|
77 |
+
add_action( 'wp_loaded', array( __CLASS__, 'activate_rewrite' ), 9999, 1 );
|
78 |
+
}
|
79 |
+
|
80 |
+
// Schedule daily ping .
|
81 |
+
if ( ! wp_get_schedule( 'sm_ping_daily' ) ) {
|
82 |
+
wp_schedule_event( time() + ( 60 * 60 ), 'daily', 'sm_ping_daily' );
|
83 |
+
}
|
84 |
+
|
85 |
+
// Disable the WP core XML sitemaps .
|
86 |
+
add_filter( 'wp_sitemaps_enabled', '__return_false' );
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Sets up the query vars and template redirect hooks
|
91 |
+
*
|
92 |
+
* @uses GoogleSitemapGeneratorLoader::register_query_vars
|
93 |
+
* @uses GoogleSitemapGeneratorLoader::do_template_redirect
|
94 |
+
* @since 4.0
|
95 |
+
*/
|
96 |
+
public static function setup_query_vars() {
|
97 |
+
|
98 |
+
add_filter( 'query_vars', array( __CLASS__, 'register_query_vars' ), 1, 1 );
|
99 |
+
|
100 |
+
add_filter( 'template_redirect', array( __CLASS__, 'do_template_redirect' ), 1, 0 );
|
101 |
+
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Register the plugin specific 'xml_sitemap' query var
|
106 |
+
*
|
107 |
+
* @since 4.0
|
108 |
+
* @param array $vars Array Array of existing query_vars .
|
109 |
+
* @return Array An aarray containing the new query vars
|
110 |
+
*/
|
111 |
+
public static function register_query_vars( $vars ) {
|
112 |
+
array_push( $vars, 'xml_sitemap' );
|
113 |
+
return $vars;
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* Registers the plugin specific rewrite rules
|
118 |
+
*
|
119 |
+
* Combined: sitemap(-+([a-zA-Z0-9_-]+))?\.(xml|html)(.gz)?$
|
120 |
+
*
|
121 |
+
* @since 4.0
|
122 |
+
* @param array $wp_rules Array of existing rewrite rules .
|
123 |
+
* @return Array An array containing the new rewrite rules
|
124 |
+
*/
|
125 |
+
public static function add_rewrite_rules( $wp_rules ) {
|
126 |
+
$sm_rules = array(
|
127 |
+
'sitemap(-+([a-zA-Z0-9_-]+))?\.xml$' => 'index.php?xml_sitemap=params=$matches[2]',
|
128 |
+
'sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$' => 'index.php?xml_sitemap=params=$matches[2];zip=true',
|
129 |
+
'sitemap(-+([a-zA-Z0-9_-]+))?\.html$' => 'index.php?xml_sitemap=params=$matches[2];html=true',
|
130 |
+
'sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$' => 'index.php?xml_sitemap=params=$matches[2];html=true;zip=true',
|
131 |
+
);
|
132 |
+
return array_merge( $sm_rules, $wp_rules );
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* Returns the rules required for Nginx permalinks
|
137 |
+
*
|
138 |
+
* @return string[]
|
139 |
+
*/
|
140 |
+
public static function get_ngin_x_rules() {
|
141 |
+
return array(
|
142 |
+
'rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml$ "/index.php?xml_sitemap=params=$2" last;',
|
143 |
+
'rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$ "/index.php?xml_sitemap=params=$2;zip=true" last;',
|
144 |
+
'rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html$ "/index.php?xml_sitemap=params=$2;html=true" last;',
|
145 |
+
'rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$ "/index.php?xml_sitemap=params=$2;html=true;zip=true" last;',
|
146 |
+
);
|
147 |
+
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Adds the filters for wp rewrite rule adding
|
152 |
+
*
|
153 |
+
* @since 4.0
|
154 |
+
* @uses add_filter()
|
155 |
+
*/
|
156 |
+
public static function setup_rewrite_hooks() {
|
157 |
+
add_filter( 'rewrite_rules_array', array( __CLASS__, 'add_rewrite_rules' ), 1, 1 );
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* Deregisters the plugin specific rewrite rules
|
162 |
+
*
|
163 |
+
* Combined: sitemap(-+([a-zA-Z0-9_-]+))?\.(xml|html)(.gz)?$
|
164 |
+
*
|
165 |
+
* @since 4.0
|
166 |
+
* @param array $wp_rules Array of existing rewrite rules .
|
167 |
+
* @return Array An array containing the new rewrite rules
|
168 |
+
*/
|
169 |
+
public static function remove_rewrite_rules( $wp_rules ) {
|
170 |
+
$sm_rules = array(
|
171 |
+
'sitemap(-+([a-zA-Z0-9_-]+))?\.xml$' => 'index.php?xml_sitemap=params=$matches[2]',
|
172 |
+
'sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$' => 'index.php?xml_sitemap=params=$matches[2];zip=true',
|
173 |
+
'sitemap(-+([a-zA-Z0-9_-]+))?\.html$' => 'index.php?xml_sitemap=params=$matches[2];html=true',
|
174 |
+
'sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$' => 'index.php?xml_sitemap=params=$matches[2];html=true;zip=true',
|
175 |
+
);
|
176 |
+
foreach ( $wp_rules as $key => $value ) {
|
177 |
+
if ( array_key_exists( $key, $sm_rules ) ) {
|
178 |
+
unset( $wp_rules[ $key ] );
|
179 |
+
}
|
180 |
+
}
|
181 |
+
return $wp_rules;
|
182 |
+
}
|
183 |
+
|
184 |
+
/**
|
185 |
+
* Remove rewrite hooks method
|
186 |
+
*/
|
187 |
+
public static function remove_rewrite_hooks() {
|
188 |
+
add_filter( 'rewrite_rules_array', array( __CLASS__, 'remove_rewrite_rules' ), 1, 1 );
|
189 |
+
}
|
190 |
+
|
191 |
+
/**
|
192 |
+
* Flushes the rewrite rules
|
193 |
+
*
|
194 |
+
* @since 4.0
|
195 |
+
* @global $wp_rewrite WP_Rewrite
|
196 |
+
* @uses WP_Rewrite::flush_rules()
|
197 |
+
*/
|
198 |
+
public static function activate_rewrite() {
|
199 |
+
// @var $wp_rewrite WP_Rewrite .
|
200 |
+
global $wp_rewrite;
|
201 |
+
$wp_rewrite->flush_rules( false );
|
202 |
+
update_option( 'sm_rewrite_done', self::$svn_version );
|
203 |
+
}
|
204 |
+
|
205 |
+
/**
|
206 |
+
* Handled the plugin activation on installation
|
207 |
+
*
|
208 |
+
* @uses GoogleSitemapGeneratorLoader::activate_rewrite
|
209 |
+
* @since 4.0
|
210 |
+
*/
|
211 |
+
public static function activate_plugin() {
|
212 |
+
self::setup_rewrite_hooks();
|
213 |
+
self::activate_rewrite();
|
214 |
+
|
215 |
+
if ( self::load_plugin() ) {
|
216 |
+
$gsg = GoogleSitemapGenerator::get_instance();
|
217 |
+
if ( $gsg->old_file_exists() ) {
|
218 |
+
$gsg->delete_old_files();
|
219 |
+
}
|
220 |
+
}
|
221 |
+
|
222 |
+
}
|
223 |
+
|
224 |
+
/**
|
225 |
+
* Handled the plugin deactivation
|
226 |
+
*
|
227 |
+
* @uses GoogleSitemapGeneratorLoader::activate_rewrite
|
228 |
+
* @since 4.0
|
229 |
+
*/
|
230 |
+
public static function deactivate_plugin() {
|
231 |
+
global $wp_rewrite;
|
232 |
+
delete_option( 'sm_rewrite_done' );
|
233 |
+
wp_clear_scheduled_hook( 'sm_ping_daily' );
|
234 |
+
self::remove_rewrite_hooks();
|
235 |
+
$wp_rewrite->flush_rules( false );
|
236 |
+
}
|
237 |
+
|
238 |
+
|
239 |
+
/**
|
240 |
+
* Handles the plugin output on template redirection if the xml_sitemap query var is present.
|
241 |
+
*
|
242 |
+
* @since 4.0
|
243 |
+
*/
|
244 |
+
public static function do_template_redirect() {
|
245 |
+
// @var $wp_query WP_Query .
|
246 |
+
global $wp_query;
|
247 |
+
if ( ! empty( $wp_query->query_vars['xml_sitemap'] ) ) {
|
248 |
+
$wp_query->is_404 = false;
|
249 |
+
$wp_query->is_feed = true;
|
250 |
+
self::call_show_sitemap( $wp_query->query_vars['xml_sitemap'] );
|
251 |
+
}
|
252 |
+
}
|
253 |
+
|
254 |
+
/**
|
255 |
+
* Registers the plugin in the admin menu system
|
256 |
+
*
|
257 |
+
* @uses add_options_page()
|
258 |
+
*/
|
259 |
+
public static function register_admin_page() {
|
260 |
+
add_options_page( __( 'XML-Sitemap Generator', 'sitemap' ), __( 'XML-Sitemap', 'sitemap' ), 'administrator', self::get_base_name(), array( __CLASS__, 'call_html_show_options_page' ) );
|
261 |
+
}
|
262 |
+
|
263 |
+
/**
|
264 |
+
* Add a widget to the dashboard.
|
265 |
+
*
|
266 |
+
* @param string $a .
|
267 |
+
*/
|
268 |
+
public static function wp_dashboard_setup( $a ) {
|
269 |
+
self::load_plugin();
|
270 |
+
$sg = GoogleSitemapGenerator::get_instance();
|
271 |
+
|
272 |
+
if ( $sg->show_survey() ) {
|
273 |
+
add_action( 'admin_notices', array( __CLASS__, 'wp_dashboard_admin_notices' ) );
|
274 |
+
}
|
275 |
+
}
|
276 |
+
/**
|
277 |
+
* Wp dashboard admin notices method
|
278 |
+
*/
|
279 |
+
public static function wp_dashboard_admin_notices() {
|
280 |
+
$sg = GoogleSitemapGenerator::get_instance();
|
281 |
+
$sg->html_survey();
|
282 |
+
}
|
283 |
+
|
284 |
+
/**
|
285 |
+
* Returns a nice icon for the Ozh Admin Menu if the {@param $hook} equals to the sitemap plugin
|
286 |
+
*
|
287 |
+
* @param string $hook The hook to compare .
|
288 |
+
* @return string The path to the icon
|
289 |
+
*/
|
290 |
+
public static function register_admin_icon( $hook ) {
|
291 |
+
if ( self::get_base_name() === $hook && function_exists( 'plugins_url' ) ) {
|
292 |
+
return plugins_url( 'img/icon-arne.gif', self::get_base_name() );
|
293 |
+
}
|
294 |
+
return $hook;
|
295 |
+
}
|
296 |
+
|
297 |
+
/**
|
298 |
+
* Registers additional links for the sitemap plugin on the WP plugin configuration page
|
299 |
+
*
|
300 |
+
* Registers the links if the $file param equals to the sitemap plugin
|
301 |
+
*
|
302 |
+
* @param string $links Array An array with the existing links .
|
303 |
+
* @param string $file string The file to compare to .
|
304 |
+
* @return string[]
|
305 |
+
*/
|
306 |
+
public static function register_plugin_links( $links, $file ) {
|
307 |
+
$base = self::get_base_name();
|
308 |
+
if ( $file === $base ) {
|
309 |
+
$links[] = '<a href="options-general.php?page=' . self::get_base_name() . '">' . __( 'Settings', 'sitemap' ) . '</a>';
|
310 |
+
$links[] = '<a href="http://www.arnebrachhold.de/redir/sitemap-plist-faq/">' . __( 'FAQ', 'sitemap' ) . '</a>';
|
311 |
+
$links[] = '<a href="http://www.arnebrachhold.de/redir/sitemap-plist-support/">' . __( 'Support', 'sitemap' ) . '</a>';
|
312 |
+
}
|
313 |
+
return $links;
|
314 |
+
}
|
315 |
+
|
316 |
+
/**
|
317 |
+
* SchedulePingOnStatus Change
|
318 |
+
*
|
319 |
+
* @param string $new_status string The new post status .
|
320 |
+
* @param string $old_status string The old post status .
|
321 |
+
* @param object $post WP_Post The post object .
|
322 |
+
*/
|
323 |
+
public static function schedule_ping_on_status_change( $new_status, $old_status, $post ) {
|
324 |
+
if ( 'publish' === $new_status ) {
|
325 |
+
set_transient( 'sm_ping_post_id', $post->ID, 120 );
|
326 |
+
wp_schedule_single_event( time() + 5, 'sm_ping' );
|
327 |
+
}
|
328 |
+
}
|
329 |
+
|
330 |
+
/**
|
331 |
+
* Invokes the HtmlShowOptionsPage method of the generator
|
332 |
+
*
|
333 |
+
* @uses GoogleSitemapGeneratorLoader::load_plugin()
|
334 |
+
* @uses GoogleSitemapGenerator::HtmlShowOptionsPage()
|
335 |
+
*/
|
336 |
+
public static function call_html_show_options_page() {
|
337 |
+
if ( self::load_plugin() ) {
|
338 |
+
GoogleSitemapGenerator::get_instance()->html_show_options_page();
|
339 |
+
}
|
340 |
+
}
|
341 |
+
|
342 |
+
/**
|
343 |
+
* Invokes the ShowPingResult method of the generator
|
344 |
+
*
|
345 |
+
* @uses GoogleSitemapGeneratorLoader::load_plugin()
|
346 |
+
* @uses GoogleSitemapGenerator::ShowPingResult()
|
347 |
+
*/
|
348 |
+
public static function call_show_ping_result() {
|
349 |
+
if ( self::load_plugin() ) {
|
350 |
+
GoogleSitemapGenerator::get_instance()->show_ping_result();
|
351 |
+
}
|
352 |
+
}
|
353 |
+
|
354 |
+
/**
|
355 |
+
* Invokes the SendPing method of the generator
|
356 |
+
*
|
357 |
+
* @uses GoogleSitemapGeneratorLoader::load_plugin()
|
358 |
+
* @uses GoogleSitemapGenerator::SendPing()
|
359 |
+
*/
|
360 |
+
public static function call_send_ping() {
|
361 |
+
if ( self::load_plugin() ) {
|
362 |
+
GoogleSitemapGenerator::get_instance()->send_ping();
|
363 |
+
}
|
364 |
+
}
|
365 |
+
|
366 |
+
/**
|
367 |
+
* Invokes the SendPingDaily method of the generator
|
368 |
+
*
|
369 |
+
* @uses GoogleSitemapGeneratorLoader::load_plugin()
|
370 |
+
* @uses GoogleSitemapGenerator::SendPingDaily()
|
371 |
+
*/
|
372 |
+
public static function call_send_ping_daily() {
|
373 |
+
if ( self::load_plugin() ) {
|
374 |
+
GoogleSitemapGenerator::get_instance()->send_ping_daily();
|
375 |
+
}
|
376 |
+
}
|
377 |
+
|
378 |
+
/**
|
379 |
+
* Invokes the ShowSitemap method of the generator
|
380 |
+
*
|
381 |
+
* @param string $options .
|
382 |
+
* @uses GoogleSitemapGeneratorLoader::load_plugin()
|
383 |
+
* @uses GoogleSitemapGenerator::ShowSitemap()
|
384 |
+
*/
|
385 |
+
public static function call_show_sitemap( $options ) {
|
386 |
+
if ( self::load_plugin() ) {
|
387 |
+
GoogleSitemapGenerator::get_instance()->show_sitemap( $options );
|
388 |
+
}
|
389 |
+
}
|
390 |
+
|
391 |
+
/**
|
392 |
+
* Invokes the DoRobots method of the generator
|
393 |
+
*
|
394 |
+
* @uses GoogleSitemapGeneratorLoader::load_plugin()
|
395 |
+
* @uses GoogleSitemapGenerator::DoRobots()
|
396 |
+
*/
|
397 |
+
public static function call_do_robots() {
|
398 |
+
if ( self::load_plugin() ) {
|
399 |
+
GoogleSitemapGenerator::get_instance()->do_robots();
|
400 |
+
}
|
401 |
+
}
|
402 |
+
|
403 |
+
/**
|
404 |
+
* Displays the help links in the upper Help Section of WordPress
|
405 |
+
*/
|
406 |
+
public static function call_html_show_help_list() {
|
407 |
+
|
408 |
+
$screen = get_current_screen();
|
409 |
+
$id = get_plugin_page_hookname( self::get_base_name(), 'options-general.php' );
|
410 |
+
|
411 |
+
}
|
412 |
+
|
413 |
+
|
414 |
+
/**
|
415 |
+
* Loads the actual generator class and tries to raise the memory and time limits if not already done by WP
|
416 |
+
*
|
417 |
+
* @uses GoogleSitemapGenerator::enable()
|
418 |
+
* @return boolean true if run successfully
|
419 |
+
*/
|
420 |
+
public static function load_plugin() {
|
421 |
+
|
422 |
+
if ( ! class_exists( 'GoogleSitemapGenerator' ) ) {
|
423 |
+
|
424 |
+
$mem = abs( intval( ini_get( 'memory_limit' ) ) );
|
425 |
+
if ( $mem && $mem < 128 ) {
|
426 |
+
wp_raise_memory_limit( '128M' );
|
427 |
+
}
|
428 |
+
|
429 |
+
$time = abs( intval( ini_get( 'max_execution_time' ) ) );
|
430 |
+
if ( 0 !== $time && 120 > $time ) {
|
431 |
+
set_time_limit( 120 );
|
432 |
+
}
|
433 |
+
|
434 |
+
$path = trailingslashit( dirname( __FILE__ ) );
|
435 |
+
|
436 |
+
if ( ! file_exists( $path . 'sitemap-core.php' ) ) {
|
437 |
+
return false;
|
438 |
+
}
|
439 |
+
require_once $path . 'sitemap-core.php';
|
440 |
+
}
|
441 |
+
|
442 |
+
GoogleSitemapGenerator::enable();
|
443 |
+
return true;
|
444 |
+
}
|
445 |
+
|
446 |
+
/**
|
447 |
+
* Returns the plugin basename of the plugin (using __FILE__)
|
448 |
+
*
|
449 |
+
* @return string The plugin basename, 'sitemap' for example
|
450 |
+
*/
|
451 |
+
public static function get_base_name() {
|
452 |
+
return plugin_basename( sm_get_init_file() );
|
453 |
+
}
|
454 |
+
|
455 |
+
/**
|
456 |
+
* Returns the name of this loader script, using sm_GetInitFile
|
457 |
+
*
|
458 |
+
* @return string The sm_GetInitFile value
|
459 |
+
*/
|
460 |
+
public static function get_plugin_file() {
|
461 |
+
return sm_get_init_file();
|
462 |
+
}
|
463 |
+
|
464 |
+
/**
|
465 |
+
* Returns the plugin version
|
466 |
+
*
|
467 |
+
* Uses the WP API to get the meta data from the top of this file (comment)
|
468 |
+
*
|
469 |
+
* @return string The version like 3.1.1
|
470 |
+
*/
|
471 |
+
public static function get_version() {
|
472 |
+
if ( ! isset( $GLOBALS['sm_version'] ) ) {
|
473 |
+
if ( ! function_exists( 'get_plugin_data' ) ) {
|
474 |
+
if ( file_exists( ABSPATH . 'wp-admin/includes/plugin.php' ) ) {
|
475 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
476 |
+
} else {
|
477 |
+
return '0.ERROR';
|
478 |
+
}
|
479 |
+
}
|
480 |
+
$data = get_plugin_data( self::get_plugin_file(), false, false );
|
481 |
+
$GLOBALS['sm_version'] = $data['Version'];
|
482 |
+
}
|
483 |
+
return $GLOBALS['sm_version'];
|
484 |
+
}
|
485 |
+
|
486 |
+
/**
|
487 |
+
* Get SVN function .
|
488 |
+
*/
|
489 |
+
public static function get_svn_version() {
|
490 |
+
return self::$svn_version;
|
491 |
+
}
|
492 |
+
}
|
493 |
+
|
494 |
+
// Enable the plugin for the init hook, but only if WP is loaded. Calling this php file directly will do nothing.
|
495 |
+
if ( defined( 'ABSPATH' ) && defined( 'WPINC' ) ) {
|
496 |
+
add_action( 'init', array( 'GoogleSitemapGeneratorLoader', 'Enable' ), 15, 0 );
|
497 |
+
register_activation_hook( sm_get_init_file(), array( 'GoogleSitemapGeneratorLoader', 'activate_plugin' ) );
|
498 |
+
register_deactivation_hook( sm_get_init_file(), array( 'GoogleSitemapGeneratorLoader', 'deactivate_plugin' ) );
|
499 |
+
|
500 |
+
// Set up hooks for adding permalinks, query vars.
|
501 |
+
// Don't wait until init with this, since other plugins might flush the rewrite rules in init already...
|
502 |
+
GoogleSitemapGeneratorLoader::setup_query_vars();
|
503 |
+
GoogleSitemapGeneratorLoader::setup_rewrite_hooks();
|
504 |
+
}
|
class-googlesitemapgeneratorstandardbuilder.php
ADDED
@@ -0,0 +1,856 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Default sitemap builder
|
4 |
+
*
|
5 |
+
* @package Sitemap
|
6 |
+
* @author Arne Brachhold
|
7 |
+
* @since 4.0
|
8 |
+
*/
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Class
|
12 |
+
*/
|
13 |
+
class GoogleSitemapGeneratorStandardBuilder {
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Creates a new GoogleSitemapGeneratorStandardBuilder instance
|
17 |
+
*/
|
18 |
+
public function __construct() {
|
19 |
+
add_action( 'sm_build_index', array( $this, 'index' ), 10, 1 );
|
20 |
+
add_action( 'sm_build_content', array( $this, 'content' ), 10, 3 );
|
21 |
+
|
22 |
+
add_filter( 'sm_sitemap_for_post', array( $this, 'get_sitemap_url_for_post' ), 10, 3 );
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Generates the content of the requested sitemap
|
27 |
+
*
|
28 |
+
* @param GoogleSitemapGenerator $gsg instance of sitemap generator.
|
29 |
+
* @param String $type the type of the sitemap.
|
30 |
+
* @param String $params Parameters for the sitemap.
|
31 |
+
*/
|
32 |
+
public function content( $gsg, $type, $params ) {
|
33 |
+
switch ( $type ) {
|
34 |
+
case 'pt':
|
35 |
+
$this->build_posts( $gsg, $params );
|
36 |
+
break;
|
37 |
+
case 'archives':
|
38 |
+
$this->build_archives( $gsg );
|
39 |
+
break;
|
40 |
+
case 'authors':
|
41 |
+
$this->build_authors( $gsg );
|
42 |
+
break;
|
43 |
+
case 'tax':
|
44 |
+
$this->build_taxonomies( $gsg, $params );
|
45 |
+
break;
|
46 |
+
case 'producttags':
|
47 |
+
$this->build_product_tags( $gsg, $params );
|
48 |
+
break;
|
49 |
+
case 'productcat':
|
50 |
+
$this->build_product_categories( $gsg, $params );
|
51 |
+
break;
|
52 |
+
case 'externals':
|
53 |
+
$this->build_externals( $gsg );
|
54 |
+
break;
|
55 |
+
case 'misc':
|
56 |
+
default:
|
57 |
+
$this->build_misc( $gsg );
|
58 |
+
break;
|
59 |
+
}
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Generates the content for the post sitemap
|
64 |
+
*
|
65 |
+
* @param GoogleSitemapGenerator $gsg instance of sitemap generator.
|
66 |
+
* @param string $params string.
|
67 |
+
*/
|
68 |
+
public function build_posts( $gsg, $params ) {
|
69 |
+
|
70 |
+
$pts = strrpos( $params, '-' );
|
71 |
+
|
72 |
+
if ( ! $pts ) {
|
73 |
+
return;
|
74 |
+
}
|
75 |
+
|
76 |
+
$pts = strrpos( $params, '-', $pts - strlen( $params ) - 1 );
|
77 |
+
|
78 |
+
$post_type = substr( $params, 0, $pts );
|
79 |
+
|
80 |
+
if ( ! $post_type || ! in_array( $post_type, $gsg->get_active_post_types(), true ) ) {
|
81 |
+
return;
|
82 |
+
}
|
83 |
+
|
84 |
+
$params = substr( $params, $pts + 1 );
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Global variable for database.
|
88 |
+
*
|
89 |
+
* @var $wpdb wpdb
|
90 |
+
*/
|
91 |
+
global $wpdb;
|
92 |
+
|
93 |
+
if ( preg_match( '/^([0-9]{4})\-([0-9]{2})$/', $params, $matches ) ) {
|
94 |
+
$year = $matches[1];
|
95 |
+
$month = $matches[2];
|
96 |
+
|
97 |
+
// Excluded posts by ID.
|
98 |
+
$excluded_post_ids = $gsg->get_excluded_post_i_ds( $gsg );
|
99 |
+
$not_allowed_slugs = $gsg->robots_disallowed();
|
100 |
+
$excluded_post_ids = array_unique( array_merge( $excluded_post_ids, $not_allowed_slugs ), SORT_REGULAR );
|
101 |
+
$gsg->set_option( 'b_exclude', $excluded_post_ids );
|
102 |
+
$gsg->save_options();
|
103 |
+
$ex_post_s_q_l = '';
|
104 |
+
if ( count( $excluded_post_ids ) > 0 ) {
|
105 |
+
$ex_post_s_q_l = 'AND p.ID NOT IN (' . implode( ',', $excluded_post_ids ) . ')';
|
106 |
+
}
|
107 |
+
|
108 |
+
// Excluded categories by taxonomy ID.
|
109 |
+
$excluded_category_i_d_s = $gsg->get_excluded_category_i_ds( $gsg );
|
110 |
+
$ex_cat_s_q_l = '';
|
111 |
+
if ( count( $excluded_category_i_d_s ) > 0 ) {
|
112 |
+
$ex_cat_s_q_l = "AND ( p.ID NOT IN ( SELECT object_id FROM {$wpdb->term_relationships} WHERE term_taxonomy_id IN ( SELECT term_taxonomy_id FROM {$wpdb->term_taxonomy} WHERE term_id IN ( " . implode( ',', $excluded_category_i_d_s ) . '))))';
|
113 |
+
}
|
114 |
+
// Statement to query the actual posts for this post type.
|
115 |
+
$qs = "
|
116 |
+
SELECT
|
117 |
+
p.ID,
|
118 |
+
p.post_author,
|
119 |
+
p.post_status,
|
120 |
+
p.post_name,
|
121 |
+
p.post_parent,
|
122 |
+
p.post_type,
|
123 |
+
p.post_date,
|
124 |
+
p.post_date_gmt,
|
125 |
+
p.post_modified,
|
126 |
+
p.post_modified_gmt,
|
127 |
+
p.comment_count
|
128 |
+
FROM
|
129 |
+
{$wpdb->posts} p
|
130 |
+
WHERE
|
131 |
+
p.post_password = ''
|
132 |
+
AND p.post_type = '%s'
|
133 |
+
AND p.post_status = 'publish'
|
134 |
+
AND YEAR(p.post_date_gmt) = %d
|
135 |
+
AND MONTH(p.post_date_gmt) = %d
|
136 |
+
{$ex_post_s_q_l}
|
137 |
+
{$ex_cat_s_q_l}
|
138 |
+
ORDER BY
|
139 |
+
p.post_date_gmt DESC
|
140 |
+
";
|
141 |
+
// Query for counting all relevant posts for this post type.
|
142 |
+
$qsc = "
|
143 |
+
SELECT
|
144 |
+
COUNT(*)
|
145 |
+
FROM
|
146 |
+
{$wpdb->posts} p
|
147 |
+
WHERE
|
148 |
+
p.post_password = ''
|
149 |
+
AND p.post_type = '%s'
|
150 |
+
AND p.post_status = 'publish'
|
151 |
+
{$ex_post_s_q_l}
|
152 |
+
{$ex_cat_s_q_l}
|
153 |
+
";
|
154 |
+
// phpcs:disable
|
155 |
+
$q = $wpdb->prepare( $qs, $post_type, $year, $month );
|
156 |
+
// phpcs:enable
|
157 |
+
$posts = $wpdb->get_results( $q ); // phpcs:ignore
|
158 |
+
$post_count = count( $posts );
|
159 |
+
if ( ( $post_count ) > 0 ) {
|
160 |
+
/**
|
161 |
+
* Description for priority provider
|
162 |
+
*
|
163 |
+
* @var $priority_provider GoogleSitemapGeneratorPrioProviderBase
|
164 |
+
*/
|
165 |
+
$priority_provider = null;
|
166 |
+
|
167 |
+
if ( $gsg->get_option( 'b_prio_provider' ) !== '' ) {
|
168 |
+
|
169 |
+
// Number of comments for all posts.
|
170 |
+
$cache_key = __CLASS__ . '::commentCount';
|
171 |
+
$comment_count = wp_cache_get( $cache_key, 'sitemap' );
|
172 |
+
if ( false === $comment_count ) {
|
173 |
+
$comment_count = $wpdb->get_var( "SELECT COUNT(*) as `comment_count` FROM {$wpdb->comments} WHERE `comment_approved`='1'" ); // db call ok.
|
174 |
+
wp_cache_set( $cache_key, $comment_count, 'sitemap', 20 );
|
175 |
+
}
|
176 |
+
|
177 |
+
// Number of all posts matching our criteria.
|
178 |
+
$cache_key = __CLASS__ . "::totalPostCount::$post_type";
|
179 |
+
$total_post_count = wp_cache_get( $cache_key, 'sitemap' );
|
180 |
+
if ( false === $total_post_count ) {
|
181 |
+
// phpcs:disable
|
182 |
+
$total_post_count = $wpdb->get_var(
|
183 |
+
$wpdb->prepare(
|
184 |
+
"SELECT
|
185 |
+
COUNT(*)
|
186 |
+
FROM
|
187 |
+
{$wpdb->posts} p
|
188 |
+
WHERE
|
189 |
+
p.post_password = ''
|
190 |
+
AND p.post_type = " . $post_type . "
|
191 |
+
AND p.post_status = 'publish'
|
192 |
+
" . $ex_post_s_q_l . ' '
|
193 |
+
. $ex_cat_s_q_l . ''
|
194 |
+
) // phpcs:ignore
|
195 |
+
); // db call ok.
|
196 |
+
// phpcs:enable
|
197 |
+
wp_cache_add( $cache_key, $total_post_count, 'sitemap', 20 );
|
198 |
+
}
|
199 |
+
|
200 |
+
// Initialize a new priority provider.
|
201 |
+
$provider_class = $gsg->get_option( 'b_prio_provider' );
|
202 |
+
$priority_provider = new $provider_class( $comment_count, $total_post_count );
|
203 |
+
}
|
204 |
+
|
205 |
+
// Default priorities.
|
206 |
+
$default_priority_for_posts = $gsg->get_option( 'pr_posts' );
|
207 |
+
$default_priority_for_pages = $gsg->get_option( 'pr_pages' );
|
208 |
+
|
209 |
+
// Minimum priority.
|
210 |
+
$minimum_priority = $gsg->get_option( 'pr_posts_min' );
|
211 |
+
|
212 |
+
// Change frequencies.
|
213 |
+
$change_frequency_for_posts = $gsg->get_option( 'cf_posts' );
|
214 |
+
$change_frequency_for_pages = $gsg->get_option( 'cf_pages' );
|
215 |
+
|
216 |
+
// Page as home handling.
|
217 |
+
$home_pid = 0;
|
218 |
+
$home = get_home_url();
|
219 |
+
if ( 'page' === get_option( 'show_on_front' ) && get_option( 'page_on_front' ) ) {
|
220 |
+
$page_on_front = get_option( 'page_on_front' );
|
221 |
+
$p = get_post( $page_on_front );
|
222 |
+
if ( $p ) {
|
223 |
+
$home_pid = $p->ID;
|
224 |
+
}
|
225 |
+
}
|
226 |
+
|
227 |
+
foreach ( $posts as $post ) {
|
228 |
+
|
229 |
+
// Fill the cache with our DB result. Since it's incomplete (no text-content for example), we will clean it later.
|
230 |
+
// This is required since the permalink function will do a query for every post otherwise.
|
231 |
+
// wp_cache_add($post->ID, $post, 'posts');.
|
232 |
+
|
233 |
+
// Full URL to the post.
|
234 |
+
$permalink = get_permalink( $post );
|
235 |
+
|
236 |
+
// Exclude the home page and placeholder items by some plugins. Also include only internal links.
|
237 |
+
if (
|
238 |
+
( ! empty( $permalink ) )
|
239 |
+
&& $permalink !== $home
|
240 |
+
&& $post->ID !== $home_pid
|
241 |
+
&& strpos( $permalink, $home ) !== false
|
242 |
+
) {
|
243 |
+
|
244 |
+
// Default Priority if auto calc is disabled.
|
245 |
+
$priority = ( 'page' === $post_type ? $default_priority_for_pages : $default_priority_for_posts );
|
246 |
+
|
247 |
+
// If priority calc. is enabled, calculate (but only for posts, not pages)!
|
248 |
+
if ( null !== $priority_provider && 'post' === $post_type ) {
|
249 |
+
$priority = $priority_provider->get_post_priority( $post->ID, $post->comment_count, $post );
|
250 |
+
}
|
251 |
+
|
252 |
+
// Ensure the minimum priority.
|
253 |
+
if ( 'post' === $post_type && $minimum_priority > 0 && $priority < $minimum_priority ) {
|
254 |
+
$priority = $minimum_priority;
|
255 |
+
}
|
256 |
+
|
257 |
+
// Add the URL to the sitemap.
|
258 |
+
$gsg->add_url(
|
259 |
+
$permalink,
|
260 |
+
$gsg->get_timestamp_from_my_sql( $post->post_modified_gmt && '0000-00-00 00:00:00' !== $post->post_modified_gmt ? $post->post_modified_gmt : $post->post_date_gmt ),
|
261 |
+
( 'page' === $post_type ? $change_frequency_for_pages : $change_frequency_for_posts ),
|
262 |
+
$priority,
|
263 |
+
$post->ID
|
264 |
+
);
|
265 |
+
}
|
266 |
+
|
267 |
+
// Why not use clean_post_cache? Because some plugin will go crazy then (lots of database queries).
|
268 |
+
// The post cache was not populated in a clean way, so we also won't delete it using the API.
|
269 |
+
// wp_cache_delete( $post->ID, 'posts' );.
|
270 |
+
unset( $post );
|
271 |
+
}
|
272 |
+
unset( $posts_custom );
|
273 |
+
}
|
274 |
+
}
|
275 |
+
}
|
276 |
+
|
277 |
+
|
278 |
+
/**
|
279 |
+
* Generates the content for the archives sitemap
|
280 |
+
*
|
281 |
+
* @param GoogleSitemapGenerator $gsg object of google sitemap.
|
282 |
+
*/
|
283 |
+
public function build_archives( $gsg ) {
|
284 |
+
/**
|
285 |
+
* Super global variable for database.
|
286 |
+
*
|
287 |
+
* @var $wpdb wpdb
|
288 |
+
*/
|
289 |
+
global $wpdb;
|
290 |
+
|
291 |
+
$now = current_time( 'mysql', true );
|
292 |
+
|
293 |
+
$archives = $wpdb->get_results(
|
294 |
+
// phpcs:disable
|
295 |
+
$wpdb->prepare(
|
296 |
+
"SELECT DISTINCT
|
297 |
+
YEAR(post_date_gmt) AS `year`,
|
298 |
+
MONTH(post_date_gmt) AS `month`,
|
299 |
+
MAX(post_date_gmt) AS last_mod,
|
300 |
+
count(ID) AS posts
|
301 |
+
FROM
|
302 |
+
$wpdb->posts
|
303 |
+
WHERE
|
304 |
+
post_date_gmt < " . $now . "
|
305 |
+
AND post_status = 'publish'
|
306 |
+
AND post_type = 'post'
|
307 |
+
GROUP BY
|
308 |
+
YEAR(post_date_gmt),
|
309 |
+
MONTH(post_date_gmt)
|
310 |
+
ORDER BY
|
311 |
+
post_date_gmt DESC"
|
312 |
+
)
|
313 |
+
// phpcs:enable
|
314 |
+
); // db call ok; no-cache ok.
|
315 |
+
|
316 |
+
if ( $archives ) {
|
317 |
+
foreach ( $archives as $archive ) {
|
318 |
+
|
319 |
+
$url = get_month_link( $archive->year, $archive->month );
|
320 |
+
|
321 |
+
// Archive is the current one.
|
322 |
+
if ( gmdate( 'n' ) === $archive->month && gmdate( 'Y' ) === $archive->year ) {
|
323 |
+
$change_freq = $gsg->get_option( 'cf_arch_curr' );
|
324 |
+
} else { // Archive is older.
|
325 |
+
$change_freq = $gsg->get_option( 'cf_arch_old' );
|
326 |
+
}
|
327 |
+
|
328 |
+
$gsg->add_url( $url, $gsg->get_timestamp_from_my_sql( $archive->last_mod ), $change_freq, $gsg->get_option( 'pr_arch' ) );
|
329 |
+
}
|
330 |
+
}
|
331 |
+
|
332 |
+
$post_type_customs = get_post_types( array( 'public' => 1 ) );
|
333 |
+
$post_type_customs = array_diff( $post_type_customs, array( 'page', 'attachment', 'product', 'post' ) );
|
334 |
+
foreach ( $post_type_customs as $post_type_custom ) {
|
335 |
+
$latest = new WP_Query(
|
336 |
+
array(
|
337 |
+
'post_type' => $post_type_custom,
|
338 |
+
'post_status' => 'publish',
|
339 |
+
'posts_per_page' => 1,
|
340 |
+
'orderby' => 'modified',
|
341 |
+
'order' => 'DESC',
|
342 |
+
)
|
343 |
+
);
|
344 |
+
|
345 |
+
if ( $latest->have_posts() ) {
|
346 |
+
$modified_date = $latest->posts[0]->post_modified;
|
347 |
+
if ( gmdate( 'n', strtotime( $modified_date ) ) === gmdate( 'n' ) && gmdate( 'Y', strtotime( $modified_date ) ) === gmdate( 'Y' ) ) {
|
348 |
+
$change_freq = $gsg->get_option( 'cf_arch_curr' );
|
349 |
+
} else { // Archive is older.
|
350 |
+
$change_freq = $gsg->get_option( 'cf_arch_old' );
|
351 |
+
}
|
352 |
+
$gsg->add_url( get_post_type_archive_link( $post_type_custom ), $gsg->get_timestamp_from_my_sql( $modified_date ), $change_freq, $gsg->get_option( 'pr_arch' ), 0, array(), array(), '' );
|
353 |
+
}
|
354 |
+
}
|
355 |
+
}
|
356 |
+
|
357 |
+
/**
|
358 |
+
* Generates the misc sitemap
|
359 |
+
*
|
360 |
+
* @param GoogleSitemapGenerator $gsg instence of sitemap generator class.
|
361 |
+
*/
|
362 |
+
public function build_misc( $gsg ) {
|
363 |
+
|
364 |
+
$lm = get_lastpostmodified( 'gmt' );
|
365 |
+
|
366 |
+
if ( $gsg->get_option( 'in_home' ) ) {
|
367 |
+
$home = get_bloginfo( 'url' );
|
368 |
+
|
369 |
+
// Add the home page (WITH a slash!).
|
370 |
+
if ( $gsg->get_option( 'in_home' ) ) {
|
371 |
+
if ( 'page' === get_option( 'show_on_front' ) && get_option( 'page_on_front' ) ) {
|
372 |
+
$page_on_front = get_option( 'page_on_front' );
|
373 |
+
$p = get_post( $page_on_front );
|
374 |
+
if ( $p ) {
|
375 |
+
$gsg->add_url(
|
376 |
+
trailingslashit( $home ),
|
377 |
+
$gsg->get_timestamp_from_my_sql( ( $p->post_modified_gmt && '0000-00-00 00:00:00' !== $p->post_modified_gmt ? $p->post_modified_gmt : $p->post_date_gmt ) ),
|
378 |
+
$gsg->get_option( 'cf_home' ),
|
379 |
+
$gsg->get_option( 'pr_home' )
|
380 |
+
);
|
381 |
+
}
|
382 |
+
} else {
|
383 |
+
$gsg->add_url(
|
384 |
+
trailingslashit( $home ),
|
385 |
+
( $lm ? $gsg->get_timestamp_from_my_sql( $lm ) : time() ),
|
386 |
+
$gsg->get_option( 'cf_home' ),
|
387 |
+
$gsg->get_option( 'pr_home' )
|
388 |
+
);
|
389 |
+
}
|
390 |
+
}
|
391 |
+
}
|
392 |
+
|
393 |
+
if ( $gsg->is_xsl_enabled() && true === $gsg->get_option( 'b_html' ) ) {
|
394 |
+
$gsg->add_url(
|
395 |
+
$gsg->get_xml_url( '', '', array( 'html' => true ) ),
|
396 |
+
( $lm ? $gsg->get_timestamp_from_my_sql( $lm ) : time() )
|
397 |
+
);
|
398 |
+
}
|
399 |
+
|
400 |
+
do_action( 'sm_buildmap' );
|
401 |
+
}
|
402 |
+
|
403 |
+
/**
|
404 |
+
* Generates the author sitemap
|
405 |
+
*
|
406 |
+
* @param GoogleSitemapGenerator $gsg instence of sitemap generator class.
|
407 |
+
*/
|
408 |
+
public function build_authors( $gsg ) {
|
409 |
+
/**
|
410 |
+
* Use the wpdb global variable
|
411 |
+
*
|
412 |
+
* @var $wpdb wpdb
|
413 |
+
* */
|
414 |
+
global $wpdb;
|
415 |
+
|
416 |
+
// Unfortunately there is no API function to get all authors, so we have to do it the dirty way...
|
417 |
+
// We retrieve only users with published and not password protected enabled post types.
|
418 |
+
|
419 |
+
$enabled_post_types = null;
|
420 |
+
$enabled_post_types = $gsg->get_active_post_types();
|
421 |
+
|
422 |
+
// Ensure we count at least the posts...
|
423 |
+
$enabled_post_types_count = count( $enabled_post_types );
|
424 |
+
if ( 0 === $enabled_post_types_count ) {
|
425 |
+
$enabled_post_types[] = 'post';
|
426 |
+
}
|
427 |
+
// phpcs:disable
|
428 |
+
$authors = $wpdb->get_results(
|
429 |
+
$wpdb->prepare(
|
430 |
+
"SELECT DISTINCT
|
431 |
+
u.ID,
|
432 |
+
u.user_nicename,
|
433 |
+
MAX(p.post_modified_gmt) AS last_post
|
434 |
+
FROM
|
435 |
+
{$wpdb->users} u,
|
436 |
+
{$wpdb->posts} p
|
437 |
+
WHERE
|
438 |
+
p.post_author = u.ID
|
439 |
+
AND p.post_status = 'publish'
|
440 |
+
AND p.post_type IN('" . implode( "','", array_map( 'esc_sql', $enabled_post_types ) ) . "' )
|
441 |
+
AND p.post_password = ''
|
442 |
+
GROUP BY
|
443 |
+
u.ID,
|
444 |
+
u.user_nicename"
|
445 |
+
)
|
446 |
+
); // db call ok; no-cache ok.
|
447 |
+
// phpcs:enable
|
448 |
+
if ( $authors && is_array( $authors ) ) {
|
449 |
+
foreach ( $authors as $author ) {
|
450 |
+
$url = get_author_posts_url( $author->ID, $author->user_nicename );
|
451 |
+
$gsg->add_url(
|
452 |
+
$url,
|
453 |
+
$gsg->get_timestamp_from_my_sql( $author->last_post ),
|
454 |
+
$gsg->get_option( 'cf_auth' ),
|
455 |
+
$gsg->get_option( 'pr_auth' )
|
456 |
+
);
|
457 |
+
}
|
458 |
+
}
|
459 |
+
}
|
460 |
+
|
461 |
+
/**
|
462 |
+
* Filters the terms query to only include published posts
|
463 |
+
*
|
464 |
+
* @param string[] $selects Array of string.
|
465 |
+
* @return string[]
|
466 |
+
*/
|
467 |
+
public function filter_terms_query( $selects ) {
|
468 |
+
/**
|
469 |
+
* Global variable in functional scope for database
|
470 |
+
*
|
471 |
+
* @var wpdb $wpdb Global variable for wpdb
|
472 |
+
*/
|
473 |
+
global $wpdb;
|
474 |
+
$selects[] = "
|
475 |
+
( /* ADDED BY XML SITEMAPS */
|
476 |
+
SELECT
|
477 |
+
UNIX_TIMESTAMP(MAX(p.post_date_gmt)) as _mod_date
|
478 |
+
FROM
|
479 |
+
{$wpdb->posts} p,
|
480 |
+
{$wpdb->term_relationships} r
|
481 |
+
WHERE
|
482 |
+
p.ID = r.object_id
|
483 |
+
AND p.post_status = 'publish'
|
484 |
+
AND p.post_password = ''
|
485 |
+
AND r.term_taxonomy_id = tt.term_taxonomy_id
|
486 |
+
) as _mod_date
|
487 |
+
/* END ADDED BY XML SITEMAPS */
|
488 |
+
";
|
489 |
+
|
490 |
+
return $selects;
|
491 |
+
}
|
492 |
+
|
493 |
+
/**
|
494 |
+
* Generates the taxonomies sitemap
|
495 |
+
*
|
496 |
+
* @param GoogleSitemapGenerator $gsg Instance of sitemap generator.
|
497 |
+
* @param string $taxonomy The Taxonomy.
|
498 |
+
*/
|
499 |
+
public function build_taxonomies( $gsg, $taxonomy ) {
|
500 |
+
|
501 |
+
$offset = $taxonomy;
|
502 |
+
$links_per_page = $gsg->get_option( 'links_page' );
|
503 |
+
if ( strpos( $taxonomy, '-' ) !== false ) {
|
504 |
+
$offset = substr( $taxonomy, strrpos( $taxonomy, '-' ) + 1 );
|
505 |
+
$taxonomy = str_replace( '-' . $offset, '', $taxonomy );
|
506 |
+
}
|
507 |
+
$offset = ( --$offset ) * $links_per_page;
|
508 |
+
|
509 |
+
$enabled_taxonomies = $this->get_enabled_taxonomies( $gsg );
|
510 |
+
if ( in_array( $taxonomy, $enabled_taxonomies, true ) ) {
|
511 |
+
|
512 |
+
$excludes = array();
|
513 |
+
|
514 |
+
$excl_cats = $gsg->get_option( 'b_exclude_cats' ); // Excluded cats.
|
515 |
+
if ( $excl_cats ) {
|
516 |
+
$excludes = $excl_cats;
|
517 |
+
}
|
518 |
+
add_filter( 'get_terms_fields', array( $this, 'filter_terms_query' ), 20, 2 );
|
519 |
+
$terms = get_terms(
|
520 |
+
$taxonomy,
|
521 |
+
array(
|
522 |
+
'number' => $links_per_page,
|
523 |
+
'offset' => $offset,
|
524 |
+
'hide_empty' => true,
|
525 |
+
'hierarchical' => false,
|
526 |
+
'exclude' => $excludes,
|
527 |
+
)
|
528 |
+
);
|
529 |
+
remove_filter( 'get_terms_fields', array( $this, 'filter_terms_query' ), 20, 2 );
|
530 |
+
|
531 |
+
$step = 1;
|
532 |
+
$size_of_terms = count( $terms );
|
533 |
+
for ( $tax_count = 0; $tax_count < $size_of_terms; $tax_count++ ) {
|
534 |
+
$term = $terms[ $tax_count ];
|
535 |
+
switch ( $term->taxonomy ) {
|
536 |
+
case 'category':
|
537 |
+
$gsg->add_url( get_term_link( $term, $step ), $term->_mod_date, $gsg->get_option( 'cf_cats' ), $gsg->get_option( 'pr_cats' ) );
|
538 |
+
break;
|
539 |
+
case 'product_cat':
|
540 |
+
$gsg->add_url( get_term_link( $term, $step ), $term->_mod_date, $gsg->get_option( 'cf_product_cat' ), $gsg->get_option( 'pr_product_cat' ) );
|
541 |
+
break;
|
542 |
+
default:
|
543 |
+
$gsg->add_url( get_term_link( $term, $step ), $term->_mod_date, $gsg->get_option( 'cf_tags' ), $gsg->get_option( 'pr_tags' ) );
|
544 |
+
break;
|
545 |
+
}
|
546 |
+
$step++;
|
547 |
+
}
|
548 |
+
}
|
549 |
+
}
|
550 |
+
|
551 |
+
/**
|
552 |
+
* Returns the enabled taxonomies. Only taxonomies with posts are returned.
|
553 |
+
*
|
554 |
+
* @param GoogleSitemapGenerator $gsg Google sitemap generator's instance.
|
555 |
+
* @return array
|
556 |
+
*/
|
557 |
+
public function get_enabled_taxonomies( GoogleSitemapGenerator $gsg ) {
|
558 |
+
|
559 |
+
$enabled_taxonomies = $gsg->get_option( 'in_tax' );
|
560 |
+
if ( $gsg->get_option( 'in_tags' ) ) {
|
561 |
+
$enabled_taxonomies[] = 'post_tag';
|
562 |
+
}
|
563 |
+
|
564 |
+
if ( $gsg->get_option( 'in_cats' ) ) {
|
565 |
+
$enabled_taxonomies[] = 'category';
|
566 |
+
}
|
567 |
+
|
568 |
+
$tax_list = array();
|
569 |
+
foreach ( $enabled_taxonomies as $tax_name ) {
|
570 |
+
$taxonomy = get_taxonomy( $tax_name );
|
571 |
+
if ( $taxonomy && wp_count_terms( $taxonomy->name, array( 'hide_empty' => true ) ) > 0 ) {
|
572 |
+
$tax_list[] = $taxonomy->name;
|
573 |
+
}
|
574 |
+
}
|
575 |
+
return $tax_list;
|
576 |
+
}
|
577 |
+
|
578 |
+
/**
|
579 |
+
* Returns the enabled Product tags. Only Product Tags with posts are returned.
|
580 |
+
*
|
581 |
+
* @param GoogleSitemapGenerator $gsg Instance of sitemap generator.
|
582 |
+
* @param int $offset Offset.
|
583 |
+
* @return void
|
584 |
+
*/
|
585 |
+
public function build_product_tags( GoogleSitemapGenerator $gsg, $offset ) {
|
586 |
+
$links_per_page = $gsg->get_option( 'links_page' );
|
587 |
+
$offset = ( --$offset ) * $links_per_page;
|
588 |
+
|
589 |
+
add_filter( 'get_terms_fields', array( $this, 'filter_terms_query' ), 20, 2 );
|
590 |
+
$terms = get_terms(
|
591 |
+
'product_tag',
|
592 |
+
array(
|
593 |
+
'number' => $links_per_page,
|
594 |
+
'offset' => $offset,
|
595 |
+
)
|
596 |
+
);
|
597 |
+
remove_filter( 'get_terms_fields', array( $this, 'filter_terms_query' ), 20, 2 );
|
598 |
+
$term_array = array();
|
599 |
+
|
600 |
+
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
|
601 |
+
foreach ( $terms as $term ) {
|
602 |
+
$term_array[] = $term->name;
|
603 |
+
$url = get_term_link( $term );
|
604 |
+
$gsg->add_url( $url, $term->_mod_date, $gsg->get_option( 'cf_tags' ), $gsg->get_option( 'pr_tags' ), $term->ID, array(), array(), '' );
|
605 |
+
}
|
606 |
+
}
|
607 |
+
}
|
608 |
+
|
609 |
+
/**
|
610 |
+
* Returns the enabled Product Categories. Only Product Categories with posts are returned.
|
611 |
+
*
|
612 |
+
* @param GoogleSitemapGenerator $gsg Instance of sitemap generator.
|
613 |
+
* @param int $offset Offset.
|
614 |
+
* @return void
|
615 |
+
*/
|
616 |
+
public function build_product_categories( GoogleSitemapGenerator $gsg, $offset ) {
|
617 |
+
$links_per_page = $gsg->get_option( 'links_page' );
|
618 |
+
$offset = ( --$offset ) * $links_per_page;
|
619 |
+
$excludes = array();
|
620 |
+
$excl_cats = $gsg->get_option( 'b_exclude_cats' ); // Excluded cats.
|
621 |
+
if ( $excl_cats ) {
|
622 |
+
$excludes = $excl_cats;
|
623 |
+
}
|
624 |
+
add_filter( 'get_terms_fields', array( $this, 'filter_terms_query' ), 20, 2 );
|
625 |
+
$category = get_terms(
|
626 |
+
'product_cat',
|
627 |
+
array(
|
628 |
+
'number' => $links_per_page,
|
629 |
+
'offset' => $offset,
|
630 |
+
'exclude' => $excludes,
|
631 |
+
)
|
632 |
+
);
|
633 |
+
remove_filter( 'get_terms_fields', array( $this, 'filter_terms_query' ), 20, 2 );
|
634 |
+
$cat_array = array();
|
635 |
+
if ( ! empty( $category ) && ! is_wp_error( $category ) ) {
|
636 |
+
$step = 1;
|
637 |
+
foreach ( $category as $cat ) {
|
638 |
+
$cat_array[] = $cat->name;
|
639 |
+
if ( $cat && wp_count_terms( $cat->name, array( 'hide_empty' => true ) ) > 0 ) {
|
640 |
+
$step++;
|
641 |
+
$url = get_term_link( $cat );
|
642 |
+
$gsg->add_url( $url, $cat->_mod_date, $gsg->get_option( 'cf_product_cat' ), $gsg->get_option( 'pr_product_cat' ), $cat->ID, array(), array(), '' );
|
643 |
+
}
|
644 |
+
}
|
645 |
+
}
|
646 |
+
}
|
647 |
+
|
648 |
+
/**
|
649 |
+
* Generates the external sitemap
|
650 |
+
*
|
651 |
+
* @param GoogleSitemapGenerator $gsg Instance of sitemap generator.
|
652 |
+
*/
|
653 |
+
public function build_externals( $gsg ) {
|
654 |
+
$pages = $gsg->get_pages();
|
655 |
+
if ( $pages && is_array( $pages ) && count( $pages ) > 0 ) {
|
656 |
+
foreach ( $pages as $page ) {
|
657 |
+
|
658 |
+
/**
|
659 |
+
* Description for $page variable.
|
660 |
+
*
|
661 |
+
* @var $page GoogleSitemapGeneratorPage
|
662 |
+
*/
|
663 |
+
$gsg->add_url( $page->get_url(), $page->get_last_mod(), $page->get_change_freq(), $page->get_priority() );
|
664 |
+
}
|
665 |
+
}
|
666 |
+
}
|
667 |
+
|
668 |
+
/**
|
669 |
+
* Generates the sitemap index
|
670 |
+
*
|
671 |
+
* @param GoogleSitemapGenerator $gsg Instance of sitemap generator.
|
672 |
+
*/
|
673 |
+
public function index( $gsg ) {
|
674 |
+
/**
|
675 |
+
* Global variable for database.
|
676 |
+
*
|
677 |
+
* @var $wpdb wpdb
|
678 |
+
*/
|
679 |
+
global $wpdb;
|
680 |
+
$blog_update = strtotime( get_lastpostmodified( 'gmt' ) );
|
681 |
+
$links_per_page = $gsg->get_option( 'links_page' );
|
682 |
+
if ( 0 === $links_per_page ) {
|
683 |
+
$links_per_page = 10;
|
684 |
+
$gsg->set_option( 'links_page', 10 );
|
685 |
+
}
|
686 |
+
$gsg->add_sitemap( 'misc', null, $blog_update );
|
687 |
+
|
688 |
+
$taxonomies = $this->get_enabled_taxonomies( $gsg );
|
689 |
+
$taxonomies_to_exclude = array( 'product_tag', 'product_cat' );
|
690 |
+
$excludes = array();
|
691 |
+
$excl_cats = $gsg->get_option( 'b_exclude_cats' ); // Excluded cats.
|
692 |
+
|
693 |
+
if ( $excl_cats ) {
|
694 |
+
$excludes = $excl_cats;
|
695 |
+
}
|
696 |
+
|
697 |
+
foreach ( $taxonomies as $tax ) {
|
698 |
+
if ( ! in_array( $tax, $taxonomies_to_exclude, true ) ) {
|
699 |
+
$step = 1;
|
700 |
+
$taxs = get_terms( $tax, array( 'exclude' => $excludes ) );
|
701 |
+
$size_of_taxs = count( $taxs );
|
702 |
+
for ( $tax_count = 0; $tax_count < $size_of_taxs; $tax_count++ ) {
|
703 |
+
if ( 0 === ( $tax_count % $links_per_page ) && '' !== $taxs[ $tax_count ]->taxonomy ) {
|
704 |
+
$gsg->add_sitemap( 'tax-' . $taxs[ $tax_count ]->taxonomy, $step, $blog_update );
|
705 |
+
$step = ++$step;
|
706 |
+
}
|
707 |
+
}
|
708 |
+
}
|
709 |
+
}
|
710 |
+
|
711 |
+
// If Product Tags is enabled from sitemap settings.
|
712 |
+
if ( true === $gsg->get_option( 'product_tags' ) ) {
|
713 |
+
$product_tags = get_terms( 'product_tag' );
|
714 |
+
if ( ! empty( $product_tags ) && ! is_wp_error( $product_tags ) ) {
|
715 |
+
$step = 1;
|
716 |
+
$product_tags_size_of = count( $product_tags );
|
717 |
+
|
718 |
+
for ( $product_count = 0; $product_count < $product_tags_size_of; $product_count++ ) {
|
719 |
+
if ( 0 === ( $product_count % $links_per_page ) ) {
|
720 |
+
$gsg->add_sitemap( 'producttags', $step, $blog_update );
|
721 |
+
$step = ++$step;
|
722 |
+
}
|
723 |
+
}
|
724 |
+
}
|
725 |
+
}
|
726 |
+
|
727 |
+
// If Product category is enabled from sitemap settings.
|
728 |
+
if ( true === $gsg->get_option( 'in_product_cat' ) ) {
|
729 |
+
$excludes = array();
|
730 |
+
$excl_cats = $gsg->get_option( 'b_exclude_cats' ); // Excluded cats.
|
731 |
+
|
732 |
+
if ( $excl_cats ) {
|
733 |
+
$excludes = $excl_cats;
|
734 |
+
}
|
735 |
+
|
736 |
+
$product_cat = get_terms( 'product_cat', array( 'exclude' => $excludes ) );
|
737 |
+
|
738 |
+
if ( ! empty( $product_cat ) && ! is_wp_error( $product_cat ) ) {
|
739 |
+
$step = 1;
|
740 |
+
$product_cat_count = count( $product_cat );
|
741 |
+
for ( $product_count = 0; $product_count < $product_cat_count; $product_count++ ) {
|
742 |
+
if ( 0 === ( $product_count % $links_per_page ) ) {
|
743 |
+
$gsg->add_sitemap( 'productcat', $step, $blog_update );
|
744 |
+
$step = ++$step;
|
745 |
+
}
|
746 |
+
}
|
747 |
+
}
|
748 |
+
}
|
749 |
+
|
750 |
+
$pages = $gsg->get_pages();
|
751 |
+
if ( count( $pages ) > 0 ) {
|
752 |
+
foreach ( $pages as $page ) {
|
753 |
+
if ( $page instanceof GoogleSitemapGeneratorPage && $page->get_url() ) {
|
754 |
+
$gsg->add_sitemap( 'externals', null, $blog_update );
|
755 |
+
break;
|
756 |
+
}
|
757 |
+
}
|
758 |
+
}
|
759 |
+
|
760 |
+
$enabled_post_types = $gsg->get_active_post_types();
|
761 |
+
|
762 |
+
$has_enabled_post_types_posts = false;
|
763 |
+
$has_posts = false;
|
764 |
+
|
765 |
+
if ( count( $enabled_post_types ) > 0 ) {
|
766 |
+
|
767 |
+
$excluded_post_ids = $gsg->get_excluded_post_i_ds( $gsg );
|
768 |
+
$not_allowed_slugs = $gsg->robots_disallowed();
|
769 |
+
$excluded_post_ids = array_unique( array_merge( $excluded_post_ids, $not_allowed_slugs ), SORT_REGULAR );
|
770 |
+
$gsg->set_option( 'b_exclude', $excluded_post_ids );
|
771 |
+
$gsg->save_options();
|
772 |
+
$ex_post_s_q_l = '';
|
773 |
+
$excluded_post_ids_count = count( $excluded_post_ids );
|
774 |
+
if ( $excluded_post_ids_count > 0 ) {
|
775 |
+
$ex_post_s_q_l = 'AND p.ID NOT IN (' . implode( ',', $excluded_post_ids ) . ')';
|
776 |
+
}
|
777 |
+
$excluded_category_i_d_s = $gsg->get_excluded_category_i_ds( $gsg );
|
778 |
+
$ex_cat_s_q_l = '';
|
779 |
+
$excluded_category_i_d_s_count = count( $excluded_category_i_d_s );
|
780 |
+
if ( $excluded_category_i_d_s_count > 0 ) {
|
781 |
+
$ex_cat_s_q_l = "AND ( p.ID NOT IN ( SELECT object_id FROM {$wpdb->term_relationships} WHERE term_taxonomy_id IN (" . implode( ',', $excluded_category_i_d_s ) . ')))';
|
782 |
+
}
|
783 |
+
foreach ( $enabled_post_types as $post_type_custom ) {
|
784 |
+
// phpcs:disable
|
785 |
+
$prp = $wpdb->prepare(
|
786 |
+
"SELECT
|
787 |
+
YEAR(p.post_date_gmt) AS `year`,
|
788 |
+
MONTH(p.post_date_gmt) AS `month`,
|
789 |
+
COUNT(p.ID) AS `numposts`,
|
790 |
+
MAX(p.post_modified_gmt) as `last_mod`
|
791 |
+
FROM
|
792 |
+
{$wpdb->posts} p
|
793 |
+
WHERE
|
794 |
+
p.post_password = ''
|
795 |
+
AND p.post_type = '" . esc_sql( $post_type_custom ) . "'
|
796 |
+
AND p.post_status = 'publish'
|
797 |
+
" . $ex_post_s_q_l . ''
|
798 |
+
. $ex_cat_s_q_l . "
|
799 |
+
GROUP BY
|
800 |
+
YEAR(p.post_date_gmt),
|
801 |
+
MONTH(p.post_date_gmt)
|
802 |
+
ORDER BY
|
803 |
+
p.post_date_gmt DESC"
|
804 |
+
);
|
805 |
+
$posts = $wpdb->get_results($prp);
|
806 |
+
if ( $posts ) {
|
807 |
+
if ( 'post' === $post_type_custom ) {
|
808 |
+
$has_posts = true;
|
809 |
+
}
|
810 |
+
|
811 |
+
$has_enabled_post_types_posts = true;
|
812 |
+
|
813 |
+
foreach ( $posts as $post ) {
|
814 |
+
$gsg->add_sitemap( 'pt', $post_type_custom . '-' . sprintf( '%04d-%02d', $post->year, $post->month ), $gsg->get_timestamp_from_my_sql( $post->last_mod ) );
|
815 |
+
}
|
816 |
+
}
|
817 |
+
// phpcs:enable
|
818 |
+
}
|
819 |
+
}
|
820 |
+
|
821 |
+
// Only include authors if there is a public post with a enabled post type.
|
822 |
+
if ( $gsg->get_option( 'in_auth' ) && $has_enabled_post_types_posts ) {
|
823 |
+
$gsg->add_sitemap( 'authors', null, $blog_update );
|
824 |
+
}
|
825 |
+
|
826 |
+
// Only include archived if there are posts with postType post.
|
827 |
+
if ( $gsg->get_option( 'in_arch' ) && $has_posts ) {
|
828 |
+
$gsg->add_sitemap( 'archives', null, $blog_update );
|
829 |
+
}
|
830 |
+
}
|
831 |
+
|
832 |
+
/**
|
833 |
+
* Return the URL to the sitemap related to a specific post
|
834 |
+
*
|
835 |
+
* @param array $urls Post sitemap urls.
|
836 |
+
* @param GoogleSitemapGenerator $gsg Instance of google sitemap generator.
|
837 |
+
* @param int $post_id The post ID.
|
838 |
+
*
|
839 |
+
* @return string[]
|
840 |
+
*/
|
841 |
+
public function get_sitemap_url_for_post( array $urls, $gsg, $post_id ) {
|
842 |
+
$post = get_post( $post_id );
|
843 |
+
if ( $post ) {
|
844 |
+
$last_modified = $gsg->get_timestamp_from_my_sql( $post->post_modified_gmt );
|
845 |
+
|
846 |
+
$url = $gsg->get_xml_url( 'pt', $post->post_type . '-' . gmdate( 'Y-m', $last_modified ) );
|
847 |
+
$urls[] = $url;
|
848 |
+
}
|
849 |
+
|
850 |
+
return $urls;
|
851 |
+
}
|
852 |
+
}
|
853 |
+
|
854 |
+
if ( defined( 'WPINC' ) ) {
|
855 |
+
new GoogleSitemapGeneratorStandardBuilder();
|
856 |
+
}
|
class-googlesitemapgeneratorstatus.php
ADDED
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Googlesitemapgeneratorstatus class file.
|
4 |
+
*
|
5 |
+
* @author Arne Brachhold
|
6 |
+
* @package sitemap
|
7 |
+
* @since 3.0b5
|
8 |
+
*/
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Represents the status (successes and failures) of a ping process
|
12 |
+
*
|
13 |
+
* @author Arne Brachhold
|
14 |
+
* @package sitemap
|
15 |
+
* @since 3.0b5
|
16 |
+
*/
|
17 |
+
class GoogleSitemapGeneratorStatus {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Var start time of building process .
|
21 |
+
*
|
22 |
+
* @var float $_start_time The start time of the building process .
|
23 |
+
*/
|
24 |
+
private $start_time = 0;
|
25 |
+
|
26 |
+
/**
|
27 |
+
* The end time of the building process.
|
28 |
+
*
|
29 |
+
* @var float $_end_time The end time of the building process
|
30 |
+
*/
|
31 |
+
private $end_time = 0;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Holding an array with the results and information of the last ping .
|
35 |
+
*
|
36 |
+
* @var array Holding an array with the results and information of the last ping
|
37 |
+
*/
|
38 |
+
private $ping_results = array();
|
39 |
+
|
40 |
+
/**
|
41 |
+
* If the status should be saved to the database automatically .
|
42 |
+
*
|
43 |
+
* @var bool If the status should be saved to the database automatically
|
44 |
+
*/
|
45 |
+
private $auto_save = true;
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Constructs a new status ued for saving the ping results
|
49 |
+
*
|
50 |
+
* @param string $auto_save .
|
51 |
+
*/
|
52 |
+
public function __construct( $auto_save = true ) {
|
53 |
+
$this->start_time = microtime( true );
|
54 |
+
|
55 |
+
$this->auto_save = $auto_save;
|
56 |
+
|
57 |
+
if ( $auto_save ) {
|
58 |
+
|
59 |
+
$exists = get_option( 'sm_status' );
|
60 |
+
|
61 |
+
if ( false === $exists ) {
|
62 |
+
add_option( 'sm_status', '', '', 'no' );
|
63 |
+
}
|
64 |
+
$this->save();
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Saves the status back to the database
|
70 |
+
*/
|
71 |
+
public function save() {
|
72 |
+
update_option( 'sm_status', $this );
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Returns the last saved status object or null
|
77 |
+
*
|
78 |
+
* @return GoogleSitemapGeneratorStatus
|
79 |
+
*/
|
80 |
+
public static function load() {
|
81 |
+
$status = get_option( 'sm_status' );
|
82 |
+
if ( is_a( $status, 'GoogleSitemapGeneratorStatus' ) ) {
|
83 |
+
return $status;
|
84 |
+
} else {
|
85 |
+
return null;
|
86 |
+
}
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Ends the ping process
|
91 |
+
*/
|
92 |
+
public function end() {
|
93 |
+
$this->end_time = microtime( true );
|
94 |
+
if ( $this->auto_save ) {
|
95 |
+
$this->save();
|
96 |
+
}
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* Returns the duration of the ping process
|
101 |
+
*
|
102 |
+
* @return int
|
103 |
+
*/
|
104 |
+
public function get_duration() {
|
105 |
+
return round( $this->end_time - $this->start_time, 2 );
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* Returns the time when the pings were started
|
110 |
+
*
|
111 |
+
* @return int
|
112 |
+
*/
|
113 |
+
public function get_start_time() {
|
114 |
+
return round( $this->start_time, 2 );
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Start ping .
|
119 |
+
*
|
120 |
+
* @param string $service string The internal name of the ping service .
|
121 |
+
* @param string $url string The URL to ping .
|
122 |
+
* @param string $name string The display name of the service .
|
123 |
+
* @return void
|
124 |
+
*/
|
125 |
+
public function start_ping( $service, $url, $name = null ) {
|
126 |
+
$this->ping_results[ $service ] = array(
|
127 |
+
'start_time' => microtime( true ),
|
128 |
+
'end_time' => 0,
|
129 |
+
'success' => false,
|
130 |
+
'url' => $url,
|
131 |
+
'name' => $name ? $name : $service,
|
132 |
+
);
|
133 |
+
|
134 |
+
if ( $this->auto_save ) {
|
135 |
+
$this->save();
|
136 |
+
}
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
* End ping .
|
141 |
+
*
|
142 |
+
* @param string $service string The internal name of the ping service .
|
143 |
+
* @param string $success boolean If the ping was successful .
|
144 |
+
* @return void
|
145 |
+
*/
|
146 |
+
public function end_ping( $service, $success ) {
|
147 |
+
$this->ping_results[ $service ]['end_time'] = microtime( true );
|
148 |
+
$this->ping_results[ $service ]['success'] = $success;
|
149 |
+
|
150 |
+
if ( $this->auto_save ) {
|
151 |
+
$this->save();
|
152 |
+
}
|
153 |
+
}
|
154 |
+
|
155 |
+
/**
|
156 |
+
* Returns the duration of the last ping of a specific ping service
|
157 |
+
*
|
158 |
+
* @param string $service string The internal name of the ping service .
|
159 |
+
* @return float
|
160 |
+
*/
|
161 |
+
public function get_ping_duration( $service ) {
|
162 |
+
$res = $this->ping_results[ $service ];
|
163 |
+
return round( $res['end_time'] - $res['start_time'], 2 );
|
164 |
+
}
|
165 |
+
|
166 |
+
/**
|
167 |
+
* Returns the last result for a specific ping service
|
168 |
+
*
|
169 |
+
* @param string $service string The internal name of the ping service .
|
170 |
+
* @return array
|
171 |
+
*/
|
172 |
+
public function get_ping_result( $service ) {
|
173 |
+
return $this->ping_results[ $service ]['success'];
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Returns the URL for a specific ping service
|
178 |
+
*
|
179 |
+
* @param string $service string The internal name of the ping service .
|
180 |
+
* @return array
|
181 |
+
*/
|
182 |
+
public function get_ping_url( $service ) {
|
183 |
+
return $this->ping_results[ $service ]['url'];
|
184 |
+
}
|
185 |
+
|
186 |
+
/**
|
187 |
+
* Returns the name for a specific ping service
|
188 |
+
*
|
189 |
+
* @param string $service string The internal name of the ping service .
|
190 |
+
* @return array
|
191 |
+
*/
|
192 |
+
public function get_service_name( $service ) {
|
193 |
+
return $this->ping_results[ $service ]['name'];
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Returns if a service was used in the last ping
|
198 |
+
*
|
199 |
+
* @param string $service string The internal name of the ping service .
|
200 |
+
* @return bool
|
201 |
+
*/
|
202 |
+
public function used_ping_service( $service ) {
|
203 |
+
return array_key_exists( $service, $this->ping_results );
|
204 |
+
}
|
205 |
+
|
206 |
+
/**
|
207 |
+
* Returns the services which were used in the last ping
|
208 |
+
*
|
209 |
+
* @return array
|
210 |
+
*/
|
211 |
+
public function get_used_ping_services() {
|
212 |
+
return array_keys( $this->ping_results );
|
213 |
+
}
|
214 |
+
}
|
class-googlesitemapgeneratorui.php
ADDED
@@ -0,0 +1,1701 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* UI class for the sitemap.
|
4 |
+
*
|
5 |
+
* @author Arne Brachhold
|
6 |
+
* @package sitemap
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* $Id: class-googlesitemapgeneratorui.php 935247 2014-06-19 17:13:03Z arnee $
|
11 |
+
*/
|
12 |
+
class GoogleSitemapGeneratorUI {
|
13 |
+
|
14 |
+
/**
|
15 |
+
* The Sitemap Generator Object
|
16 |
+
*
|
17 |
+
* @var GoogleSitemapGenerator
|
18 |
+
*/
|
19 |
+
private $sg = null;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Constructor function.
|
23 |
+
*
|
24 |
+
* @param GoogleSitemapGenerator $sitemap_builder s .
|
25 |
+
*/
|
26 |
+
public function __construct( GoogleSitemapGenerator $sitemap_builder ) {
|
27 |
+
$this->sg = $sitemap_builder;
|
28 |
+
}
|
29 |
+
/**
|
30 |
+
* Constructor function.
|
31 |
+
*
|
32 |
+
* @param string $id s .
|
33 |
+
* @param string $title .
|
34 |
+
*/
|
35 |
+
private function html_print_box_header( $id, $title ) {
|
36 |
+
?>
|
37 |
+
<div id='<?php echo esc_attr( $id ); ?>' class='postbox'>
|
38 |
+
<h3 class='hndle'><span><?php echo esc_html( $title ); ?> </span> </h3>
|
39 |
+
<div class='inside'>
|
40 |
+
<?php
|
41 |
+
}
|
42 |
+
/**
|
43 |
+
* Constructor function.
|
44 |
+
*/
|
45 |
+
private function html_print_box_footer() {
|
46 |
+
?>
|
47 |
+
</div>
|
48 |
+
</div>
|
49 |
+
<?php
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Echos option fields for an select field containing the valid change frequencies
|
54 |
+
*
|
55 |
+
* @since 4.0
|
56 |
+
* @param string $current_val mixed The value which should be selected.
|
57 |
+
*/
|
58 |
+
public function html_get_freq_names( $current_val ) {
|
59 |
+
foreach ( $this->sg->get_freq_names() as $k => $v ) {
|
60 |
+
echo "<option value='" . esc_attr( $k ) . "' " . esc_attr( self::html_get_selected( $k, $current_val ) ) . '>' . esc_attr( $v ) . ' </option>';
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Echos option fields for an select field containing the valid priorities (0- 1.0)
|
66 |
+
*
|
67 |
+
* @since 4.0
|
68 |
+
* @param string $current_val string The value which should be selected.
|
69 |
+
* @return void
|
70 |
+
*/
|
71 |
+
public static function html_get_priority_values( $current_val ) {
|
72 |
+
$current_val = (float) $current_val;
|
73 |
+
for ( $i = 0.0; $i <= 1.0; $i += 0.1 ) {
|
74 |
+
$v = number_format( $i, 1, '.', '' );
|
75 |
+
echo "<option value='" . esc_attr( $v ) . "' " . esc_attr( self::html_get_selected( $i, $current_val ) ) . '>';
|
76 |
+
echo esc_attr( number_format_i18n( $i, 1 ) );
|
77 |
+
echo '</option>';
|
78 |
+
}
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Returns the checked attribute if the given values match
|
83 |
+
*
|
84 |
+
* @since 4.0
|
85 |
+
* @param string $val string The current value.
|
86 |
+
* @param string $equals string The value to match.
|
87 |
+
* @return string The checked attribute if the given values match, an empty string if not
|
88 |
+
*/
|
89 |
+
public static function html_get_checked( $val, $equals ) {
|
90 |
+
$is_equals = $val === $equals;
|
91 |
+
if ( $is_equals ) {
|
92 |
+
return self::html_get_attribute( 'checked' );
|
93 |
+
} else {
|
94 |
+
return '';
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Returns the selected attribute if the given values match
|
100 |
+
*
|
101 |
+
* @since 4.0
|
102 |
+
* @param string $val string The current value.
|
103 |
+
* @param string $equals string The value to match.
|
104 |
+
* @return string The selected attribute if the given values match, an empty string if not
|
105 |
+
*/
|
106 |
+
public static function html_get_selected( $val, $equals ) {
|
107 |
+
if ( is_numeric( $val ) && is_numeric( $equals ) ) {
|
108 |
+
$is_equals = ( round( $val * 10 ) === round( $equals * 10 ) );
|
109 |
+
} else {
|
110 |
+
$is_equals = $val === $equals;
|
111 |
+
}
|
112 |
+
if ( $is_equals ) {
|
113 |
+
return self::html_get_attribute( 'selected' );
|
114 |
+
} else {
|
115 |
+
return '';
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Returns an formatted attribute. If the value is NULL, the name will be used.
|
121 |
+
*
|
122 |
+
* @since 4.0
|
123 |
+
* @param string $attr string The attribute name.
|
124 |
+
* @param string $value string The attribute value.
|
125 |
+
* @return string The formatted attribute
|
126 |
+
*/
|
127 |
+
public static function html_get_attribute( $attr, $value = null ) {
|
128 |
+
if ( null === $value ) {
|
129 |
+
$value = $attr;
|
130 |
+
}
|
131 |
+
return ' ' . $attr . '=' . esc_attr( $value ) . ' ';
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Returns an array with GoogleSitemapGeneratorPage objects which is generated from POST values
|
136 |
+
*
|
137 |
+
* @since 4.0
|
138 |
+
* @see GoogleSitemapGeneratorPage
|
139 |
+
* @return array An array with GoogleSitemapGeneratorPage objects
|
140 |
+
*/
|
141 |
+
public function html_apply_pages() {
|
142 |
+
//phpcs:disable
|
143 |
+
// $pages_ur = ( ( ! isset( $_POST['sm_pages_ur'] ) ) ) && ( ! isset( $_POST['sm_pages_ur'] ) || ! is_array( $_POST['sm_pages_ur'] ) ? array() : esc_url_raw( wp_unslash( $_POST['sm_pages_ur'] ) ) );
|
144 |
+
// Array with all priorities.
|
145 |
+
$pages_ur = array();
|
146 |
+
$pages_pr = array();
|
147 |
+
$pages_cf = array();
|
148 |
+
$pages_lm = array();
|
149 |
+
$pages_ur = ( ! isset( $_POST['sm_pages_ur'] ) || ! is_array( $_POST['sm_pages_ur'] ) ) ? array() : array_map( 'sanitize_text_field', wp_unslash( $_POST['sm_pages_ur'] ) );
|
150 |
+
// if ( isset( $_POST['sm_pages_pr'] ) && wp_verify_nonce( array_map( 'sanitize_text_field', ( wp_unslash( $_POST['sm_pages_pr'] ) ) ) ) ) {
|
151 |
+
$pages_pr = ( ! isset( $_POST['sm_pages_pr'] ) || ! is_array( $_POST['sm_pages_pr'] ) ? array() : array_map( 'sanitize_text_field', wp_unslash( $_POST['sm_pages_pr'] ) ) );
|
152 |
+
// }
|
153 |
+
// if ( isset( $_POST['sm_pages_cf'] ) && wp_verify_nonce( array_map( 'sanitize_text_field', ( wp_unslash( $_POST['sm_pages_cf'] ) ) ) ) ) {
|
154 |
+
$pages_cf = ( ! isset( $_POST['sm_pages_cf'] ) || ! is_array( $_POST['sm_pages_cf'] ) ? array() : array_map( 'sanitize_text_field', wp_unslash( $_POST['sm_pages_cf'] ) ) );
|
155 |
+
// }
|
156 |
+
// if ( isset( $_POST['sm_pages_lm'] ) && wp_verify_nonce( array_map( 'sanitize_text_field', ( wp_unslash( $_POST['sm_pages_lm'] ) ) ) ) ) {
|
157 |
+
$pages_lm = ( ! isset( $_POST['sm_pages_lm'] ) || ! is_array( $_POST['sm_pages_lm'] ) ? array() : array_map( 'sanitize_text_field', wp_unslash( $_POST['sm_pages_lm'] ) ) );
|
158 |
+
// }
|
159 |
+
// Array where the new pages are stored.
|
160 |
+
$pages = array();
|
161 |
+
// Loop through all defined pages and set their properties into an object.
|
162 |
+
if ( isset( $_POST['sm_pages_mark'] ) && is_array( $_POST['sm_pages_mark'] ) ) {
|
163 |
+
$len = count( $_POST['sm_pages_mark'] );
|
164 |
+
// phpcs:enable
|
165 |
+
for ( $i = 0; $i < $len; $i++ ) {
|
166 |
+
// Create new object.
|
167 |
+
$p = new GoogleSitemapGeneratorPage();
|
168 |
+
if ( substr( $pages_ur[ $i ], 0, 4 ) === 'www.' ) {
|
169 |
+
$pages_ur[ $i ] = 'http://' . $pages_ur[ $i ];
|
170 |
+
}
|
171 |
+
$p->set_url( $pages_ur[ $i ] );
|
172 |
+
$p->set_priority( $pages_pr[ $i ] );
|
173 |
+
$p->set_change_freq( $pages_cf[ $i ] );
|
174 |
+
// Try to parse last modified, if -1 (note ===) automatic will be used (0).
|
175 |
+
$lm = ( ! empty( $pages_lm[ $i ] ) ? strtotime( $pages_lm[ $i ], time() ) : -1 );
|
176 |
+
if ( -1 === $lm ) {
|
177 |
+
$p->set_last_mod( 0 );
|
178 |
+
} else {
|
179 |
+
$p->set_last_mod( $lm );
|
180 |
+
}
|
181 |
+
// Add it to the array.
|
182 |
+
array_push( $pages, $p );
|
183 |
+
}
|
184 |
+
}
|
185 |
+
return $pages;
|
186 |
+
}
|
187 |
+
/**
|
188 |
+
* Escape.
|
189 |
+
*
|
190 |
+
* @param string $v String.
|
191 |
+
*/
|
192 |
+
public static function escape( $v ) {
|
193 |
+
// prevent html tags in strings where they are not required.
|
194 |
+
return strtr( $v, '<>', '..' );
|
195 |
+
}
|
196 |
+
/**
|
197 |
+
* Array_map_r.
|
198 |
+
*
|
199 |
+
* @param array $func .
|
200 |
+
* @param array $arr .
|
201 |
+
*/
|
202 |
+
public static function array_map_r( $func, $arr ) {
|
203 |
+
$new_arr = array();
|
204 |
+
foreach ( $arr as $key => $value ) {
|
205 |
+
$new_arr[ $key ] = ( is_array( $value ) ? self::array_map_r( $func, $value ) : ( is_array( $func ) ? call_user_func_array( $func, $value ) : $func( $value ) ) );
|
206 |
+
}
|
207 |
+
foreach ( $new_arr as $k => $v ) {
|
208 |
+
echo esc_html( ' [ ' . $k . ' ] => ' . $v );
|
209 |
+
echo '<br />';
|
210 |
+
}
|
211 |
+
}
|
212 |
+
|
213 |
+
/**
|
214 |
+
* Displays the option page
|
215 |
+
*
|
216 |
+
* @since 3.0
|
217 |
+
* @access public
|
218 |
+
* @author Arne Brachhold
|
219 |
+
*/
|
220 |
+
public function html_show_options_page() {
|
221 |
+
global $wp_version;
|
222 |
+
$snl = false; // SNL.
|
223 |
+
|
224 |
+
$this->sg->initate();
|
225 |
+
|
226 |
+
$message = '';
|
227 |
+
|
228 |
+
if ( ! empty( $_REQUEST['sm_rebuild'] ) ) {
|
229 |
+
// Pressed Button: Rebuild Sitemap.
|
230 |
+
check_admin_referer( 'sitemap' );
|
231 |
+
|
232 |
+
if ( isset( $_GET['sm_do_debug'] ) && 'true' === $_GET['sm_do_debug'] ) {
|
233 |
+
|
234 |
+
// Check again, just for the case that something went wrong before.
|
235 |
+
if ( ! current_user_can( 'administrator' ) || ! is_super_admin() ) {
|
236 |
+
echo '<p>Please log in as admin</p>';
|
237 |
+
return;
|
238 |
+
}
|
239 |
+
|
240 |
+
echo "<div class='wrap'>";
|
241 |
+
echo '<h2>' . esc_html( __( 'XML Sitemap Generator for WordPress', 'sitemap' ) ) . ' ' . esc_html( $this->sg->get_version() ) . '</h2>';
|
242 |
+
echo '<p>This is the debug mode of the XML Sitemap Generator. It will show all PHP notices and warnings as well as the internal logs, messages and configuration.</p>';
|
243 |
+
echo "<p style='font-weight:bold; color:red; padding:5px; border:1px red solid; text-align:center;'>DO NOT POST THIS INFORMATION ON PUBLIC PAGES LIKE SUPPORT FORUMS AS IT MAY CONTAIN PASSWORDS OR SECRET SERVER INFORMATION!</p>";
|
244 |
+
echo '<h3>WordPress and PHP Information</h3>';
|
245 |
+
echo '<p>WordPress ' . esc_html( $GLOBALS['wp_version'] ) . ' with DB ' . esc_html( $GLOBALS['wp_db_version'] ) . ' on PHP ' . esc_html( phpversion() ) . '</p>';
|
246 |
+
echo '<p>Plugin version: ' . esc_html( $this->sg->get_version() ) . ' (' . esc_html( $this->sg->get_svn_version() ) . ')';
|
247 |
+
echo '<h4>Environment</h4>';
|
248 |
+
echo '<pre>';
|
249 |
+
$sc = $_SERVER;
|
250 |
+
$this->sg->get_svn_version();
|
251 |
+
unset( $sc['HTTP_COOKIE'] );
|
252 |
+
foreach ( $sc as $key => $value ) {
|
253 |
+
echo esc_html( ' [ ' . $key . ' ] => ' . $value );
|
254 |
+
echo '<br />';
|
255 |
+
}
|
256 |
+
echo '</pre>';
|
257 |
+
echo '<h4>WordPress Config</h4>';
|
258 |
+
echo '<pre>';
|
259 |
+
$opts = array();
|
260 |
+
if ( function_exists( 'wp_load_alloptions' ) ) {
|
261 |
+
$opts = wp_load_alloptions();
|
262 |
+
} else {
|
263 |
+
// @var $wpdb wpdb .
|
264 |
+
global $wpdb;
|
265 |
+
$os = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options" ); // db call ok; no-cache ok.
|
266 |
+
foreach ( (array) $os as $o ) {
|
267 |
+
$opts[ $o->option_name ] = $o->option_value;
|
268 |
+
}
|
269 |
+
}
|
270 |
+
|
271 |
+
$popts = array();
|
272 |
+
foreach ( $opts as $k => $v ) {
|
273 |
+
// Try to filter out passwords etc...
|
274 |
+
if ( preg_match( '/pass|login|pw|secret|user|usr|key|auth|token/si', $k ) ) {
|
275 |
+
continue;
|
276 |
+
}
|
277 |
+
$popts[ $k ] = htmlspecialchars( $v );
|
278 |
+
}
|
279 |
+
foreach ( $popts as $key => $value ) {
|
280 |
+
echo esc_html( ' [ ' . $key . ' ] => ' . $value );
|
281 |
+
echo '<br />';
|
282 |
+
}
|
283 |
+
echo '</pre>';
|
284 |
+
echo '<h4>Sitemap Config</h4>';
|
285 |
+
echo '<pre>';
|
286 |
+
self::array_map_r( 'strip_tags', $this->sg->get_options() );
|
287 |
+
echo '</pre>';
|
288 |
+
echo '<h3>Sitemap Content and Errors, Warnings, Notices</h3>';
|
289 |
+
echo '<div>';
|
290 |
+
|
291 |
+
$sitemaps = $this->sg->simulate_index();
|
292 |
+
|
293 |
+
foreach ( $sitemaps as $sitemap ) {
|
294 |
+
|
295 |
+
// @var $s GoogleSitemapGeneratorSitemapEntry .
|
296 |
+
$s = $sitemap['data'];
|
297 |
+
echo '<h4>Sitemap: <a href=\'' . esc_url( $s->get_url() ) . '\'>' . esc_html( $sitemap['type'] ) . '/' . ( esc_html( $sitemap['params'] ) ? esc_html( $sitemap['params'] ) : '(No parameters)' ) . '</a> by ' . esc_html( $sitemap['caller']['class'] ) . '</h4>';
|
298 |
+
|
299 |
+
$res = $this->sg->simulate_sitemap( $sitemap['type'], $sitemap['params'] );
|
300 |
+
|
301 |
+
echo "<ul style='padding-left:10px;'>";
|
302 |
+
foreach ( $res as $s ) {
|
303 |
+
// @var $d GoogleSitemapGeneratorSitemapEntry .
|
304 |
+
$d = $s['data'];
|
305 |
+
echo '<li>' . esc_html( $d->get_url() ) . '</li>';
|
306 |
+
}
|
307 |
+
echo '</ul>';
|
308 |
+
}
|
309 |
+
|
310 |
+
$status = GoogleSitemapGeneratorStatus::load();
|
311 |
+
echo '</div>';
|
312 |
+
echo '<h3>MySQL Queries</h3>';
|
313 |
+
if ( defined( 'SAVEQUERIES' ) && SAVEQUERIES ) {
|
314 |
+
echo '<pre>';
|
315 |
+
// phpcs:disable.
|
316 |
+
var_dump( $GLOBALS['wpdb']->queries );
|
317 |
+
// phpcs:enable
|
318 |
+
echo '</pre>';
|
319 |
+
|
320 |
+
$total = 0;
|
321 |
+
foreach ( $GLOBALS['wpdb']->queries as $q ) {
|
322 |
+
$total += $q[1];
|
323 |
+
}
|
324 |
+
echo '<h4>Total Query Time</h4>';
|
325 |
+
echo '<pre>' . count( $GLOBALS['wpdb']->queries ) . ' queries in ' . esc_html( round( $total, 2 ) ) . ' seconds.</pre>';
|
326 |
+
} else {
|
327 |
+
echo '<p>Please edit wp-db.inc.php in wp-includes and set SAVEQUERIES to true if you want to see the queries.</p>';
|
328 |
+
}
|
329 |
+
echo '<h3>Build Process Results</h3>';
|
330 |
+
echo '<pre>';
|
331 |
+
echo '</pre>';
|
332 |
+
echo "<p>Done. <a href='" . esc_url( wp_nonce_url( $this->sg->get_back_link() ) . '&sm_rebuild=true&sm_do_debug=true', 'sitemap' ) . "'>Rebuild</a> or <a href='" . esc_url( $this->sg->get_back_link() ) . "'>Return</a></p>";
|
333 |
+
echo "<p style='font-weight:bold; color:red; padding:5px; border:1px red solid; text-align:center;'>DO NOT POST THIS INFORMATION ON PUBLIC PAGES LIKE SUPPORT FORUMS AS IT MAY CONTAIN PASSWORDS OR SECRET SERVER INFORMATION!</p>";
|
334 |
+
echo '</div>';
|
335 |
+
return;
|
336 |
+
} else {
|
337 |
+
|
338 |
+
$redir_url = $this->sg->get_back_link() . '&sm_fromrb=true';
|
339 |
+
|
340 |
+
// Redirect so the sm_rebuild GET parameter no longer exists.
|
341 |
+
header( 'location: ' . $redir_url );
|
342 |
+
// If there was already any other output, the header redirect will fail.
|
343 |
+
echo "<script type='text/javascript'>location.replace('" . esc_js( $redir_url ) . "');</script>";
|
344 |
+
echo "<noscript><a href='" . esc_url( $redir_url ) . "'>Click here to continue</a></noscript>";
|
345 |
+
exit;
|
346 |
+
}
|
347 |
+
} elseif ( ! empty( $_POST['sm_update'] ) ) { // Pressed Button: Update Config.
|
348 |
+
check_admin_referer( 'sitemap' );
|
349 |
+
|
350 |
+
if ( isset( $_POST['sm_b_style'] ) && $_POST['sm_b_style'] === $this->sg->get_default_style() ) {
|
351 |
+
$_POST['sm_b_style_default'] = true;
|
352 |
+
$_POST['sm_b_style'] = '';
|
353 |
+
}
|
354 |
+
|
355 |
+
foreach ( $this->sg->get_options() as $k => $v ) {
|
356 |
+
// Skip some options if the user is not super admin...
|
357 |
+
if ( ! is_super_admin() && in_array( $k, array( 'sm_b_time', 'sm_b_memory', 'sm_b_style', 'sm_b_style_default' ), true ) ) {
|
358 |
+
continue;
|
359 |
+
}
|
360 |
+
|
361 |
+
// Check vor values and convert them into their types, based on the category they are in.
|
362 |
+
if ( ! isset( $_POST[ $k ] ) ) {
|
363 |
+
$_POST[ $k ] = '';
|
364 |
+
} // Empty string will get false on 2bool and 0 on 2float
|
365 |
+
// Options of the category 'Basic Settings' are boolean, except the filename and the autoprio provider.
|
366 |
+
if ( substr( $k, 0, 5 ) === 'sm_b_' ) {
|
367 |
+
if ( 'sm_b_prio_provider' === $k || 'sm_b_style' === $k || 'sm_b_memory' === $k || 'sm_b_baseurl' === $k || 'sm_b_sitemap_name' === $k ) {
|
368 |
+
if ( 'sm_b_filename_manual' === $k && strpos( sanitize_text_field( wp_unslash( $_POST[ $k ] ) ), '\\' ) !== false ) {
|
369 |
+
$_POST[ $k ] = stripslashes( self::escape( sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) ) );
|
370 |
+
} elseif ( 'sm_b_baseurl' === $k ) {
|
371 |
+
$_POST[ $k ] = esc_url_raw( trim( self::escape( sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) ) ) );
|
372 |
+
if ( ! empty( $_POST[ $k ] ) ) {
|
373 |
+
$_POST[ $k ] = untrailingslashit( sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) );
|
374 |
+
}
|
375 |
+
} elseif ( 'sm_b_style' === $k ) {
|
376 |
+
$_POST[ $k ] = esc_url_raw( trim( self::escape( sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) ) ) );
|
377 |
+
if ( ! empty( $_POST[ $k ] ) ) {
|
378 |
+
$_POST[ $k ] = untrailingslashit( sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) );
|
379 |
+
}
|
380 |
+
} elseif ( 'sm_b_sitemap_name' === $k ) {
|
381 |
+
if ( '' === $_POST[ $k ] ) {
|
382 |
+
$_POST[ $k ] = 'sitemap';
|
383 |
+
} else {
|
384 |
+
$_POST[ $k ] = trim( self::escape( sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) ) );
|
385 |
+
if ( $this->sg->old_file_exists() ) {
|
386 |
+
$this->sg->delete_old_files();
|
387 |
+
}
|
388 |
+
}
|
389 |
+
}
|
390 |
+
$this->sg->set_option( $k, (string) sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) );
|
391 |
+
} elseif ( 'sm_b_time' === $k ) {
|
392 |
+
if ( '' === $_POST[ $k ] ) {
|
393 |
+
$_POST[ $k ] = -1;
|
394 |
+
}
|
395 |
+
$this->sg->set_option( $k, intval( $_POST[ $k ] ) );
|
396 |
+
} elseif ( 'sm_i_install_date' === $k ) {
|
397 |
+
if ( $this->sg->get_option( 'i_install_date' ) <= 0 ) {
|
398 |
+
$this->sg->set_option( $k, time() );
|
399 |
+
}
|
400 |
+
} elseif ( 'sm_b_exclude' === $k ) {
|
401 |
+
$id_ss = array();
|
402 |
+
$id_s = explode( ',', sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) );
|
403 |
+
$len = count( $id_s );
|
404 |
+
for ( $x = 0; $x < $len; $x++ ) {
|
405 |
+
$id = intval( trim( $id_s[ $x ] ) );
|
406 |
+
if ( $id > 0 ) {
|
407 |
+
$id_ss[] = $id;
|
408 |
+
}
|
409 |
+
}
|
410 |
+
$this->sg->set_option( $k, $id_ss );
|
411 |
+
} elseif ( 'sm_b_exclude_cats' === $k ) {
|
412 |
+
$ex_cats = array();
|
413 |
+
if ( isset( $_POST['post_category'] ) ) {
|
414 |
+
foreach ( (array) array_map( 'sanitize_text_field', ( wp_unslash( $_POST['post_category'] ) ) ) as $vv ) {
|
415 |
+
if ( ! empty( $vv ) && is_numeric( $vv ) ) {
|
416 |
+
$ex_cats[] = intval( $vv );
|
417 |
+
}
|
418 |
+
}
|
419 |
+
}
|
420 |
+
if ( isset( $_POST['tax_input'] ) && isset( $_POST['tax_input']['product_cat'] ) ) {
|
421 |
+
$prod_cat = array_map( 'sanitize_text_field', ( wp_unslash( $_POST['tax_input']['product_cat'] ) ) );
|
422 |
+
foreach ( (array) $prod_cat as $vv ) {
|
423 |
+
if ( ! empty( $vv ) && is_numeric( $vv ) ) {
|
424 |
+
$ex_cats[] = intval( $vv );
|
425 |
+
}
|
426 |
+
}
|
427 |
+
}
|
428 |
+
$taxonomies = $this->sg->get_custom_taxonomies();
|
429 |
+
foreach ( $taxonomies as $key => $taxonomy ) {
|
430 |
+
if ( isset( $_POST['tax_input'] ) && isset( $_POST['tax_input'][ $taxonomy ] ) ) {
|
431 |
+
$custom_cat = array_map( 'sanitize_text_field', ( wp_unslash( $_POST['tax_input'][ $taxonomy ] ) ) );
|
432 |
+
foreach ( (array) $custom_cat as $vv ) {
|
433 |
+
if ( ! empty( $vv ) && is_numeric( $vv ) ) {
|
434 |
+
$ex_cats[] = intval( $vv );
|
435 |
+
}
|
436 |
+
}
|
437 |
+
}
|
438 |
+
}
|
439 |
+
$this->sg->set_option( $k, $ex_cats );
|
440 |
+
} else {
|
441 |
+
$this->sg->set_option( $k, (bool) $_POST[ $k ] );
|
442 |
+
}
|
443 |
+
// Options of the category 'Includes' are boolean.
|
444 |
+
} elseif ( 'sm_i_tid' === $k ) {
|
445 |
+
// $_POST[ $k ] = trim( self::escape( sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) ) );
|
446 |
+
$this->sg->set_option( $k, trim( self::escape( sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) ) ) );
|
447 |
+
} elseif ( substr( $k, 0, 6 ) === 'sm_in_' ) {
|
448 |
+
if ( 'sm_in_tax' === $k ) {
|
449 |
+
|
450 |
+
$enabled_taxonomies = array();
|
451 |
+
|
452 |
+
foreach ( array_keys( (array) array_map( 'sanitize_text_field', ( wp_unslash( $_POST[ $k ] ) ) ) ) as $tax_name ) {
|
453 |
+
if ( empty( $tax_name ) || ! taxonomy_exists( $tax_name ) ) {
|
454 |
+
continue;
|
455 |
+
}
|
456 |
+
|
457 |
+
$enabled_taxonomies[] = self::escape( $tax_name );
|
458 |
+
}
|
459 |
+
|
460 |
+
$this->sg->set_option( $k, $enabled_taxonomies );
|
461 |
+
} elseif ( 'sm_in_customtypes' === $k ) {
|
462 |
+
|
463 |
+
$enabled_post_types = array();
|
464 |
+
|
465 |
+
foreach ( array_keys( (array) array_map( 'sanitize_text_field', wp_unslash( $_POST[ $k ] ) ) ) as $post_type_name ) {
|
466 |
+
if ( empty( $post_type_name ) || ! post_type_exists( $post_type_name ) ) {
|
467 |
+
continue;
|
468 |
+
}
|
469 |
+
|
470 |
+
$enabled_post_types[] = self::escape( $post_type_name );
|
471 |
+
}
|
472 |
+
|
473 |
+
$this->sg->set_option( $k, $enabled_post_types );
|
474 |
+
} else {
|
475 |
+
$this->sg->set_option( $k, (bool) $_POST[ $k ] );
|
476 |
+
}
|
477 |
+
// Options of the category 'Change frequencies' are string.
|
478 |
+
} elseif ( substr( $k, 0, 6 ) === 'sm_cf_' ) {
|
479 |
+
$this->sg->set_option( $k, (string) self::escape( sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) ) );
|
480 |
+
// Options of the category 'Priorities' are float.
|
481 |
+
} elseif ( substr( $k, 0, 6 ) === 'sm_pr_' ) {
|
482 |
+
$this->sg->set_option( $k, (float) sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) );
|
483 |
+
} elseif ( 'sm_links_page' === $k ) {
|
484 |
+
$this->sg->set_option( $k, (float) sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) );
|
485 |
+
} elseif ( substr( $k, 0, 3 ) === 'sm_' ) {
|
486 |
+
$this->sg->set_option( $k, (bool) sanitize_text_field( wp_unslash( $_POST[ $k ] ) ) );
|
487 |
+
}
|
488 |
+
}
|
489 |
+
|
490 |
+
// Apply page changes from POST.
|
491 |
+
if ( is_super_admin() ) {
|
492 |
+
$this->sg->set_pages( $this->html_apply_pages() );
|
493 |
+
}
|
494 |
+
|
495 |
+
if ( $this->sg->save_options() ) {
|
496 |
+
$message .= __( 'Configuration updated', 'sitemap' ) . '<br />';
|
497 |
+
} else {
|
498 |
+
$message .= __( 'Error while saving options', 'sitemap' ) . '<br />';
|
499 |
+
}
|
500 |
+
|
501 |
+
if ( is_super_admin() ) {
|
502 |
+
if ( $this->sg->save_pages() ) {
|
503 |
+
$message .= __( 'Pages saved', 'sitemap' ) . '<br />';
|
504 |
+
} else {
|
505 |
+
$message .= __( 'Error while saving pages', 'sitemap' ) . '<br />';
|
506 |
+
}
|
507 |
+
}
|
508 |
+
} elseif ( ! empty( $_POST['sm_reset_config'] ) ) { // Pressed Button: Reset Config.
|
509 |
+
check_admin_referer( 'sitemap' );
|
510 |
+
$this->sg->init_options();
|
511 |
+
$this->sg->save_options();
|
512 |
+
|
513 |
+
$message .= __( 'The default configuration was restored.', 'sitemap' );
|
514 |
+
} elseif ( ! empty( $_GET['sm_delete_old'] ) ) { // Delete old sitemap files.
|
515 |
+
check_admin_referer( 'sitemap' );
|
516 |
+
|
517 |
+
// Check again, just for the case that something went wrong before.
|
518 |
+
if ( ! current_user_can( 'administrator' ) ) {
|
519 |
+
echo '<p>Please log in as admin</p>';
|
520 |
+
return;
|
521 |
+
}
|
522 |
+
if ( ! $this->sg->delete_old_files() ) {
|
523 |
+
$message = __( 'The old files could NOT be deleted. Please use an FTP program and delete them by yourself.', 'sitemap' );
|
524 |
+
} else {
|
525 |
+
$message = __( 'The old files were successfully deleted.', 'sitemap' );
|
526 |
+
}
|
527 |
+
} elseif ( ! empty( $_GET['sm_ping_all'] ) ) {
|
528 |
+
check_admin_referer( 'sitemap' );
|
529 |
+
|
530 |
+
// Check again, just for the case that something went wrong before.
|
531 |
+
if ( ! current_user_can( 'administrator' ) ) {
|
532 |
+
echo '<p>Please log in as admin</p>';
|
533 |
+
return;
|
534 |
+
}
|
535 |
+
|
536 |
+
?>
|
537 |
+
<html>
|
538 |
+
|
539 |
+
<head>
|
540 |
+
<style type='text/css'>
|
541 |
+
html {
|
542 |
+
background: #f1f1f1;
|
543 |
+
}
|
544 |
+
|
545 |
+
body {
|
546 |
+
color: #444;
|
547 |
+
font-family: 'Open Sans', sans-serif;
|
548 |
+
font-size: 13px;
|
549 |
+
line-height: 1.4em;
|
550 |
+
min-width: 600px;
|
551 |
+
}
|
552 |
+
|
553 |
+
h2 {
|
554 |
+
font-size: 23px;
|
555 |
+
font-weight: 400;
|
556 |
+
padding: 9px 10px 4px 0;
|
557 |
+
line-height: 29px;
|
558 |
+
}
|
559 |
+
</style>
|
560 |
+
</head>
|
561 |
+
|
562 |
+
<body>
|
563 |
+
<?php
|
564 |
+
echo '<h2>' . esc_html( __( 'Notify Search Engines about all sitemaps', 'sitemap' ) ) . '</h2>';
|
565 |
+
echo '<p>' . esc_html( __( 'The plugin is notifying the selected search engines about your main sitemap and all sub-sitemaps. This might take a minute or two.', 'sitemaps' ) ) . '</p>';
|
566 |
+
flush();
|
567 |
+
$results = $this->sg->send_ping_all();
|
568 |
+
|
569 |
+
echo '<ul>';
|
570 |
+
|
571 |
+
foreach ( $results as $result ) {
|
572 |
+
|
573 |
+
$sitemap_url = $result['sitemap'];
|
574 |
+
// @var $status GoogleSitemapGeneratorStatus .
|
575 |
+
$status = $result['status'];
|
576 |
+
|
577 |
+
echo esc_html( '<li><a href=\'' . esc_url( $sitemap_url ) . '\'>' . $sitemap_url . '</a><ul>' );
|
578 |
+
$services = $status->get_used_ping_services();
|
579 |
+
foreach ( $services as $service_id ) {
|
580 |
+
echo '<li>';
|
581 |
+
echo esc_html( $status->get_service_name( $service_id ) . ': ' . ( $status->get_ping_result( $service_id ) === true ? 'OK' : 'ERROR' ) );
|
582 |
+
echo '</li>';
|
583 |
+
}
|
584 |
+
echo '</ul></li>';
|
585 |
+
}
|
586 |
+
echo '</ul>';
|
587 |
+
echo '<p>' . esc_html( __( 'All done!', 'sitemap' ) ) . '</p>';
|
588 |
+
?>
|
589 |
+
|
590 |
+
</body>
|
591 |
+
<?php
|
592 |
+
exit;
|
593 |
+
} elseif ( ! empty( $_GET['sm_ping_main'] ) ) {
|
594 |
+
|
595 |
+
check_admin_referer( 'sitemap' );
|
596 |
+
|
597 |
+
// Check again, just for the case that something went wrong before.
|
598 |
+
if ( ! current_user_can( 'administrator' ) ) {
|
599 |
+
echo '<p>Please log in as admin</p>';
|
600 |
+
return;
|
601 |
+
}
|
602 |
+
|
603 |
+
$this->sg->send_ping();
|
604 |
+
$message = __( 'Ping was executed, please see below for the result.', 'sitemap' );
|
605 |
+
}
|
606 |
+
|
607 |
+
// Print out the message to the user, if any.
|
608 |
+
if ( '' !== $message ) {
|
609 |
+
?>
|
610 |
+
<div class='updated'>
|
611 |
+
<p><strong>
|
612 |
+
<?php
|
613 |
+
$arr = array(
|
614 |
+
'br' => array(),
|
615 |
+
'p' => array(),
|
616 |
+
'strong' => array(),
|
617 |
+
);
|
618 |
+
echo wp_kses( $message, $arr );
|
619 |
+
?>
|
620 |
+
</strong></p>
|
621 |
+
</div>
|
622 |
+
<?php
|
623 |
+
}
|
624 |
+
|
625 |
+
if ( ! $snl ) {
|
626 |
+
|
627 |
+
if ( isset( $_GET['sm_hidedonate'] ) ) {
|
628 |
+
$this->sg->set_option( 'i_hide_donated', true );
|
629 |
+
$this->sg->save_options();
|
630 |
+
}
|
631 |
+
if ( isset( $_GET['sm_donated'] ) ) {
|
632 |
+
$this->sg->set_option( 'i_donated', true );
|
633 |
+
$this->sg->save_options();
|
634 |
+
}
|
635 |
+
if ( isset( $_GET['sm_hide_note'] ) ) {
|
636 |
+
$this->sg->set_option( 'i_hide_note', true );
|
637 |
+
$this->sg->save_options();
|
638 |
+
}
|
639 |
+
if ( isset( $_GET['sm_hide_survey'] ) ) {
|
640 |
+
$this->sg->set_option( 'i_hide_survey', true );
|
641 |
+
$this->sg->save_options();
|
642 |
+
}
|
643 |
+
if ( isset( $_GET['sm_hidedonors'] ) ) {
|
644 |
+
$this->sg->set_option( 'i_hide_donors', true );
|
645 |
+
$this->sg->save_options();
|
646 |
+
}
|
647 |
+
if ( isset( $_GET['sm_hide_works'] ) ) {
|
648 |
+
$this->sg->set_option( 'i_hide_works', true );
|
649 |
+
$this->sg->save_options();
|
650 |
+
}
|
651 |
+
if ( isset( $_GET['sm_disable_supportfeed'] ) ) {
|
652 |
+
$this->sg->set_option( 'i_supportfeed', 'true' === $_GET['sm_disable_supportfeed'] ? false : true );
|
653 |
+
$this->sg->save_options();
|
654 |
+
}
|
655 |
+
|
656 |
+
if ( isset( $_GET['sm_donated'] ) || ( $this->sg->get_option( 'i_donated' ) === true && $this->sg->get_option( 'i_hide_donated' ) !== true ) ) {
|
657 |
+
?>
|
658 |
+
<!--
|
659 |
+
<div class='updated'>
|
660 |
+
<strong><p><?php esc_html_e( 'Thank you very much for your donation. You help me to continue support and development of this plugin and other free software!', 'sitemap' ); ?> <a href='<?php echo esc_url( $this->sg->get_back_link() ) . '&sm_hidedonate=true'; ?>'><small style='font-weight:normal;'><?php esc_html_e( 'Hide this notice', 'sitemap' ); ?></small></a></p></strong>
|
661 |
+
</div>
|
662 |
+
-->
|
663 |
+
<?php
|
664 |
+
} elseif ( $this->sg->get_option( 'i_donated' ) !== true && $this->sg->get_option( 'i_install_date' ) > 0 && $this->sg->get_option( 'i_hide_note' ) !== true && time() > ( $this->sg->get_option( 'i_install_date' ) + ( 60 * 60 * 24 * 30 ) ) ) {
|
665 |
+
?>
|
666 |
+
<!--
|
667 |
+
<div class="updated">
|
668 |
+
<strong><p><?php echo esc_html( str_replace( '%s', $this->sg->get_redirect_link( 'redir/sitemap-donate-note' ), __( 'Thanks for using this plugin! You\'ve installed this plugin over a month ago. If it works and you are satisfied with the results, isn\'t it worth at least a few dollar? <a href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-donate-note">Donations</a> help me to continue support and development of this <i>free</i> software! <a href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-donate-note">Sure, no problem!</a>', 'sitemap' ) ) ); ?> <a href="<?php echo esc_url( $this->sg->get_back_link() ) . '&sm_donated=true'; ?>" style="float:right; display:block; border:none; margin-left:10px;"><small style="font-weight:normal; "><?php esc_html_e( 'Sure, but I already did!', 'sitemap' ); ?></small></a> <a href="<?php echo esc_url( $this->sg->get_back_link() ) . '&sm_hide_note=true'; ?>" style="float:right; display:block; border:none;"><small style="font-weight:normal; "><?php esc_html_e( 'No thanks, please don\'t bug me anymore!', 'sitemap' ); ?></small></a></p></strong>
|
669 |
+
<div style="clear:right;"></div>
|
670 |
+
</div>
|
671 |
+
-->
|
672 |
+
<?php
|
673 |
+
} elseif ( $this->sg->get_option( 'i_install_date' ) > 0 && $this->sg->get_option( 'i_hide_works' ) !== true && time() > ( $this->sg->get_option( 'i_install_date' ) + ( 60 * 60 * 24 * 15 ) ) ) {
|
674 |
+
?>
|
675 |
+
<div class='updated'>
|
676 |
+
<strong>
|
677 |
+
<?php /* translators: %s: search term */ ?>
|
678 |
+
<p><?php echo esc_html( str_replace( '%s', esc_html( $this->sg->get_redirect_link( 'redir/sitemap-works-note' ) ), esc_html( 'Thanks for using this plugin! You\'ve installed this plugin some time ago. If it works and your are satisfied, why not ' . esc_html( '<a href=\'%s\'>rate it</a>' ) . ' and <a href=\'%s\'>recommend it</a> to others? :-)' ) ) ); ?> <a href='<?php esc_url( $this->sg->get_back_link() ) . '&sm_hide_works=true'; ?>' style='float:right; display:block; border:none;'><small style='font-weight:normal; '><?php esc_html_e( 'Don\'t show this me anymore', 'sitemap' ); ?></small></a></p>
|
679 |
+
</strong>
|
680 |
+
<div style='clear:right;'></div>
|
681 |
+
</div>
|
682 |
+
<?php
|
683 |
+
}
|
684 |
+
|
685 |
+
if ( $this->sg->show_survey() ) {
|
686 |
+
$this->sg->html_survey();
|
687 |
+
}
|
688 |
+
}
|
689 |
+
|
690 |
+
?>
|
691 |
+
|
692 |
+
<style type='text/css'>
|
693 |
+
li.sm_hint {
|
694 |
+
color: green;
|
695 |
+
}
|
696 |
+
|
697 |
+
li.sm_optimize {
|
698 |
+
color: orange;
|
699 |
+
}
|
700 |
+
|
701 |
+
li.sm_error {
|
702 |
+
color: red;
|
703 |
+
}
|
704 |
+
|
705 |
+
input.sm_warning:hover {
|
706 |
+
background: #ce0000;
|
707 |
+
color: #fff;
|
708 |
+
}
|
709 |
+
|
710 |
+
a.sm_button {
|
711 |
+
padding: 4px;
|
712 |
+
display: block;
|
713 |
+
background-repeat: no-repeat;
|
714 |
+
background-position: 5px 50%;
|
715 |
+
text-decoration: none;
|
716 |
+
border: none;
|
717 |
+
}
|
718 |
+
|
719 |
+
a.sm_button:hover {
|
720 |
+
border-bottom-width: 1px;
|
721 |
+
}
|
722 |
+
|
723 |
+
a.sm_donatePayPal {
|
724 |
+
background-image: url(<?php echo esc_url( $this->sg->get_plugin_url() . 'img/icon-paypal.gif' ); ?>);
|
725 |
+
}
|
726 |
+
|
727 |
+
a.sm_donateAmazon {
|
728 |
+
background-image: url(<?php echo esc_url( $this->sg->get_plugin_url() . 'img/icon-amazon.gif' ); ?>);
|
729 |
+
}
|
730 |
+
|
731 |
+
a.sm_pluginHome {
|
732 |
+
background-image: url(<?php echo esc_url( $this->sg->get_plugin_url() . 'img/icon-arne.gif' ); ?>);
|
733 |
+
}
|
734 |
+
|
735 |
+
a.sm_pluginHelp {
|
736 |
+
background-image: url(<?php echo esc_url( $this->sg->get_plugin_url() . 'img/icon-help.png' ); ?>);
|
737 |
+
}
|
738 |
+
|
739 |
+
a.sm_pluginList {
|
740 |
+
background-image: url(<?php echo esc_url( $this->sg->get_plugin_url() . 'img/icon-email.gif' ); ?>);
|
741 |
+
}
|
742 |
+
|
743 |
+
a.sm_pluginSupport {
|
744 |
+
background-image: url(<?php echo esc_url( $this->sg->get_plugin_url() . 'img/icon-wordpress.gif' ); ?>);
|
745 |
+
}
|
746 |
+
|
747 |
+
a.sm_pluginBugs {
|
748 |
+
background-image: url(<?php echo esc_url( $this->sg->get_plugin_url() . 'img/icon-trac.gif' ); ?>);
|
749 |
+
}
|
750 |
+
|
751 |
+
a.sm_resGoogle {
|
752 |
+
background-image: url(<?php echo esc_url( $this->sg->get_plugin_url() . 'img/icon-google.gif' ); ?>);
|
753 |
+
}
|
754 |
+
|
755 |
+
a.sm_resYahoo {
|
756 |
+
background-image: url(<?php echo esc_url( $this->sg->get_plugin_url() . 'img/icon-yahoo.gif' ); ?>);
|
757 |
+
}
|
758 |
+
|
759 |
+
a.sm_resBing {
|
760 |
+
background-image: url(<?php echo esc_url( $this->sg->get_plugin_url() . 'img/icon-bing.gif' ); ?>);
|
761 |
+
}
|
762 |
+
|
763 |
+
div.sm-update-nag p {
|
764 |
+
margin: 5px;
|
765 |
+
}
|
766 |
+
|
767 |
+
.sm-padded .inside {
|
768 |
+
margin: 12px !important;
|
769 |
+
}
|
770 |
+
|
771 |
+
.sm-padded .inside ul {
|
772 |
+
margin: 6px 0 12px 0;
|
773 |
+
}
|
774 |
+
|
775 |
+
.sm-padded .inside input {
|
776 |
+
padding: 1px;
|
777 |
+
margin: 0;
|
778 |
+
}
|
779 |
+
|
780 |
+
.hndle {
|
781 |
+
cursor: auto !important;
|
782 |
+
-webkit-user-select: auto !important;
|
783 |
+
-moz-user-select: auto !important;
|
784 |
+
-ms-user-select: auto !important;
|
785 |
+
user-select: auto !important;
|
786 |
+
}
|
787 |
+
|
788 |
+
|
789 |
+
<?php
|
790 |
+
if ( version_compare( $wp_version, '3.4', '<' ) ) : // Fix style for WP 3.4 (dirty way for now..) .
|
791 |
+
?>
|
792 |
+
.inner-sidebar #side-sortables,
|
793 |
+
.columns-2 .inner-sidebar #side-sortables {
|
794 |
+
min-height: 300px;
|
795 |
+
width: 280px;
|
796 |
+
padding: 0;
|
797 |
+
}
|
798 |
+
|
799 |
+
.has-right-sidebar .inner-sidebar {
|
800 |
+
display: block;
|
801 |
+
}
|
802 |
+
|
803 |
+
.inner-sidebar {
|
804 |
+
float: right;
|
805 |
+
clear: right;
|
806 |
+
display: none;
|
807 |
+
width: 281px;
|
808 |
+
position: relative;
|
809 |
+
}
|
810 |
+
|
811 |
+
.has-right-sidebar #post-body-content {
|
812 |
+
margin-right: 300px;
|
813 |
+
}
|
814 |
+
|
815 |
+
#post-body-content {
|
816 |
+
width: auto !important;
|
817 |
+
float: none !important;
|
818 |
+
}
|
819 |
+
|
820 |
+
<?php endif; ?>
|
821 |
+
</style>
|
822 |
+
|
823 |
+
|
824 |
+
<div class='wrap' id='sm_div'>
|
825 |
+
<form method='post' action='<?php echo esc_url( $this->sg->get_back_link() ); ?>'>
|
826 |
+
<h2>
|
827 |
+
<?php
|
828 |
+
esc_html_e( 'XML Sitemap Generator for WordPress', 'sitemap' );
|
829 |
+
echo ' ' . esc_html( $this->sg->get_version() );
|
830 |
+
?>
|
831 |
+
</h2>
|
832 |
+
<?php
|
833 |
+
|
834 |
+
if ( get_option( 'blog_public' ) !== 1 ) {
|
835 |
+
?>
|
836 |
+
<div class='error'>
|
837 |
+
<p>
|
838 |
+
<?php
|
839 |
+
$arr = array(
|
840 |
+
'br' => array(),
|
841 |
+
'p' => array(),
|
842 |
+
'a' => array(
|
843 |
+
'href' => array(),
|
844 |
+
),
|
845 |
+
'strong' => array(),
|
846 |
+
);
|
847 |
+
/* translators: %s: search term */
|
848 |
+
echo wp_kses( str_replace( '%s', 'options-reading.php#blog_public', __( 'Your site is currently blocking search engines! Visit the <a href=\'%s\'>Reading Settings</a> to change this.', 'sitemap' ) ), $arr );
|
849 |
+
?>
|
850 |
+
</p>
|
851 |
+
</div>
|
852 |
+
<?php
|
853 |
+
}
|
854 |
+
|
855 |
+
?>
|
856 |
+
|
857 |
+
<?php if ( ! $snl ) { ?>
|
858 |
+
<div id='poststuff' class='metabox-holder has-right-sidebar'>
|
859 |
+
<div class='inner-sidebar'>
|
860 |
+
<div id='side-sortables' class='meta-box-sortabless ui-sortable' style='position:relative;'>
|
861 |
+
<?php } else { ?>
|
862 |
+
<div id='poststuff' class='metabox-holder'>
|
863 |
+
<?php } ?>
|
864 |
+
|
865 |
+
|
866 |
+
<?php if ( ! $snl ) : ?>
|
867 |
+
<?php $this->html_print_box_header( 'sm_pnres', __( 'About this Plugin:', 'sitemap' ), true ); ?>
|
868 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-home' ) ); ?>'><?php esc_html_e( 'Plugin Homepage', 'sitemap' ); ?></a>
|
869 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-support' ) ); ?>'><?php esc_html_e( 'Suggest a Feature', 'sitemap' ); ?></a>
|
870 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-help' ) ); ?>'><?php esc_html_e( 'Help / FAQ', 'sitemap' ); ?></a>
|
871 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-list' ) ); ?>'><?php esc_html_e( 'Notify List', 'sitemap' ); ?></a>
|
872 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-support' ) ); ?>'><?php esc_html_e( 'Support Forum', 'sitemap' ); ?></a>
|
873 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-bugs' ) ); ?>'><?php esc_html_e( 'Report a Bug', 'sitemap' ); ?></a>
|
874 |
+
<?php
|
875 |
+
if ( __( 'translator_name', 'sitemap' ) !== 'translator_name' ) {
|
876 |
+
?>
|
877 |
+
<a class='sm_button sm_pluginSupport' href='<?php esc_html_e( 'translator_url', 'sitemap' ); ?>'><?php esc_html_e( 'translator_name', 'sitemap' ); ?></a><?php } ?>
|
878 |
+
<?php $this->html_print_box_footer( true ); ?>
|
879 |
+
|
880 |
+
<?php $this->html_print_box_header( 'sm_smres', __( 'Sitemap Resources:', 'sitemap' ), true ); ?>
|
881 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-gwt' ) ); ?>'><?php esc_html_e( 'Webmaster Tools', 'sitemap' ); ?></a>
|
882 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-gwb' ) ); ?>'><?php esc_html_e( 'Webmaster Blog', 'sitemap' ); ?></a>
|
883 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-ywb' ) ); ?>'><?php esc_html_e( 'Search Blog', 'sitemap' ); ?></a>
|
884 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-lwt' ) ); ?>'><?php esc_html_e( 'Webmaster Tools', 'sitemap' ); ?></a>
|
885 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-lswcb' ) ); ?>'><?php esc_html_e( 'Webmaster Center Blog', 'sitemap' ); ?></a>
|
886 |
+
<br />
|
887 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-prot' ) ); ?>'><?php esc_html_e( 'Sitemaps Protocol', 'sitemap' ); ?></a>
|
888 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'projects/wordpress-plugins/google-xml-sitemaps-generator/help' ) ); ?>'><?php esc_html_e( 'Official Sitemaps FAQ', 'sitemap' ); ?></a>
|
889 |
+
<a class='sm_button' href='<?php echo esc_url( $this->sg->get_redirect_link( 'projects/wordpress-plugins/google-xml-sitemaps-generator/help' ) ); ?>'><?php esc_html_e( 'My Sitemaps FAQ', 'sitemap' ); ?></a>
|
890 |
+
<?php $this->html_print_box_footer( true ); ?>
|
891 |
+
|
892 |
+
|
893 |
+
</div>
|
894 |
+
</div>
|
895 |
+
<?php endif; ?>
|
896 |
+
|
897 |
+
<div class='has-sidebar sm-padded'>
|
898 |
+
|
899 |
+
<div id='post-body-content' class='
|
900 |
+
<?php
|
901 |
+
if ( ! $snl ) :
|
902 |
+
?>
|
903 |
+
has-sidebar-content<?php endif; ?>'>
|
904 |
+
|
905 |
+
<div class='meta-box-sortabless'>
|
906 |
+
|
907 |
+
|
908 |
+
<!-- Rebuild Area -->
|
909 |
+
<?php
|
910 |
+
|
911 |
+
$status = GoogleSitemapGeneratorStatus::Load();
|
912 |
+
$head = __( 'Search engines haven\'t been notified yet', 'sitemap' );
|
913 |
+
if ( null !== $status && 0 < $status->get_start_time() ) {
|
914 |
+
$opt = get_option( 'gmt_offset' );
|
915 |
+
$st = $status->get_start_time() + ( $opt * 3600 );
|
916 |
+
/* translators: %s: search term */
|
917 |
+
$head = str_replace( '%date%', date_i18n( get_option( 'date_format' ), $st ) . ' ' . date_i18n( get_option( 'time_format' ), $st ), esc_html__( 'Result of the last ping, started on %date%.', 'sitemap' ) );
|
918 |
+
}
|
919 |
+
|
920 |
+
$this->html_print_box_header( 'sm_rebuild', $head );
|
921 |
+
?>
|
922 |
+
|
923 |
+
|
924 |
+
<div style='border-left: 1px #DFDFDF solid; float:right; padding-left:15px; margin-left:10px; width:35%;'>
|
925 |
+
<strong><?php esc_html_e( 'Recent Support Topics / News', 'sitemap' ); ?></strong>
|
926 |
+
<?php
|
927 |
+
if ( $this->sg->get_option( 'i_supportfeed' ) ) {
|
928 |
+
|
929 |
+
echo '<small><a href=\'' . esc_url( wp_nonce_url( $this->sg->get_back_link() ) . '&sm_disable_supportfeed=true' ) . '\'>' . esc_html__( 'Disable', 'sitemap' ) . '</a></small>';
|
930 |
+
|
931 |
+
$support_feed = $this->sg->get_support_feed();
|
932 |
+
|
933 |
+
if ( ! is_wp_error( $support_feed ) && $support_feed ) {
|
934 |
+
$support_items = $support_feed->get_items( 0, $support_feed->get_item_quantity( 3 ) );
|
935 |
+
|
936 |
+
if ( count( $support_items ) > 0 ) {
|
937 |
+
echo '<ul>';
|
938 |
+
foreach ( $support_items as $item ) {
|
939 |
+
$url = esc_url( $item->get_permalink() );
|
940 |
+
$title = esc_html( $item->get_title() );
|
941 |
+
echo '<li><a rel=\'external\' target=\'_blank\' href=' . esc_url( $url ) . '>' . esc_html( $title ) . '</a></li>';
|
942 |
+
}
|
943 |
+
echo '</ul>';
|
944 |
+
}
|
945 |
+
} else {
|
946 |
+
echo '<ul><li>' . esc_html__( 'No support topics available or an error occurred while fetching them.', 'sitemap' ) . '</li></ul>';
|
947 |
+
}
|
948 |
+
} else {
|
949 |
+
echo '<ul><li>' . esc_html__( 'Support Topics have been disabled. Enable them to see useful information regarding this plugin. No Ads or Spam!', 'sitemap' ) . ' <a href=\'' . esc_url( wp_nonce_url( $this->sg->get_back_link() ) . '&sm_disable_supportfeed=false' ) . '\'>' . esc_html__( 'Enable', 'sitemap' ) . '</a></li></ul>';
|
950 |
+
}
|
951 |
+
?>
|
952 |
+
</div>
|
953 |
+
|
954 |
+
|
955 |
+
<div style='min-height:150px;'>
|
956 |
+
<ul>
|
957 |
+
<?php
|
958 |
+
|
959 |
+
if ( $this->sg->old_file_exists() ) {
|
960 |
+
/* translators: %s: search term */
|
961 |
+
echo '<li class=\'sm_error\'>' . esc_html( str_replace( '%s', ( $this->sg->get_back_link() ) . '&sm_delete_old=true', 'sitemap' ) ), esc_html__( 'There is still a sitemap.xml or sitemap.xml.gz file in your site directory. Please delete them as no static files are used anymore or <a href=\'%s\'>try to delete them automatically</a>.', 'sitemap' ) . '</li>';
|
962 |
+
}
|
963 |
+
$arr = array(
|
964 |
+
'br' => array(),
|
965 |
+
'p' => array(),
|
966 |
+
'a' => array(
|
967 |
+
'href' => array(),
|
968 |
+
),
|
969 |
+
'strong' => array(),
|
970 |
+
);
|
971 |
+
/* translators: %s: search term */
|
972 |
+
echo '<li>' . wp_kses( str_replace( array( '%1$s', '%2$s' ), $this->sg->get_xml_url(), __( 'The URL to your sitemap index file is: <a href=\'%1$s\'>%2$s</a>.', 'sitemap' ) ), $arr ) . '</li>';
|
973 |
+
if ( null === $status ) {
|
974 |
+
echo '<li>' . esc_html__( 'Search engines haven\'t been notified yet. Write a post to let them know about your sitemap.', 'sitemap' ) . '</li>';
|
975 |
+
} else {
|
976 |
+
|
977 |
+
$services = $status->get_used_ping_services();
|
978 |
+
|
979 |
+
foreach ( $services as $service ) {
|
980 |
+
$name = $status->get_service_name( $service );
|
981 |
+
|
982 |
+
if ( $status->get_ping_result( $service ) ) {
|
983 |
+
$arr = array(
|
984 |
+
'b' => array(),
|
985 |
+
'a' => array(
|
986 |
+
'href' => array(),
|
987 |
+
),
|
988 |
+
);
|
989 |
+
/* translators: %s: search term */
|
990 |
+
|
991 |
+
echo '<li>' . wp_kses( sprintf( __( '%s was <b>successfully notified</b> about changes.', 'sitemap' ), $name ), $arr ) . '</li>';
|
992 |
+
$dur = $status->get_ping_duration( $service );
|
993 |
+
if ( $dur > 4 ) {
|
994 |
+
echo '<li class=\sm_optimize\'>' . wp_kses( str_replace( array( '%time%', '%name%' ), array( $dur, $name ), __( 'It took %time% seconds to notify %name%, maybe you want to disable this feature to reduce the building time.', 'sitemap' ) ), $arr ) . '</li>';
|
995 |
+
}
|
996 |
+
} else {
|
997 |
+
/* translators: %s: search term */
|
998 |
+
echo '<li class=\'sm_error\'>' . wp_kses( str_replace( array( '%s', '%name%' ), array( wp_nonce_url( $this->sg->get_back_link() . '&sm_ping_service=' . $service . '&noheader=true', 'sitemap' ), $name ), __( 'There was a problem while notifying %name%. <a href=\'%s\' target=\'_blank\'>View result</a>', 'sitemap' ) ), $arr ) . '</li>';
|
999 |
+
}
|
1000 |
+
}
|
1001 |
+
}
|
1002 |
+
|
1003 |
+
?>
|
1004 |
+
<?php if ( $this->sg->get_option( 'b_ping' ) || $this->sg->get_option( 'b_pingmsn' ) ) : ?>
|
1005 |
+
<li>
|
1006 |
+
Notify Search Engines about <a href='<?php echo esc_url( wp_nonce_url( $this->sg->get_back_link() . '&sm_ping_main=true', 'sitemap' ) ); ?>'>your sitemap </a> or <a href='#' onclick='window.open('<?php echo esc_html( wp_nonce_url( $this->sg->get_back_link() . '&sm_ping_all=true&noheader=true', 'sitemap' ) ); ?>','','width=650, height=500, resizable=yes'); return false;'>your main sitemap and all sub-sitemaps</a> now.
|
1007 |
+
</li>
|
1008 |
+
<?php endif; ?>
|
1009 |
+
<?php
|
1010 |
+
if ( is_super_admin() ) {
|
1011 |
+
$arr = array(
|
1012 |
+
'br' => array(),
|
1013 |
+
'p' => array(),
|
1014 |
+
'a' => array(
|
1015 |
+
'href' => array(),
|
1016 |
+
),
|
1017 |
+
'strong' => array(),
|
1018 |
+
);
|
1019 |
+
/* translators: %s: search term */
|
1020 |
+
echo '<li>' . wp_kses( str_replace( '%d', wp_nonce_url( $this->sg->get_back_link() . '&sm_rebuild=true&sm_do_debug=true', 'sitemap' ), __( 'If you encounter any problems with your sitemap you can use the <a href="%d">debug function</a> to get more information.', 'sitemap' ) ), $arr ) . '</li>';
|
1021 |
+
}
|
1022 |
+
?>
|
1023 |
+
</ul>
|
1024 |
+
<ul>
|
1025 |
+
<li>
|
1026 |
+
<?php
|
1027 |
+
$arr = array(
|
1028 |
+
'br' => array(),
|
1029 |
+
'p' => array(),
|
1030 |
+
'a' => array(
|
1031 |
+
'href' => array(),
|
1032 |
+
),
|
1033 |
+
'strong' => array(),
|
1034 |
+
);
|
1035 |
+
/* translators: %s: search term */
|
1036 |
+
echo wp_kses( sprintf( __( 'If you like the plugin, please <a target="_blank" href="%s">rate it 5 stars</a>! :)', 'sitemap' ), $this->sg->get_redirect_link( 'redir/sitemap-works-note' ), $this->sg->get_redirect_link( 'redirsitemap-paypal' ) ), $arr );
|
1037 |
+
?>
|
1038 |
+
</li>
|
1039 |
+
</ul>
|
1040 |
+
</div>
|
1041 |
+
<?php $this->html_print_box_footer(); ?>
|
1042 |
+
|
1043 |
+
<?php if ( $this->sg->is_nginx() && $this->sg->is_using_permalinks() ) : ?>
|
1044 |
+
<?php $this->html_print_box_header( 'ngin_x', __( 'Webserver Configuration', 'sitemap' ) ); ?>
|
1045 |
+
<?php esc_html_e( 'Since you are using Nginx as your web-server, please configure the following rewrite rules in case you get 404 Not Found errors for your sitemap:', 'sitemap' ); ?>
|
1046 |
+
<p>
|
1047 |
+
<code style='display:block; overflow-x:auto; white-space: nowrap;'>
|
1048 |
+
<?php
|
1049 |
+
$rules = GoogleSitemapGeneratorLoader::get_ngin_x_rules();
|
1050 |
+
foreach ( $rules as $rule ) {
|
1051 |
+
echo esc_html( $rule . '<br />' );
|
1052 |
+
}
|
1053 |
+
?>
|
1054 |
+
</code>
|
1055 |
+
</p>
|
1056 |
+
<?php $this->html_print_box_footer(); ?>
|
1057 |
+
<?php endif; ?>
|
1058 |
+
|
1059 |
+
|
1060 |
+
<!-- Basic Options -->
|
1061 |
+
<?php $this->html_print_box_header( 'sm_basic_options', __( 'Basic Options', 'sitemap' ) ); ?>
|
1062 |
+
|
1063 |
+
<b><?php esc_html_e( 'Update notification:', 'sitemap' ); ?></b> <a href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-help-options-ping' ) ); ?>'><?php esc_html_e( 'Learn more', 'sitemap' ); ?></a>
|
1064 |
+
<ul>
|
1065 |
+
<li>
|
1066 |
+
<input type='checkbox' id='sm_b_ping' name='sm_b_ping' <?php echo ( $this->sg->get_option( 'b_ping' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1067 |
+
<label for='sm_b_ping'><?php esc_html_e( 'Notify Google about updates of your site', 'sitemap' ); ?></label><br />
|
1068 |
+
<small>
|
1069 |
+
<?php
|
1070 |
+
$arr = array(
|
1071 |
+
'br' => array(),
|
1072 |
+
'p' => array(),
|
1073 |
+
'a' => array(
|
1074 |
+
'href' => array(),
|
1075 |
+
),
|
1076 |
+
'strong' => array(),
|
1077 |
+
);
|
1078 |
+
/* translators: %s: search term */
|
1079 |
+
echo wp_kses( str_replace( '%s', $this->sg->get_redirect_link( 'redir/sitemap-gwt' ), __( 'No registration required, but you can join the <a href=\'%s\'>Google Webmaster Tools</a> to check crawling statistics.', 'sitemap' ) ), $arr );
|
1080 |
+
?>
|
1081 |
+
</small>
|
1082 |
+
</li>
|
1083 |
+
<li>
|
1084 |
+
<input type='checkbox' id='sm_b_pingmsn' name='sm_b_pingmsn' <?php echo ( $this->sg->get_option( 'b_pingmsn' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1085 |
+
<label for='sm_b_pingmsn'><?php esc_html_e( 'Notify Bing (formerly MSN Live Search) about updates of your site', 'sitemap' ); ?></label><br />
|
1086 |
+
<small>
|
1087 |
+
<?php
|
1088 |
+
$arr = array(
|
1089 |
+
'br' => array(),
|
1090 |
+
'p' => array(),
|
1091 |
+
'a' => array(
|
1092 |
+
'href' => array(),
|
1093 |
+
),
|
1094 |
+
'strong' => array(),
|
1095 |
+
);
|
1096 |
+
/* translators: %s: search term */
|
1097 |
+
echo wp_kses( str_replace( '%s', $this->sg->get_redirect_link( 'redir/sitemap-lwt' ), __( 'No registration required, but you can join the <a href=\'%s\'>Bing Webmaster Tools</a> to check crawling statistics.', 'sitemap' ) ), $arr );
|
1098 |
+
?>
|
1099 |
+
</small>
|
1100 |
+
</li>
|
1101 |
+
<li>
|
1102 |
+
<label for='sm_b_robots'>
|
1103 |
+
<input type='checkbox' id='sm_b_robots' name='sm_b_robots' <?php echo ( $this->sg->get_option( 'b_robots' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1104 |
+
<?php esc_html_e( 'Add sitemap URL to the virtual robots.txt file.', 'sitemap' ); ?>
|
1105 |
+
</label>
|
1106 |
+
|
1107 |
+
<br />
|
1108 |
+
<small><?php esc_html_e( 'The virtual robots.txt generated by WordPress is used. A real robots.txt file must NOT exist in the site directory!', 'sitemap' ); ?></small>
|
1109 |
+
</li>
|
1110 |
+
</ul>
|
1111 |
+
|
1112 |
+
<?php if ( is_super_admin() ) : ?>
|
1113 |
+
|
1114 |
+
<b><?php esc_html_e( 'Advanced options:', 'sitemap' ); ?></b> <a href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-help-options-adv' ) ); ?>'><?php esc_html_e( 'Learn more', 'sitemap' ); ?></a>
|
1115 |
+
<ul>
|
1116 |
+
<li>
|
1117 |
+
<label for="sm_b_memory"><?php esc_html_e( 'Try to increase the memory limit to:', 'sitemap' ); ?> <input type="text" name="sm_b_memory" id="sm_b_memory" style="width:40px;" value="<?php echo esc_attr( $this->sg->get_option( 'b_memory' ) ); ?>" /></label> ( <?php echo esc_html( htmlspecialchars( esc_html__( 'e.g. \'4M\', \'16M\'', 'sitemap' ) ) ); ?>)
|
1118 |
+
</li>
|
1119 |
+
<li>
|
1120 |
+
<label for='sm_b_time'><?php esc_html_e( 'Try to increase the execution time limit to:', 'sitemap' ); ?> <input type='text' name='sm_b_time' id='sm_b_time' style='width:40px;' value='<?php echo esc_attr( ( $this->sg->get_option( 'b_time' ) === -1 ? '' : $this->sg->get_option( 'b_time' ) ) ); ?>' /></label> (<?php echo esc_html( htmlspecialchars( esc_html__( 'in seconds, e.g. \'60\' or \'0\' for unlimited', 'sitemap' ) ) ); ?>)
|
1121 |
+
</li>
|
1122 |
+
<li>
|
1123 |
+
<label for='sm_b_autozip'>
|
1124 |
+
<input type='checkbox' id='sm_b_autozip' name='sm_b_autozip' <?php echo ( $this->sg->get_option( 'b_autozip' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1125 |
+
<?php esc_html_e( 'Try to automatically compress the sitemap if the requesting client supports it.', 'sitemap' ); ?>
|
1126 |
+
</label><br />
|
1127 |
+
<small><?php esc_html_e( 'Disable this option if you get garbled content or encoding errors in your sitemap.', 'sitemap' ); ?></small>
|
1128 |
+
</li>
|
1129 |
+
<li>
|
1130 |
+
<?php $use_def_style = ( $this->sg->get_default_style() && $this->sg->get_option( 'b_style_default' ) === true ); ?>
|
1131 |
+
<label for='sm_b_style'><?php esc_html_e( 'Include a XSLT stylesheet:', 'sitemap' ); ?> <input <?php echo ( $use_def_style ? 'disabled=\'disabled\' ' : '' ); ?> type='text' name='sm_b_style' id='sm_b_style' value='<?php echo esc_attr( $this->sg->get_option( 'b_style' ) ); ?>' /></label>
|
1132 |
+
(<?php esc_html_e( 'Full or relative URL to your .xsl file', 'sitemap' ); ?>)
|
1133 |
+
<?php
|
1134 |
+
if ( $this->sg->get_default_style() ) :
|
1135 |
+
?>
|
1136 |
+
<label for='sm_b_style_default'><input <?php echo ( $use_def_style ? 'checked=\'checked\' ' : '' ); ?> type='checkbox' id='sm_b_style_default' name='sm_b_style_default' onclick='document.getElementById("sm_b_style").disabled = this.checked;' /> <?php esc_html_e( 'Use default', 'sitemap' ); ?></label> <?php endif; ?>
|
1137 |
+
</li>
|
1138 |
+
<li>
|
1139 |
+
<label for='sm_b_baseurl'><?php esc_html_e( 'Override the base URL of the sitemap:', 'sitemap' ); ?> <input type='text' name='sm_b_baseurl' id='sm_b_baseurl' value='<?php echo esc_attr( $this->sg->get_option( 'b_baseurl' ) ); ?>' /></label><br />
|
1140 |
+
<small><?php esc_html_e( 'Use this if your site is in a sub-directory, but you want the sitemap be located in the root. Requires .htaccess modification.', 'sitemap' ); ?> <a href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-help-options-adv-baseurl' ) ); ?>'><?php esc_html_e( 'Learn more', 'sitemap' ); ?></a></small>
|
1141 |
+
</li>
|
1142 |
+
<li>
|
1143 |
+
<label for='sm_b_sitemap_name'><?php esc_html_e( 'Override the file name of the sitemap:', 'sitemap' ); ?> <input type='text' name='sm_b_sitemap_name' id='sm_b_sitemap_name' value='<?php echo esc_attr( $this->sg->get_option( 'b_sitemap_name' ) ); ?>' /></label><br />
|
1144 |
+
<small><?php esc_html_e( 'Use this if you want to change the sitemap file name', 'sitemap' ); ?> <a href='<?php echo esc_url( $this->sg->get_redirect_link( 'sitemap-help-options-adv-baseurl' ) ); ?>'><?php esc_html_e( 'Learn more', 'sitemap' ); ?></a></small>
|
1145 |
+
</li>
|
1146 |
+
<li>
|
1147 |
+
<label for='sm_i_tid'><?php esc_html_e( ' Add Google Analytics TID:', 'sitemap' ); ?> <input type='text' name='sm_i_tid' id='sm_i_tid' required value='<?php echo esc_attr( $this->sg->get_option( 'i_tid' ) ); ?>' /></label><br />
|
1148 |
+
</li>
|
1149 |
+
<li>
|
1150 |
+
<label for='sm_b_html'>
|
1151 |
+
<input type='checkbox' id='sm_b_html' name='sm_b_html'
|
1152 |
+
<?php
|
1153 |
+
if ( ! $this->sg->is_xsl_enabled() ) {
|
1154 |
+
echo 'disabled=\'disabled\'';
|
1155 |
+
}
|
1156 |
+
?>
|
1157 |
+
<?php echo ( $this->sg->get_option( 'b_html' ) === true && $this->sg->is_xsl_enabled() ? 'checked=\'checked\'' : '' ); ?> />
|
1158 |
+
<?php esc_html_e( 'Include sitemap in HTML format', 'sitemap' ); ?>
|
1159 |
+
<?php
|
1160 |
+
if ( ! $this->sg->is_xsl_enabled() ) {
|
1161 |
+
esc_html_e( '(The required PHP XSL Module is not installed)', 'sitemap' );
|
1162 |
+
}
|
1163 |
+
?>
|
1164 |
+
</label>
|
1165 |
+
</li>
|
1166 |
+
<li>
|
1167 |
+
<label for='sm_b_stats'>
|
1168 |
+
<input type='checkbox' id='sm_b_stats' name='sm_b_stats' <?php echo ( $this->sg->get_option( 'b_stats' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1169 |
+
<?php esc_html_e( 'Allow anonymous statistics (no personal information)', 'sitemap' ); ?>
|
1170 |
+
</label> <label><a href='<?php echo esc_url( $this->sg->get_redirect_link( 'redir/sitemap-help-options-adv-stats' ) ); ?>'><?php esc_html_e( 'Learn more', 'sitemap' ); ?></a></label>
|
1171 |
+
</li>
|
1172 |
+
</ul>
|
1173 |
+
<?php endif; ?>
|
1174 |
+
|
1175 |
+
<?php $this->html_print_box_footer(); ?>
|
1176 |
+
|
1177 |
+
<?php if ( is_super_admin() ) : ?>
|
1178 |
+
<?php $this->html_print_box_header( 'sm_pages', __( 'Additional Pages', 'sitemap' ) ); ?>
|
1179 |
+
|
1180 |
+
<?php
|
1181 |
+
$arr = array(
|
1182 |
+
'br' => array(),
|
1183 |
+
'p' => array(),
|
1184 |
+
'a' => array(),
|
1185 |
+
'strong' => array(),
|
1186 |
+
);
|
1187 |
+
echo wp_kses( 'Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Site/WordPress.<br />For example, if your domain is www.foo.com and your site is located on www.foo.com/site you might want to include your homepage at www.foo.com', $arr );
|
1188 |
+
echo '<ul><li>';
|
1189 |
+
echo '<strong>' . esc_html__( 'Note', 'sitemap' ) . '</strong>: ';
|
1190 |
+
esc_html_e( 'If your site is in a subdirectory and you want to add pages which are NOT in the site directory or beneath, you MUST place your sitemap file in the root directory (Look at the "Location of your sitemap file" section on this page)!', 'sitemap' );
|
1191 |
+
echo '</li><li>';
|
1192 |
+
echo '<strong>' . esc_html__( 'URL to the page', 'sitemap' ) . '</strong>: ';
|
1193 |
+
esc_html_e( 'Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home ', 'sitemap' );
|
1194 |
+
echo '</li><li>';
|
1195 |
+
echo '<strong>' . esc_html__( 'Priority', 'sitemap' ) . '</strong>: ';
|
1196 |
+
esc_html_e( 'Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint.', 'sitemap' );
|
1197 |
+
echo '</li><li>';
|
1198 |
+
echo '<strong>' . esc_html__( 'Last Changed', 'sitemap' ) . '</strong>: ';
|
1199 |
+
esc_html_e( 'Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional).', 'sitemap' );
|
1200 |
+
|
1201 |
+
echo '</li></ul>';
|
1202 |
+
?>
|
1203 |
+
<script type='text/javascript'>
|
1204 |
+
//<![CDATA[
|
1205 |
+
<?php
|
1206 |
+
|
1207 |
+
$freq_vals = implode( ',', array_keys( $this->sg->get_freq_names() ) );
|
1208 |
+
$freq_names = implode( ',', array_values( $this->sg->get_freq_names() ) );
|
1209 |
+
?>
|
1210 |
+
var changeFreqVals = '<?php echo esc_html( $freq_vals ); ?>';
|
1211 |
+
changeFreqVals = changeFreqVals.split(",")
|
1212 |
+
var changeFreqNames ='<?php echo esc_html( $freq_names ); ?>'
|
1213 |
+
changeFreqNames = changeFreqNames.split(",")
|
1214 |
+
var priorities = [0
|
1215 |
+
<?php
|
1216 |
+
for ( $i = 0.1; $i < 1; $i += 0.1 ) {
|
1217 |
+
echo ',' . number_format( $i, 1, '.', '' );
|
1218 |
+
}
|
1219 |
+
?>
|
1220 |
+
];
|
1221 |
+
|
1222 |
+
var pages = [
|
1223 |
+
<?php
|
1224 |
+
$pages = (array) $this->sg->get_pages();
|
1225 |
+
$fd = false;
|
1226 |
+
foreach ( $pages as $page ) {
|
1227 |
+
if ( $page instanceof GoogleSitemapGeneratorPage ) {
|
1228 |
+
if ( $fd ) {
|
1229 |
+
echo ',';
|
1230 |
+
} else {
|
1231 |
+
$fd = true;
|
1232 |
+
}
|
1233 |
+
echo '{url:"' . esc_url( $page->get_url() ) . '", priority:' . esc_html( number_format( $page->get_priority(), 1, '.', '' ) ) . ', changeFreq:\'' . esc_html( $page->get_change_freq() ) . '\', lastChanged:"' . esc_html( ( $page->get_last_mod() > 0 ? gmdate( 'Y-m-d', $page->get_last_mod() ) : '' ) ) . '"}';
|
1234 |
+
}
|
1235 |
+
}
|
1236 |
+
?>
|
1237 |
+
];
|
1238 |
+
//]]>
|
1239 |
+
</script>
|
1240 |
+
<?php
|
1241 |
+
wp_enqueue_script( 'sitemap-script', ( $this->sg->get_plugin_url() . 'img/sitemap.js' ), '', '1.0.0', false );
|
1242 |
+
?>
|
1243 |
+
<table width='100%' cellpadding='3' cellspacing='3' id='sm_pageTable'>
|
1244 |
+
<tr>
|
1245 |
+
<th scope='col'><?php esc_html_e( 'URL to the page', 'sitemap' ); ?></th>
|
1246 |
+
<th scope='col'><?php esc_html_e( 'Priority', 'sitemap' ); ?></th>
|
1247 |
+
<th scope='col'><?php esc_html_e( 'Change Frequency', 'sitemap' ); ?></th>
|
1248 |
+
<th scope='col'><?php esc_html_e( 'Last Changed', 'sitemap' ); ?></th>
|
1249 |
+
<th scope='col'><?php esc_html_e( '#', 'sitemap' ); ?></th>
|
1250 |
+
</tr>
|
1251 |
+
<?php
|
1252 |
+
if ( count( $pages ) <= 0 ) {
|
1253 |
+
?>
|
1254 |
+
<tr>
|
1255 |
+
<td colspan='5' align='center'><?php esc_html_e( 'No pages defined.', 'sitemap' ); ?></td>
|
1256 |
+
</tr>
|
1257 |
+
<?php
|
1258 |
+
}
|
1259 |
+
?>
|
1260 |
+
</table>
|
1261 |
+
<a href='javascript:void(0);' onclick='sm_addPage();'><?php esc_html_e( 'Add new page', 'sitemap' ); ?></a>
|
1262 |
+
<?php $this->html_print_box_footer(); ?>
|
1263 |
+
<?php endif; ?>
|
1264 |
+
|
1265 |
+
|
1266 |
+
<!-- AutoPrio Options -->
|
1267 |
+
<?php $this->html_print_box_header( 'sm_postprio', __( 'Post Priority', 'sitemap' ) ); ?>
|
1268 |
+
|
1269 |
+
<p><?php esc_html_e( 'Please select how the priority of each post should be calculated:', 'sitemap' ); ?></p>
|
1270 |
+
<ul>
|
1271 |
+
<li>
|
1272 |
+
<p><input type='radio' name='sm_b_prio_provider' id='sm_b_prio_provider__0' value='' <?php esc_attr( $this->html_get_checked( $this->sg->get_option( 'b_prio_provider' ), '' ) ); ?> /> <label for='sm_b_prio_provider__0'><?php esc_html_e( 'Do not use automatic priority calculation', 'sitemap' ); ?></label><br /><?php esc_html_e( 'All posts will have the same priority which is defined in "Priorities"', 'sitemap' ); ?></p>
|
1273 |
+
</li>
|
1274 |
+
<?php
|
1275 |
+
$provs = $this->sg->get_prio_providers();
|
1276 |
+
$len = count( $provs );
|
1277 |
+
for ( $i = 0; $i < $len; $i++ ) {
|
1278 |
+
echo '<li><p><input type=\'radio\' id=\'sm_b_prio_provider_$i\' name=\'sm_b_prio_provider\' value=\'' . esc_attr( $provs[ $i ] ) . '\' ' . esc_attr( $this->html_get_checked( $this->sg->get_option( 'b_prio_provider' ), $provs[ $i ] ) ) . ' /> <label for=\'sm_b_prio_provider_$i\'>' . esc_html( call_user_func( array( $provs[ $i ], 'get_name' ) ) ) . '</label><br />' . esc_html( call_user_func( array( $provs[ $i ], 'get_description' ) ) ) . '</p></li>';
|
1279 |
+
}
|
1280 |
+
?>
|
1281 |
+
</ul>
|
1282 |
+
<?php $this->html_print_box_footer(); ?>
|
1283 |
+
|
1284 |
+
<!-- Includes -->
|
1285 |
+
<?php $this->html_print_box_header( 'sm_includes', __( 'Sitemap Content', 'sitemap' ) ); ?>
|
1286 |
+
<b><?php esc_html_e( 'WordPress standard content', 'sitemap' ); ?>:</b>
|
1287 |
+
<ul>
|
1288 |
+
<li>
|
1289 |
+
<label for='sm_in_home'>
|
1290 |
+
<input type='checkbox' id='sm_in_home' name='sm_in_home' <?php echo ( $this->sg->get_option( 'in_home' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1291 |
+
<?php esc_html_e( 'Include homepage', 'sitemap' ); ?>
|
1292 |
+
</label>
|
1293 |
+
</li>
|
1294 |
+
<li>
|
1295 |
+
<label for='sm_in_posts'>
|
1296 |
+
<input type='checkbox' id='sm_in_posts' name='sm_in_posts' <?php echo ( $this->sg->get_option( 'in_posts' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1297 |
+
<?php esc_html_e( 'Include posts', 'sitemap' ); ?>
|
1298 |
+
</label>
|
1299 |
+
</li>
|
1300 |
+
<li>
|
1301 |
+
<label for='sm_in_product_cat'>
|
1302 |
+
<input type='checkbox' id='sm_in_product_cat' name='sm_in_product_cat' <?php echo ( $this->sg->get_option( 'in_product_cat' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1303 |
+
<?php esc_html_e( 'Include product categories', 'sitemap' ); ?>
|
1304 |
+
</label>
|
1305 |
+
</li>
|
1306 |
+
<li>
|
1307 |
+
<label for='sm_product_tags'>
|
1308 |
+
<input type='checkbox' id='sm_product_tags' name='sm_product_tags' <?php echo ( $this->sg->get_option( 'product_tags' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1309 |
+
<?php esc_html_e( 'Include product tags', 'sitemap' ); ?>
|
1310 |
+
</label>
|
1311 |
+
</li>
|
1312 |
+
<li>
|
1313 |
+
<label for='sm_in_pages'>
|
1314 |
+
<input type='checkbox' id='sm_in_pages' name='sm_in_pages' <?php echo ( $this->sg->get_option( 'in_pages' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1315 |
+
<?php esc_html_e( 'Include static pages', 'sitemap' ); ?>
|
1316 |
+
</label>
|
1317 |
+
</li>
|
1318 |
+
<li>
|
1319 |
+
<label for='sm_in_cats'>
|
1320 |
+
<input type='checkbox' id='sm_in_cats' name='sm_in_cats' <?php echo ( $this->sg->get_option( 'in_cats' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1321 |
+
<?php esc_html_e( 'Include categories', 'sitemap' ); ?>
|
1322 |
+
</label>
|
1323 |
+
</li>
|
1324 |
+
<li>
|
1325 |
+
<label for='sm_in_arch'>
|
1326 |
+
<input type='checkbox' id='sm_in_arch' name='sm_in_arch' <?php echo ( $this->sg->get_option( 'in_arch' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1327 |
+
<?php esc_html_e( 'Include archives', 'sitemap' ); ?>
|
1328 |
+
</label>
|
1329 |
+
</li>
|
1330 |
+
<li>
|
1331 |
+
<label for='sm_in_auth'>
|
1332 |
+
<input type='checkbox' id='sm_in_auth' name='sm_in_auth' <?php echo ( $this->sg->get_option( 'in_auth' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1333 |
+
<?php esc_html_e( 'Include author pages', 'sitemap' ); ?>
|
1334 |
+
</label>
|
1335 |
+
</li>
|
1336 |
+
<?php if ( $this->sg->is_taxonomy_supported() ) : ?>
|
1337 |
+
<li>
|
1338 |
+
<label for='sm_in_tags'>
|
1339 |
+
<input type='checkbox' id='sm_in_tags' name='sm_in_tags' <?php echo ( $this->sg->get_option( 'in_tags' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1340 |
+
<?php esc_html_e( 'Include tag pages', 'sitemap' ); ?>
|
1341 |
+
</label>
|
1342 |
+
</li>
|
1343 |
+
<?php endif; ?>
|
1344 |
+
</ul>
|
1345 |
+
|
1346 |
+
<?php
|
1347 |
+
|
1348 |
+
if ( $this->sg->is_taxonomy_supported() ) {
|
1349 |
+
$taxonomies = $this->sg->get_custom_taxonomies();
|
1350 |
+
|
1351 |
+
$enabled_taxonomies = $this->sg->get_option( 'in_tax' );
|
1352 |
+
|
1353 |
+
if ( count( $taxonomies ) > 0 ) {
|
1354 |
+
?>
|
1355 |
+
<b>
|
1356 |
+
<?php
|
1357 |
+
esc_html_e( 'Custom taxonomies', 'sitemap' );
|
1358 |
+
?>
|
1359 |
+
:</b>
|
1360 |
+
<ul>
|
1361 |
+
<?php
|
1362 |
+
|
1363 |
+
foreach ( $taxonomies as $tax_name ) {
|
1364 |
+
|
1365 |
+
$taxonomy = get_taxonomy( $tax_name );
|
1366 |
+
$selected = in_array( $taxonomy->name, $enabled_taxonomies, true );
|
1367 |
+
?>
|
1368 |
+
<li>
|
1369 |
+
<label for='sm_in_tax[<?php echo esc_attr( $taxonomy->name ); ?>]'>
|
1370 |
+
<input type='checkbox' id='sm_in_tax[<?php echo esc_attr( $taxonomy->name ); ?>]' name='sm_in_tax[<?php echo esc_attr( $taxonomy->name ); ?>]' <?php echo $selected ? 'checked=\'checked\'' : ''; ?> />
|
1371 |
+
<?php /* translators: %s: search term */ ?>
|
1372 |
+
<?php echo esc_html( str_replace( '%s', $taxonomy->label, __( 'Include taxonomy pages for %s', 'sitemap' ) ) ); ?>
|
1373 |
+
</label>
|
1374 |
+
</li>
|
1375 |
+
<?php
|
1376 |
+
}
|
1377 |
+
|
1378 |
+
?>
|
1379 |
+
</ul>
|
1380 |
+
<?php
|
1381 |
+
|
1382 |
+
}
|
1383 |
+
}
|
1384 |
+
|
1385 |
+
if ( $this->sg->is_custom_post_types_supported() ) {
|
1386 |
+
$custom_post_types = $this->sg->get_custom_post_types();
|
1387 |
+
$enabled_post_types = $this->sg->get_option( 'in_customtypes' );
|
1388 |
+
|
1389 |
+
if ( count( $custom_post_types ) > 0 ) {
|
1390 |
+
?>
|
1391 |
+
<b>
|
1392 |
+
<?php esc_html_e( 'Custom post types', 'sitemap' ); ?>:</b>
|
1393 |
+
<ul>
|
1394 |
+
<?php
|
1395 |
+
|
1396 |
+
foreach ( $custom_post_types as $post_type ) {
|
1397 |
+
$post_type_object = get_post_type_object( $post_type );
|
1398 |
+
if ( is_array( $enabled_post_types ) ) {
|
1399 |
+
$selected = in_array( $post_type_object->name, $enabled_post_types, true );
|
1400 |
+
}
|
1401 |
+
|
1402 |
+
?>
|
1403 |
+
<li>
|
1404 |
+
<label for='sm_in_customtypes[<?php echo esc_html( $post_type_object->name ); ?>]'>
|
1405 |
+
<input type='checkbox' id='sm_in_customtypes[<?php echo esc_html( $post_type_object->name ); ?>]' name='sm_in_customtypes[<?php echo esc_html( $post_type_object->name ); ?>]' <?php echo $selected ? 'checked=\'checked\'' : ''; ?> />
|
1406 |
+
<?php /* translators: %s: search term */ ?>
|
1407 |
+
<?php echo esc_html( str_replace( '%s', $post_type_object->label, __( 'Include custom post type %s', 'sitemap' ) ) ); ?>
|
1408 |
+
</label>
|
1409 |
+
</li>
|
1410 |
+
<?php
|
1411 |
+
}
|
1412 |
+
|
1413 |
+
?>
|
1414 |
+
</ul>
|
1415 |
+
<?php
|
1416 |
+
}
|
1417 |
+
}
|
1418 |
+
|
1419 |
+
?>
|
1420 |
+
|
1421 |
+
<b><?php esc_html_e( 'Further options', 'sitemap' ); ?>:</b>
|
1422 |
+
<ul>
|
1423 |
+
<li>
|
1424 |
+
<label for='sm_in_lastmod'>
|
1425 |
+
<input type='checkbox' id='sm_in_lastmod' name='sm_in_lastmod' <?php echo ( $this->sg->get_option( 'in_lastmod' ) === true ? 'checked=\'checked\'' : '' ); ?> />
|
1426 |
+
<?php esc_html_e( 'Include the last modification time.', 'sitemap' ); ?>
|
1427 |
+
</label><br />
|
1428 |
+
<small>
|
1429 |
+
<?php
|
1430 |
+
$arr = array(
|
1431 |
+
'i' => array(),
|
1432 |
+
);
|
1433 |
+
echo wp_kses( __( 'This is highly recommended and helps the search engines to know when your content has changed. This option affects <i>all</i> sitemap entries.', 'sitemap' ), $arr );
|
1434 |
+
?>
|
1435 |
+
</small>
|
1436 |
+
</li>
|
1437 |
+
</ul>
|
1438 |
+
<ul>
|
1439 |
+
<li>
|
1440 |
+
<label for='sm_links_page'>
|
1441 |
+
<b><?php esc_html_e( 'Links per page', 'sitemap' ); ?>:</b>
|
1442 |
+
<input type='number' name='sm_links_page' id='sm_links_page' style='width:50px; margin-left:10px;' value='<?php echo esc_attr( $this->sg->get_option( 'links_page' ) ); ?>' />
|
1443 |
+
</label>
|
1444 |
+
</li>
|
1445 |
+
</ul>
|
1446 |
+
|
1447 |
+
<?php $this->html_print_box_footer(); ?>
|
1448 |
+
|
1449 |
+
<!-- Excluded Items -->
|
1450 |
+
<?php $this->html_print_box_header( 'sm_excludes', __( 'Excluded Items', 'sitemap' ) ); ?>
|
1451 |
+
|
1452 |
+
<b><?php esc_html_e( 'Excluded categories', 'sitemap' ); ?>:</b>
|
1453 |
+
|
1454 |
+
<div style='border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; margin:5px 0px 5px 40px; overflow:auto; padding:0.5em 0.5em;'>
|
1455 |
+
<ul>
|
1456 |
+
<?php wp_category_checklist( 0, 0, $this->sg->get_option( 'b_exclude_cats' ), false ); ?>
|
1457 |
+
</ul>
|
1458 |
+
<ul>
|
1459 |
+
<?php
|
1460 |
+
$defaults = array(
|
1461 |
+
'descendants_and_self' => 0,
|
1462 |
+
'selected_cats' => $this->sg->get_option( 'b_exclude_cats' ),
|
1463 |
+
'popular_cats' => false,
|
1464 |
+
'walker' => null,
|
1465 |
+
'taxonomy' => 'product_cat',
|
1466 |
+
'checked_ontop' => true,
|
1467 |
+
'echo' => true,
|
1468 |
+
);
|
1469 |
+
wp_terms_checklist( 0, $defaults );
|
1470 |
+
?>
|
1471 |
+
</ul>
|
1472 |
+
<?php
|
1473 |
+
$taxonomies = $this->sg->get_custom_taxonomies();
|
1474 |
+
foreach ( $taxonomies as $key => $taxonomy ) {
|
1475 |
+
?>
|
1476 |
+
<ul>
|
1477 |
+
<?php
|
1478 |
+
$defaults = array(
|
1479 |
+
'descendants_and_self' => 0,
|
1480 |
+
'selected_cats' => $this->sg->get_option( 'b_exclude_cats' ),
|
1481 |
+
'popular_cats' => false,
|
1482 |
+
'walker' => null,
|
1483 |
+
'taxonomy' => $taxonomy,
|
1484 |
+
'checked_ontop' => true,
|
1485 |
+
'echo' => true,
|
1486 |
+
);
|
1487 |
+
wp_terms_checklist( 0, $defaults );
|
1488 |
+
?>
|
1489 |
+
</ul>
|
1490 |
+
<?php
|
1491 |
+
|
1492 |
+
}
|
1493 |
+
?>
|
1494 |
+
</div>
|
1495 |
+
<b><?php esc_html_e( 'Exclude posts', 'sitemap' ); ?>:</b>
|
1496 |
+
<div style='margin:5px 0 13px 40px;'>
|
1497 |
+
<label for='sm_b_exclude'><?php esc_html_e( 'Exclude the following posts or pages:', 'sitemap' ); ?> <small><?php esc_html_e( 'List of IDs, separated by comma', 'sitemap' ); ?></small><br />
|
1498 |
+
<input name="sm_b_exclude" id="sm_b_exclude" type="text" style="width:400px;" value="<?php echo esc_attr( implode( ',', $this->sg->get_option( 'b_exclude' ) ) ); ?>" /></label><br />
|
1499 |
+
<cite><?php esc_html_e( 'Note', 'sitemap' ); ?>: <?php esc_html_e( 'Child posts won\'t be excluded automatically!', 'sitemap' ); ?></cite>
|
1500 |
+
</div>
|
1501 |
+
|
1502 |
+
<?php $this->html_print_box_footer(); ?>
|
1503 |
+
|
1504 |
+
<!-- Change frequencies -->
|
1505 |
+
<?php $this->html_print_box_header( 'sm_change_frequencies', __( 'Change Frequencies', 'sitemap' ) ); ?>
|
1506 |
+
|
1507 |
+
<p>
|
1508 |
+
<b><?php esc_html_e( 'Note', 'sitemap' ); ?>:</b>
|
1509 |
+
<?php esc_html_e( 'Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \'hourly\' less frequently than that, and they may crawl pages marked \'yearly\' more frequently than that. It is also likely that crawlers will periodically crawl pages marked \'never\' so that they can handle unexpected changes to those pages.', 'sitemap' ); ?>
|
1510 |
+
</p>
|
1511 |
+
<ul>
|
1512 |
+
<li>
|
1513 |
+
<label for='sm_cf_home'>
|
1514 |
+
<select id='sm_cf_home' name='sm_cf_home'><?php $this->html_get_freq_names( $this->sg->get_option( 'cf_home' ) ); ?></select>
|
1515 |
+
<?php esc_html_e( 'Homepage', 'sitemap' ); ?>
|
1516 |
+
</label>
|
1517 |
+
</li>
|
1518 |
+
<li>
|
1519 |
+
<label for='sm_cf_posts'>
|
1520 |
+
<select id='sm_cf_posts' name='sm_cf_posts'><?php $this->html_get_freq_names( $this->sg->get_option( 'cf_posts' ) ); ?></select>
|
1521 |
+
<?php esc_html_e( 'Posts', 'sitemap' ); ?>
|
1522 |
+
</label>
|
1523 |
+
</li>
|
1524 |
+
<li>
|
1525 |
+
<label for='sm_cf_pages'>
|
1526 |
+
<select id='sm_cf_pages' name='sm_cf_pages'><?php $this->html_get_freq_names( $this->sg->get_option( 'cf_pages' ) ); ?></select>
|
1527 |
+
<?php esc_html_e( 'Static pages', 'sitemap' ); ?>
|
1528 |
+
</label>
|
1529 |
+
</li>
|
1530 |
+
<li>
|
1531 |
+
<label for='sm_cf_cats'>
|
1532 |
+
<select id='sm_cf_cats' name='sm_cf_cats'><?php $this->html_get_freq_names( $this->sg->get_option( 'cf_cats' ) ); ?></select>
|
1533 |
+
<?php esc_html_e( 'Categories', 'sitemap' ); ?>
|
1534 |
+
</label>
|
1535 |
+
</li>
|
1536 |
+
<li>
|
1537 |
+
<label for='sm_cf_product_cat'>
|
1538 |
+
<select id='sm_cf_product_cat' name='sm_cf_product_cat'><?php $this->html_get_freq_names( $this->sg->get_option( 'cf_product_cat' ) ); ?></select>
|
1539 |
+
<?php esc_html_e( 'Product Categories', 'sitemap' ); ?>
|
1540 |
+
</label>
|
1541 |
+
</li>
|
1542 |
+
<li>
|
1543 |
+
<label for='sm_cf_arch_curr'>
|
1544 |
+
<select id='sm_cf_arch_curr' name='sm_cf_arch_curr'><?php $this->html_get_freq_names( $this->sg->get_option( 'cf_arch_curr' ) ); ?></select>
|
1545 |
+
<?php esc_html_e( 'The current archive of this month (Should be the same like your homepage)', 'sitemap' ); ?>
|
1546 |
+
</label>
|
1547 |
+
</li>
|
1548 |
+
<li>
|
1549 |
+
<label for='sm_cf_arch_old'>
|
1550 |
+
<select id='sm_cf_arch_old' name='sm_cf_arch_old'><?php $this->html_get_freq_names( $this->sg->get_option( 'cf_arch_old' ) ); ?></select>
|
1551 |
+
<?php esc_html_e( 'Older archives (Changes only if you edit an old post)', 'sitemap' ); ?>
|
1552 |
+
</label>
|
1553 |
+
</li>
|
1554 |
+
<?php if ( $this->sg->is_taxonomy_supported() ) : ?>
|
1555 |
+
<li>
|
1556 |
+
<label for='sm_cf_tags'>
|
1557 |
+
<select id='sm_cf_tags' name='sm_cf_tags'><?php $this->html_get_freq_names( $this->sg->get_option( 'cf_tags' ) ); ?></select>
|
1558 |
+
<?php esc_html_e( 'Tag pages', 'sitemap' ); ?>
|
1559 |
+
</label>
|
1560 |
+
</li>
|
1561 |
+
<?php endif; ?>
|
1562 |
+
<li>
|
1563 |
+
<label for='sm_cf_auth'>
|
1564 |
+
<select id='sm_cf_auth' name='sm_cf_auth'><?php $this->html_get_freq_names( $this->sg->get_option( 'cf_auth' ) ); ?></select>
|
1565 |
+
<?php esc_html_e( 'Author pages', 'sitemap' ); ?>
|
1566 |
+
</label>
|
1567 |
+
</li>
|
1568 |
+
</ul>
|
1569 |
+
|
1570 |
+
<?php $this->html_print_box_footer(); ?>
|
1571 |
+
|
1572 |
+
<!-- Priorities -->
|
1573 |
+
<?php $this->html_print_box_header( 'sm_priorities', __( 'Priorities', 'sitemap' ) ); ?>
|
1574 |
+
<ul>
|
1575 |
+
<li>
|
1576 |
+
<label for='sm_pr_home'>
|
1577 |
+
<select id='sm_pr_home' name='sm_pr_home'><?php $this->html_get_priority_values( $this->sg->get_option( 'pr_home' ) ); ?></select>
|
1578 |
+
<?php esc_html_e( 'Homepage', 'sitemap' ); ?>
|
1579 |
+
</label>
|
1580 |
+
</li>
|
1581 |
+
<li>
|
1582 |
+
|
1583 |
+
<label for='sm_pr_posts'>
|
1584 |
+
<select id='sm_pr_posts' name='sm_pr_posts'><?php $this->html_get_priority_values( $this->sg->get_option( 'pr_posts' ) ); ?></select>
|
1585 |
+
<?php esc_html_e( 'Posts (If auto calculation is disabled)', 'sitemap' ); ?>
|
1586 |
+
</label>
|
1587 |
+
</li>
|
1588 |
+
<li>
|
1589 |
+
|
1590 |
+
<label for='sm_pr_posts_min'>
|
1591 |
+
<select id='sm_pr_posts_min' name='sm_pr_posts_min'><?php $this->html_get_priority_values( $this->sg->get_option( 'pr_posts_min' ) ); ?></select>
|
1592 |
+
<?php esc_html_e( 'Minimum post priority (Even if auto calculation is enabled)', 'sitemap' ); ?>
|
1593 |
+
</label>
|
1594 |
+
</li>
|
1595 |
+
<li>
|
1596 |
+
|
1597 |
+
<label for='sm_pr_pages'>
|
1598 |
+
<select id='sm_pr_pages' name='sm_pr_pages'><?php $this->html_get_priority_values( $this->sg->get_option( 'pr_pages' ) ); ?></select>
|
1599 |
+
<?php esc_html_e( 'Static pages', 'sitemap' ); ?>
|
1600 |
+
</label>
|
1601 |
+
</li>
|
1602 |
+
<li>
|
1603 |
+
<label for='sm_pr_cats'>
|
1604 |
+
<select id='sm_pr_cats' name='sm_pr_cats'><?php $this->html_get_priority_values( $this->sg->get_option( 'pr_cats' ) ); ?></select>
|
1605 |
+
<?php esc_html_e( 'Categories', 'sitemap' ); ?>
|
1606 |
+
</label>
|
1607 |
+
</li>
|
1608 |
+
<li>
|
1609 |
+
<label for='sm_pr_product_cat'>
|
1610 |
+
<select id='sm_pr_product_cat' name='sm_pr_product_cat'><?php $this->html_get_priority_values( $this->sg->get_option( 'pr_product_cat' ) ); ?></select>
|
1611 |
+
<?php esc_html_e( 'Product Categories', 'sitemap' ); ?>
|
1612 |
+
</label>
|
1613 |
+
</li>
|
1614 |
+
<li>
|
1615 |
+
<label for='sm_pr_arch'>
|
1616 |
+
<select id='sm_pr_arch' name='sm_pr_arch'><?php $this->html_get_priority_values( $this->sg->get_option( 'pr_arch' ) ); ?></select>
|
1617 |
+
<?php esc_html_e( 'Archives', 'sitemap' ); ?>
|
1618 |
+
</label>
|
1619 |
+
</li>
|
1620 |
+
<?php if ( $this->sg->is_taxonomy_supported() ) : ?>
|
1621 |
+
<li>
|
1622 |
+
<label for='sm_pr_tags'>
|
1623 |
+
<select id='sm_pr_tags' name='sm_pr_tags'><?php $this->html_get_priority_values( $this->sg->get_option( 'pr_tags' ) ); ?></select>
|
1624 |
+
<?php esc_html_e( 'Tag pages', 'sitemap' ); ?>
|
1625 |
+
</label>
|
1626 |
+
</li>
|
1627 |
+
<?php endif; ?>
|
1628 |
+
<li>
|
1629 |
+
|
1630 |
+
<label for='sm_pr_auth'>
|
1631 |
+
<select id='sm_pr_auth' name='sm_pr_auth'><?php $this->html_get_priority_values( $this->sg->get_option( 'pr_auth' ) ); ?></select>
|
1632 |
+
<?php esc_html_e( 'Author pages', 'sitemap' ); ?>
|
1633 |
+
</label>
|
1634 |
+
</li>
|
1635 |
+
</ul>
|
1636 |
+
|
1637 |
+
<?php $this->html_print_box_footer(); ?>
|
1638 |
+
|
1639 |
+
</div>
|
1640 |
+
<div>
|
1641 |
+
<p class='submit'>
|
1642 |
+
<?php wp_nonce_field( 'sitemap' ); ?>
|
1643 |
+
<input type='submit' class='button-primary' name='sm_update' value='<?php esc_html_e( 'Update options', 'sitemap' ); ?>' />
|
1644 |
+
<input type='submit' onclick='return confirm('Do you really want to reset your configuration?');' class='sm_warning' name='sm_reset_config' value='<?php esc_html_e( 'Reset options', 'sitemap' ); ?>' />
|
1645 |
+
</p>
|
1646 |
+
</div>
|
1647 |
+
|
1648 |
+
|
1649 |
+
</div>
|
1650 |
+
</div>
|
1651 |
+
</div>
|
1652 |
+
<!-- <script type='text/javascript'>
|
1653 |
+
console.log('type of funiton', typeof sm_loadPages)
|
1654 |
+
if (typeof(sm_loadPages) == 'function') addLoadEvent(sm_loadPages);
|
1655 |
+
</script> -->
|
1656 |
+
</form>
|
1657 |
+
<form action='https://www.paypal.com/cgi-bin/webscr' method='post' id='sm_donate_form'>
|
1658 |
+
<?php
|
1659 |
+
$lc = array(
|
1660 |
+
'en' => array(
|
1661 |
+
'cc' => 'USD',
|
1662 |
+
'lc' => 'US',
|
1663 |
+
),
|
1664 |
+
'en-GB' => array(
|
1665 |
+
'cc' => 'GBP',
|
1666 |
+
'lc' => 'GB',
|
1667 |
+
),
|
1668 |
+
'de' => array(
|
1669 |
+
'cc' => 'EUR',
|
1670 |
+
'lc' => 'DE',
|
1671 |
+
),
|
1672 |
+
);
|
1673 |
+
$my_lc = $lc['en'];
|
1674 |
+
$wpl = get_bloginfo( 'language' );
|
1675 |
+
if ( ! empty( $wpl ) ) {
|
1676 |
+
if ( array_key_exists( $wpl, $lc ) ) {
|
1677 |
+
$my_lc = $lc[ $wpl ];
|
1678 |
+
} else {
|
1679 |
+
$wpl = substr( $wpl, 0, 2 );
|
1680 |
+
if ( array_key_exists( $wpl, $lc ) ) {
|
1681 |
+
$my_lc = $lc[ $wpl ];
|
1682 |
+
}
|
1683 |
+
}
|
1684 |
+
}
|
1685 |
+
?>
|
1686 |
+
<input type='hidden' name='cmd' value='_donations' />
|
1687 |
+
<input type='hidden' name='business' value='<?php echo 'xmlsitemapgen' /* N O S P A M */ . '@gmail.com'; ?>' />
|
1688 |
+
<input type='hidden' name='item_name' value='Sitemap Generator for WordPress. Please tell me if if you don't want to be listed on the donator list.' />
|
1689 |
+
<input type='hidden' name='no_shipping' value='1' />
|
1690 |
+
<input type='hidden' name='return' value='<?php echo esc_attr( $this->sg->get_back_link( '&sm_donated=true' ) ); ?>' />
|
1691 |
+
<input type='hidden' name='currency_code' value='<?php echo esc_attr( $my_lc['cc'] ); ?>' />
|
1692 |
+
<input type='hidden' name='bn' value='PP-BuyNowBF' />
|
1693 |
+
<input type='hidden' name='lc' value='<?php echo esc_attr( $my_lc['lc'] ); ?>' />
|
1694 |
+
<input type='hidden' name='rm' value='2' />
|
1695 |
+
<input type='hidden' name='on0' value='Your Website' />
|
1696 |
+
<input type='hidden' name='os0' value='<?php echo esc_attr( get_bloginfo( 'url' ) ); ?>' />
|
1697 |
+
</form>
|
1698 |
+
</div>
|
1699 |
+
<?php
|
1700 |
+
}
|
1701 |
+
}
|
documentation.txt
CHANGED
@@ -1,412 +1,414 @@
|
|
1 |
-
|
2 |
-
==============================================================================
|
3 |
-
|
4 |
-
This generator will create a sitemaps.org compliant sitemap of your WordPress site.
|
5 |
-
Currently homepage, posts, static pages, categories, archives and author pages are supported.
|
6 |
-
|
7 |
-
The priority of a post depends on its comments. You can choose the way the priority
|
8 |
-
is calculated in the options screen.
|
9 |
-
|
10 |
-
Feel free to visit my website under www.arnebrachhold.de or contact me at
|
11 |
-
himself [at] arnebrachhold [dot] de
|
12 |
-
|
13 |
-
Have fun!
|
14 |
-
Arne
|
15 |
-
|
16 |
-
Installation:
|
17 |
-
==============================================================================
|
18 |
-
1. Upload the full directory into your wp-content/plugins directory
|
19 |
-
2. Activate the plugin at the plugin administration page
|
20 |
-
3. Open the plugin configuration page, which is located under Settings -> XML-Sitemap and customize settings like priorities and change frequencies.
|
21 |
-
4. The plugin will automatically update your sitemap of you publish a post, so theres nothing more to do :)
|
22 |
-
|
23 |
-
|
24 |
-
Additional contributors:
|
25 |
-
==============================================================================
|
26 |
-
Inspiration Michael Nguyen http://www.socialpatterns.com/
|
27 |
-
SQL Improvements Rodney Shupe http://www.shupe.ca/
|
28 |
-
Japanse Lang. File Hirosama http://hiromasa.zone.ne.jp/
|
29 |
-
Spanish lang. File Omi http://equipajedemano.info/
|
30 |
-
Italian lang. File Stefano Aglietti http://wordpress-it.it/
|
31 |
-
Trad.Chinese File Kirin Lin http://kirin-lin.idv.tw/
|
32 |
-
Simpl.Chinese File june6 http://www.june6.cn/
|
33 |
-
Swedish Lang. File Tobias Bergius http://tobiasbergius.se/
|
34 |
-
Czech Lang. File Peter Kahoun http://kahi.cz
|
35 |
-
Finnish Lang. File Olli Jarva http://kuvat.blog.olli.jarva.fi/
|
36 |
-
Belorussian Lang. File Marcis Gasuns
|
37 |
-
Bulgarian Lang. File Alexander Dichev http://dichev.com
|
38 |
-
|
39 |
-
Thanks to all contributors and bug reporters! There were much more people involved
|
40 |
-
in testing this plugin and reporting bugs, either by email or in the WordPress forums.
|
41 |
-
|
42 |
-
Unfortunately I can't maintain a whole list here, but thanks again to everybody not listed here!
|
43 |
-
|
44 |
-
|
45 |
-
Release History:
|
46 |
-
==============================================================================
|
47 |
-
2005-06-05 1.0 First release
|
48 |
-
2005-06-05 1.1 Added archive support
|
49 |
-
2005-06-05 1.2 Added category support
|
50 |
-
2005-06-05 2.0a Beta: Real Plugin! Static file generation, Admin UI
|
51 |
-
2005-06-05 2.0 Various fixes, more help, more comments, configurable filename
|
52 |
-
2005-06-07 2.01 Fixed 2 Bugs: 147 is now _e(strval($i)); instead of _e($i); 344 uses a full < ?php instead of < ?
|
53 |
-
Thanks to Christian Aust for reporting this :)
|
54 |
-
2005-06-07 2.1 Correct usage of last modification date for cats and archives (thx to Rodney Shupe (http://www.shupe.ca/))
|
55 |
-
Added support for .gz generation
|
56 |
-
Fixed bug which ignored different post/page priorities
|
57 |
-
Should support now different wordpress/admin directories
|
58 |
-
2005-06-07 2.11 Fixed bug with hardcoded table table names instead of the $wpd vars
|
59 |
-
2005-06-07 2.12 Changed SQL Statement of the categories to get it work on MySQL 3
|
60 |
-
2005-06-08 2.2 Added language file support:
|
61 |
-
- Japanese Language Files and code modifications by hiromasa (http://hiromasa.zone.ne.jp/)
|
62 |
-
- German Language File by Arne Brachhold (http://www.arnebrachhold.de)
|
63 |
-
2005-06-14 2.5 Added support for external pages
|
64 |
-
Added support for Google Ping
|
65 |
-
Added the minimum Post Priority option
|
66 |
-
Added Spanish Language File by César Gómez Martín (http://www.cesargomez.org/)
|
67 |
-
Added Italian Language File by Stefano Aglietti (http://wordpress-it.it/)
|
68 |
-
Added Traditional Chine Language File by Kirin Lin (http://kirin-lin.idv.tw/)
|
69 |
-
2005-07-03 2.6 Added support to store the files at a custom location
|
70 |
-
Changed the home URL to have a slash at the end
|
71 |
-
Required admin-functions.php so the script will work with external calls, wp-mail for example
|
72 |
-
Added support for other plugins to add content to the sitemap via add_filter()
|
73 |
-
2005-07-20 2.7 Fixed wrong date format in additional pages
|
74 |
-
Added Simplified Chinese Language Files by june6 (http://www.june6.cn/)
|
75 |
-
Added Swedish Language File by Tobias Bergius (http://tobiasbergius.se/)
|
76 |
-
2006-01-07 3.0b Added different priority calculation modes and introduced an API to create custom ones
|
77 |
-
Added support to use the Popularity Contest plugin by Alex King to calculate post priority
|
78 |
-
Added Button to restore default configuration
|
79 |
-
Added several links to homepage and support
|
80 |
-
Added option to exclude password protected posts
|
81 |
-
Added function to start sitemap creation via GET and a secret key
|
82 |
-
Posts and pages marked for publish with a date in the future won't be included
|
83 |
-
Improved compatiblity with other plugins
|
84 |
-
Improved speed and optimized settings handling
|
85 |
-
Improved user-interface
|
86 |
-
Recoded plugin architecture which is now fully OOP
|
87 |
-
2006-01-07 3.0b1 Changed the way for hook support to be PHP5 and PHP4 compatible
|
88 |
-
Readded support for tools like w.Bloggar
|
89 |
-
Fixed "doubled-content" bug with WP2
|
90 |
-
Added xmlns to enable validation
|
91 |
-
2006-03-01 3.0b3 More performance
|
92 |
-
More caching
|
93 |
-
Better support for Popularity Contest and WP 2.x
|
94 |
-
2006-11-16 3.0b4 Fixed bug with option SELECTS
|
95 |
-
Decreased memory usage which should solve timeout and memory problems
|
96 |
-
Updated namespace to support YAHOO and MSN
|
97 |
-
2007-01-19 3.0b5 Javascripted page editor
|
98 |
-
WP 2 Design
|
99 |
-
YAHOO notification
|
100 |
-
New status report, removed ugly logfiles
|
101 |
-
Better Popularity Contest Support
|
102 |
-
Fixed double backslashes on windows systems
|
103 |
-
Added option to specify time limit and memory limit
|
104 |
-
Added option to define a XSLT stylesheet and added a default one
|
105 |
-
Fixed bug with sub-pages. Thanks to:
|
106 |
-
- Mike Baptiste (http://baptiste.us),
|
107 |
-
- Peter Claus Lamprecht (http://fastagent.de)
|
108 |
-
- Glenn Nicholas (http://publicityship.com.au)
|
109 |
-
Improved file handling, thanks to VJTD3 (http://www.VJTD3.com)
|
110 |
-
WP 2.1 improvements
|
111 |
-
2007-01-23 3.0b6 Use memory_get_peak_usage instead of memory_get_usage if available
|
112 |
-
Removed the usage of REQUEST_URI since it not correct in all environments
|
113 |
-
Fixed that sitemap.xml.gz was not compressed
|
114 |
-
Added compat function "stripos" for PHP4 (Thanks to Joseph Abboud!)
|
115 |
-
Streamlined some code
|
116 |
-
2007-05-17 3.0b7 Added option to include the author pages like /author/john
|
117 |
-
Small enhancements, removed stripos dependency and the added compat function
|
118 |
-
Added check to not build the sitemap if importing posts
|
119 |
-
Fixed missing domain parameter for translator name
|
120 |
-
Fixed WP 2.1 / Pre 2.1 post / pages database changes
|
121 |
-
Fixed wrong XSLT location (Thanks froosh)
|
122 |
-
Added Ask.com notification
|
123 |
-
Removed unused javascript
|
124 |
-
2007-07-22 3.0b8 Changed category SQL to prevent unused cats from beeing included
|
125 |
-
Plugin will be loaded on "init" instead of direclty after the file has been loaded.
|
126 |
-
Added support for robots.txt modification
|
127 |
-
Switched YAHOO ping API from YAHOO Web Services to the "normal" ping service which doesn't require an app id
|
128 |
-
Search engines will only be pinged if the sitemap file has changed
|
129 |
-
2007-09-02 3.0b9 Added tag support for WordPress 2.3
|
130 |
-
Now using post_date_gmt instead of post_date everywhere
|
131 |
-
Fixed archive bug with static pages (Thanks to Peter Claus Lamprecht)
|
132 |
-
Fixed some missing translation domains, thanks to Kirin Lin!
|
133 |
-
Added Czech translation files for 2.7.1, thanks to Peter Kahoun (http://kahi.cz)
|
134 |
-
2007-09-04 3.0b10 Added category support for WordPress 2.3
|
135 |
-
Fixed bug with empty URLs in sitemap
|
136 |
-
Repaired GET building
|
137 |
-
Added more info on debug mode
|
138 |
-
2007-09-23 3.0b11 Changed mysql queries to unbuffered queries
|
139 |
-
Uses MUCH less memory
|
140 |
-
Fixed really stupid bug with search engine pings
|
141 |
-
Option to set how many posts will be included
|
142 |
-
2007-09-24 3.0 Yeah, 3.0 Final after one and a half year ;)
|
143 |
-
Removed useless functions
|
144 |
-
2007-11-03 3.0.1 Using the Snoopy HTTP client for ping requests instead of wp_remote_fopen
|
145 |
-
Fixed undefined translation strings
|
146 |
-
Added "safemode" for SQL which doesn't use unbuffered results (old style)
|
147 |
-
Added option to run the building process in background using wp-cron
|
148 |
-
Removed unnecessary function_exists, Thanks to user00265
|
149 |
-
Added links to test the ping if it failed.
|
150 |
-
2007-11-25 3.0.2 Fixed bug which caused that some settings were not saved correctly
|
151 |
-
Added option to exclude pages or post by ID
|
152 |
-
Restored YAHOO ping service with API key since the other one is to unreliable. (see 3.0b8)
|
153 |
-
2007-11-28 3.0.2.1 Fixed wrong XML Schema Location (Thanks to Emanuele Tessore)
|
154 |
-
Added Russian Language files by Sergey http://ryvkin.ru
|
155 |
-
2007-12-30 3.0.3 Added Live Search Ping
|
156 |
-
Removed some hooks which rebuilt the sitemap with every comment
|
157 |
-
2008-03-30 3.0.3.1 Added compatibility CSS for WP 2.5
|
158 |
-
2008-04-28 3.0.3.2 Improved WP 2.5 handling
|
159 |
-
2008-04-29 3.0.3.3 Fixed author pages
|
160 |
-
Enhanced background building and increased delay to 15 seconds
|
161 |
-
Background building is enabled by default
|
162 |
-
2008-04-28 3.1b1 Reorganized files in builder, loader and UI
|
163 |
-
Added 2 step loader so only code that's needed will be loaded
|
164 |
-
Improved WP 2.5 handling
|
165 |
-
Secured all admin actions with nonces
|
166 |
-
2008-05-18 3.1b2 Fixed critical bug with the build in background option
|
167 |
-
Added notification if a build is scheduled
|
168 |
-
2008-05-19 3.1b3 Cleaned up plugin directory and moved asset files to subfolders
|
169 |
-
Fixed background building bug in WP 2.1
|
170 |
-
Removed auto-update plugin link for WP < 2.5
|
171 |
-
2008-05-22 3.1 Marked as 3.1 stable, updated documentation
|
172 |
-
2008-05-27 3.1.0.1 Extracted UI JS to external file
|
173 |
-
Enabled the option to include following pages of multi-page posts
|
174 |
-
Script tries to raise memory and time limit if active
|
175 |
-
2008-12-21 3.1.1 Fixed redirect issue if wp-admin is rewritten via mod_rewrite, thanks to macjoost
|
176 |
-
Fixed wrong path to assets, thanks PozHonks
|
177 |
-
Fixed wrong plugin URL if wp-content was renamed / redirected, thanks to wnorris
|
178 |
-
Updated WP User Interface for 2.7
|
179 |
-
Various other small things
|
180 |
-
2008-12-26 3.1.2 Changed the way the stylesheet is saved (default / custom stylesheet)
|
181 |
-
Sitemap is now build when page is published
|
182 |
-
Removed support for static robots.txt files, this is now handled via WordPress
|
183 |
-
Added compat. exceptions for WP 2.0 and WP 2.1
|
184 |
-
2009-06-07 3.1.3 Changed MSN Live Search to Bing
|
185 |
-
Exclude categories also now exludes the category itself and not only the posts
|
186 |
-
Pings now use the new WordPress HTTP API instead of Snoopy
|
187 |
-
Fixed bug that in localized WP installations priorities could not be saved.
|
188 |
-
The sitemap cron job is now cleared after a manual rebuild or after changing the config
|
189 |
-
Adjusted style of admin area for WP 2.8 and refreshed icons
|
190 |
-
Disabled the "Exclude categories" feature for WP 2.5.1, since it doesn't have the required functions yet
|
191 |
-
2009-06-22 3.1.4 Fixed bug which broke all pings in WP < 2.7
|
192 |
-
Added more output in debug mode if pings fail
|
193 |
-
Moved global post definitions for other plugins
|
194 |
-
Added small icon for ozh admin menu
|
195 |
-
Added more help links in UI
|
196 |
-
2009-08-24 3.1.5 Added option to completely disable the last modification time
|
197 |
-
Fixed bug regarding the use of the HTTPS url for the XSL stylesheet if the sitemap was build via the admin panel
|
198 |
-
Improved handling of homepage if a single page was set for it
|
199 |
-
Fixed mktime warning which appeared sometimes
|
200 |
-
Fixed bug which caused inf. reloads after rebuilding the sitemap via the admin panel
|
201 |
-
Improved handling of missing sitemaps files if WP was moved to another location
|
202 |
-
2009-08-31 3.1.6 Fixed PHP error "Only variables can be passed by reference"
|
203 |
-
Fixed wrong URLS of multi-page posts (Thanks artstorm!)
|
204 |
-
2009-10-21 3.1.7 Added support for custom taxonomies (Thanks to Lee!)
|
205 |
-
2009-11-07 3.1.8 Improved custom taxonomy handling and fixed wrong last modification date
|
206 |
-
Changed readme and backlinks
|
207 |
-
Fixed fatal error in WP < 2.3
|
208 |
-
Fixed Update Notice in WP 2.8+
|
209 |
-
Added warning if blog privacy is activated
|
210 |
-
Fixed custom URLs priorities were shown as 0 instead of 1
|
211 |
-
2009-11-13 3.1.9 Fixed MySQL Error if author pages were included
|
212 |
-
2009-11-23 3.2 Added function to show the actual results of a ping instead of only linking to the url
|
213 |
-
Added new hook (sm_rebuild) for third party plugins to start building the sitemap
|
214 |
-
Fixed bug which showed the wrong URL for the latest Google ping result
|
215 |
-
Added some missing phpdoc documentation
|
216 |
-
Removed hardcoded php name for sitemap file for admin urls
|
217 |
-
Uses KSES for showing ping test results
|
218 |
-
Ping test fixed for WP < 2.3
|
219 |
-
2009-12-16 3.2.1 Notes and update messages could interfere with the redirect after manual build
|
220 |
-
Help Links in the WP context help were not shown anymore since last update
|
221 |
-
IE 7 sometimes displayed a cached admin page
|
222 |
-
Removed invalid link to config page from the plugin description (This resulted in a "Not enough permission error")
|
223 |
-
Improved performance of getting the current plugin version with caching
|
224 |
-
Updated Spanish language files
|
225 |
-
2009-12-19 3.2.2 Fixed PHP4 problems
|
226 |
-
2010-04-02 3.2.3 Fixed that all pages were not included in the sitemap if the "Uncategorized" category was excluded
|
227 |
-
2010-05-29 3.2.4 Fixed more deprecated function calls
|
228 |
-
Added (GMT) to sitemap xslt template to avoid confusion with time zone
|
229 |
-
Added warning and don't activate plugin if multisite mode is enabled (this mode is NOT tested yet)
|
230 |
-
Changed get_bloginfo('siteurl') to get_bloginfo('url') to avoid deprecation warning
|
231 |
-
Changed has_cap(10) to has_cap('level_10') to avoid deprecation warning
|
232 |
-
Fixed wrong SQL statement for author pages (Ticket #1108), thanks to twoenough
|
233 |
-
2010-07-11 3.2.5 Backported Bing ping success fix from beta
|
234 |
-
Added friendly hint to try out the new beta
|
235 |
-
2010-09-19 3.2.6 Removed YAHOO ping since YAHOO uses bing now
|
236 |
-
Removed deprecated function call
|
237 |
-
2012-04-24 3.2.7 Fixed custom post types, thanks to clearsite of the wordpress.org forum!
|
238 |
-
Fixed broken admin layout on WP 3.4
|
239 |
-
2012-08-08 3.2.8 Fixed wrong custom taxonomy URLs, thanks to ramon fincken of the wordpress.org forum!
|
240 |
-
Removed ASK ping since they shut down their service.
|
241 |
-
Exclude post_format taxonomy from custom taxonomy list
|
242 |
-
2013-01-11 3.2.9 Fixed security issue with change frequencies and filename of sitemap file. Exploit was only possible for admin accounts.
|
243 |
-
2013-09-28 3.3 Fixed problem with file permission checking
|
244 |
-
Filter out hashs (#) in URLs
|
245 |
-
2013-11-24 3.4 Fixed deprecation warnings in PHP 5.4, thanks to Dion Hulse!
|
246 |
-
2014-03-29 4.0 No static files anymore, sitemap is created on the fly
|
247 |
-
Sitemap is split-up into sub-sitemaps by month, allowing up to 50.000 posts per month
|
248 |
-
Support for custom post types and custom taxonomis!
|
249 |
-
100% Multisite compatible, including by-blog and network activation.
|
250 |
-
Added support for mu-plugins forced-activation (see sitemap-wpmu.php for details)
|
251 |
-
Reduced server resource usage due to less content per request.
|
252 |
-
New API allows other plugins to add their own, separate sitemaps.
|
253 |
-
Raised min requirements to PHP 5.1 and WordPress 3.3
|
254 |
-
Note: This version will try to rename your old sitemap files to *-old.xml. If that doesn’t work, please delete them manually since no static files are needed anymore!
|
255 |
-
Using only wpdb instead of unbuffered queries anymore
|
256 |
-
Ping to search engines are done on WP ping
|
257 |
-
Using PHP5 syntax instead of old PHP4 OOP style
|
258 |
-
Added pre-loader which checks the requirements
|
259 |
-
Avoid the main query of WordPress (based on plugin by Michael Adams)
|
260 |
-
Avoid additional queries in post sitemaps
|
261 |
-
Added custom post types
|
262 |
-
Fixed include of static front page in pages index
|
263 |
-
Do not list "#" permalinks from placeholder plugins
|
264 |
-
Removed YAHOO pings since YAHOO doesn't have its own ping service anymore.
|
265 |
-
Sitemap doesn't state it is a feed anymore
|
266 |
-
Removed Ask.com ping since they shut down their service (who uses Ask anyway?)
|
267 |
-
2014-03-31 4.0.1 Fixed bug with custom post types including a "-"
|
268 |
-
Changed rewrite-setup to happen on init and flushing on wp_loaded to better work with other plugins
|
269 |
-
2014-04-01 4.0.2 Fixed warning if an gzip handler is already active
|
270 |
-
2014-04-13 4.0.3 Fixed compression if an gzlib handler was already active
|
271 |
-
Help regarding permalinks for Nginx users
|
272 |
-
Fix with gzip compression in case there was other output before already
|
273 |
-
Return 404 for HTML sitemaps if the option has been disabled
|
274 |
-
2014-04-19 4.0.4 Removed deprecated get_page call
|
275 |
-
Changed last modification time of sub-sitemaps to the last modification date of the posts instead of the publish date
|
276 |
-
Removed information window if the statistic option has not been activated
|
277 |
-
Added link regarding new sitemap format
|
278 |
-
Updated Portuguese translation, thanks to Pedro Martinho
|
279 |
-
Updated German translation
|
280 |
-
2014-05-18 4.0.5 Fixed issue with empty post sitemaps (related to GMT/local time offset)
|
281 |
-
Fixed some timing issues in archives
|
282 |
-
Improved check for possible problems before gzipping
|
283 |
-
Fixed empty Archives and Authors in case there were no posts
|
284 |
-
Changed content type to text/xml to improve compatibility with caching plugins
|
285 |
-
Changed query parameters to is_feed=true to improve compatibility with caching plugins
|
286 |
-
Switched from using WP_Query to load posts to a custom SQL statement to avoid problems with other plugin filters
|
287 |
-
Fixed bug which caused the Priority Provider to disappear in recent PHP versions
|
288 |
-
Cleaned up code and renamed variables to be more readable
|
289 |
-
Added caching of some SQL statements
|
290 |
-
Added support feed for more help topics
|
291 |
-
Added support for changing the base of the sitemap url to another URL (for WP installations in sub-folders)
|
292 |
-
Changed text in XSL template to be more clear about sitemap-index and sub-sitemaps
|
293 |
-
Added link to new help page
|
294 |
-
Plugin will also ping with the corresponding sub-sitemap in case a post was modified
|
295 |
-
Added function to manually start ping for main-sitemap or all sub-sitemaps
|
296 |
-
Better checking for empty externals
|
297 |
-
Updated Japanese Translation, thanks to Daisuke Takahashi
|
298 |
-
2014-06-03 4.0.6 Added option to disable automatic gzipping
|
299 |
-
Fixed bug with duplicated external sitemap entries
|
300 |
-
Updated language file template
|
301 |
-
Don't gzip if behind Varnish
|
302 |
-
Improved compatibility with caches
|
303 |
-
Ping on post edit
|
304 |
-
2014-06-23 4.0.7 Better compatibility with managed GoDaddy hosting (clear alloptions cache when generating the sitemap)
|
305 |
-
Improved checking if the sitemap should be gzipped or not (depending on ob levels)
|
306 |
-
Removed WordPress version from the sitemap
|
307 |
-
Corrected link to WordPress privacy settings
|
308 |
-
Changed hook which is being used for sitemap pings
|
309 |
-
2014-09-02 4.0.7.1Added icon for the new WP Add-Plugin page
|
310 |
-
Changed "Tested up to" to 4.0
|
311 |
-
2014-11-15 4.0.8 Fixed bug with excluded categories, thanks to Claus Schöffel!
|
312 |
-
2017-03-22 4.0.9 Fixed security issue with donation submission.
|
313 |
-
2018-12-18 4.1.0 Fixed security issues related to forms and external URLs
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
- The
|
368 |
-
- The
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
function
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
|
|
|
|
412 |
Note that you have to return the modified list!
|
1 |
+
Google XML Sitemaps Generator for WordPress
|
2 |
+
==============================================================================
|
3 |
+
|
4 |
+
This generator will create a sitemaps.org compliant sitemap of your WordPress site.
|
5 |
+
Currently homepage, posts, static pages, categories, archives and author pages are supported.
|
6 |
+
|
7 |
+
The priority of a post depends on its comments. You can choose the way the priority
|
8 |
+
is calculated in the options screen.
|
9 |
+
|
10 |
+
Feel free to visit my website under www.arnebrachhold.de or contact me at
|
11 |
+
himself [at] arnebrachhold [dot] de
|
12 |
+
|
13 |
+
Have fun!
|
14 |
+
Arne
|
15 |
+
|
16 |
+
Installation:
|
17 |
+
==============================================================================
|
18 |
+
1. Upload the full directory into your wp-content/plugins directory
|
19 |
+
2. Activate the plugin at the plugin administration page
|
20 |
+
3. Open the plugin configuration page, which is located under Settings -> XML-Sitemap and customize settings like priorities and change frequencies.
|
21 |
+
4. The plugin will automatically update your sitemap of you publish a post, so theres nothing more to do :)
|
22 |
+
|
23 |
+
|
24 |
+
Additional contributors:
|
25 |
+
==============================================================================
|
26 |
+
Inspiration Michael Nguyen http://www.socialpatterns.com/
|
27 |
+
SQL Improvements Rodney Shupe http://www.shupe.ca/
|
28 |
+
Japanse Lang. File Hirosama http://hiromasa.zone.ne.jp/
|
29 |
+
Spanish lang. File Omi http://equipajedemano.info/
|
30 |
+
Italian lang. File Stefano Aglietti http://wordpress-it.it/
|
31 |
+
Trad.Chinese File Kirin Lin http://kirin-lin.idv.tw/
|
32 |
+
Simpl.Chinese File june6 http://www.june6.cn/
|
33 |
+
Swedish Lang. File Tobias Bergius http://tobiasbergius.se/
|
34 |
+
Czech Lang. File Peter Kahoun http://kahi.cz
|
35 |
+
Finnish Lang. File Olli Jarva http://kuvat.blog.olli.jarva.fi/
|
36 |
+
Belorussian Lang. File Marcis Gasuns
|
37 |
+
Bulgarian Lang. File Alexander Dichev http://dichev.com
|
38 |
+
|
39 |
+
Thanks to all contributors and bug reporters! There were much more people involved
|
40 |
+
in testing this plugin and reporting bugs, either by email or in the WordPress forums.
|
41 |
+
|
42 |
+
Unfortunately I can't maintain a whole list here, but thanks again to everybody not listed here!
|
43 |
+
|
44 |
+
|
45 |
+
Release History:
|
46 |
+
==============================================================================
|
47 |
+
2005-06-05 1.0 First release
|
48 |
+
2005-06-05 1.1 Added archive support
|
49 |
+
2005-06-05 1.2 Added category support
|
50 |
+
2005-06-05 2.0a Beta: Real Plugin! Static file generation, Admin UI
|
51 |
+
2005-06-05 2.0 Various fixes, more help, more comments, configurable filename
|
52 |
+
2005-06-07 2.01 Fixed 2 Bugs: 147 is now _e(strval($i)); instead of _e($i); 344 uses a full < ?php instead of < ?
|
53 |
+
Thanks to Christian Aust for reporting this :)
|
54 |
+
2005-06-07 2.1 Correct usage of last modification date for cats and archives (thx to Rodney Shupe (http://www.shupe.ca/))
|
55 |
+
Added support for .gz generation
|
56 |
+
Fixed bug which ignored different post/page priorities
|
57 |
+
Should support now different wordpress/admin directories
|
58 |
+
2005-06-07 2.11 Fixed bug with hardcoded table table names instead of the $wpd vars
|
59 |
+
2005-06-07 2.12 Changed SQL Statement of the categories to get it work on MySQL 3
|
60 |
+
2005-06-08 2.2 Added language file support:
|
61 |
+
- Japanese Language Files and code modifications by hiromasa (http://hiromasa.zone.ne.jp/)
|
62 |
+
- German Language File by Arne Brachhold (http://www.arnebrachhold.de)
|
63 |
+
2005-06-14 2.5 Added support for external pages
|
64 |
+
Added support for Google Ping
|
65 |
+
Added the minimum Post Priority option
|
66 |
+
Added Spanish Language File by César Gómez Martín (http://www.cesargomez.org/)
|
67 |
+
Added Italian Language File by Stefano Aglietti (http://wordpress-it.it/)
|
68 |
+
Added Traditional Chine Language File by Kirin Lin (http://kirin-lin.idv.tw/)
|
69 |
+
2005-07-03 2.6 Added support to store the files at a custom location
|
70 |
+
Changed the home URL to have a slash at the end
|
71 |
+
Required admin-functions.php so the script will work with external calls, wp-mail for example
|
72 |
+
Added support for other plugins to add content to the sitemap via add_filter()
|
73 |
+
2005-07-20 2.7 Fixed wrong date format in additional pages
|
74 |
+
Added Simplified Chinese Language Files by june6 (http://www.june6.cn/)
|
75 |
+
Added Swedish Language File by Tobias Bergius (http://tobiasbergius.se/)
|
76 |
+
2006-01-07 3.0b Added different priority calculation modes and introduced an API to create custom ones
|
77 |
+
Added support to use the Popularity Contest plugin by Alex King to calculate post priority
|
78 |
+
Added Button to restore default configuration
|
79 |
+
Added several links to homepage and support
|
80 |
+
Added option to exclude password protected posts
|
81 |
+
Added function to start sitemap creation via GET and a secret key
|
82 |
+
Posts and pages marked for publish with a date in the future won't be included
|
83 |
+
Improved compatiblity with other plugins
|
84 |
+
Improved speed and optimized settings handling
|
85 |
+
Improved user-interface
|
86 |
+
Recoded plugin architecture which is now fully OOP
|
87 |
+
2006-01-07 3.0b1 Changed the way for hook support to be PHP5 and PHP4 compatible
|
88 |
+
Readded support for tools like w.Bloggar
|
89 |
+
Fixed "doubled-content" bug with WP2
|
90 |
+
Added xmlns to enable validation
|
91 |
+
2006-03-01 3.0b3 More performance
|
92 |
+
More caching
|
93 |
+
Better support for Popularity Contest and WP 2.x
|
94 |
+
2006-11-16 3.0b4 Fixed bug with option SELECTS
|
95 |
+
Decreased memory usage which should solve timeout and memory problems
|
96 |
+
Updated namespace to support YAHOO and MSN
|
97 |
+
2007-01-19 3.0b5 Javascripted page editor
|
98 |
+
WP 2 Design
|
99 |
+
YAHOO notification
|
100 |
+
New status report, removed ugly logfiles
|
101 |
+
Better Popularity Contest Support
|
102 |
+
Fixed double backslashes on windows systems
|
103 |
+
Added option to specify time limit and memory limit
|
104 |
+
Added option to define a XSLT stylesheet and added a default one
|
105 |
+
Fixed bug with sub-pages. Thanks to:
|
106 |
+
- Mike Baptiste (http://baptiste.us),
|
107 |
+
- Peter Claus Lamprecht (http://fastagent.de)
|
108 |
+
- Glenn Nicholas (http://publicityship.com.au)
|
109 |
+
Improved file handling, thanks to VJTD3 (http://www.VJTD3.com)
|
110 |
+
WP 2.1 improvements
|
111 |
+
2007-01-23 3.0b6 Use memory_get_peak_usage instead of memory_get_usage if available
|
112 |
+
Removed the usage of REQUEST_URI since it not correct in all environments
|
113 |
+
Fixed that sitemap.xml.gz was not compressed
|
114 |
+
Added compat function "stripos" for PHP4 (Thanks to Joseph Abboud!)
|
115 |
+
Streamlined some code
|
116 |
+
2007-05-17 3.0b7 Added option to include the author pages like /author/john
|
117 |
+
Small enhancements, removed stripos dependency and the added compat function
|
118 |
+
Added check to not build the sitemap if importing posts
|
119 |
+
Fixed missing domain parameter for translator name
|
120 |
+
Fixed WP 2.1 / Pre 2.1 post / pages database changes
|
121 |
+
Fixed wrong XSLT location (Thanks froosh)
|
122 |
+
Added Ask.com notification
|
123 |
+
Removed unused javascript
|
124 |
+
2007-07-22 3.0b8 Changed category SQL to prevent unused cats from beeing included
|
125 |
+
Plugin will be loaded on "init" instead of direclty after the file has been loaded.
|
126 |
+
Added support for robots.txt modification
|
127 |
+
Switched YAHOO ping API from YAHOO Web Services to the "normal" ping service which doesn't require an app id
|
128 |
+
Search engines will only be pinged if the sitemap file has changed
|
129 |
+
2007-09-02 3.0b9 Added tag support for WordPress 2.3
|
130 |
+
Now using post_date_gmt instead of post_date everywhere
|
131 |
+
Fixed archive bug with static pages (Thanks to Peter Claus Lamprecht)
|
132 |
+
Fixed some missing translation domains, thanks to Kirin Lin!
|
133 |
+
Added Czech translation files for 2.7.1, thanks to Peter Kahoun (http://kahi.cz)
|
134 |
+
2007-09-04 3.0b10 Added category support for WordPress 2.3
|
135 |
+
Fixed bug with empty URLs in sitemap
|
136 |
+
Repaired GET building
|
137 |
+
Added more info on debug mode
|
138 |
+
2007-09-23 3.0b11 Changed mysql queries to unbuffered queries
|
139 |
+
Uses MUCH less memory
|
140 |
+
Fixed really stupid bug with search engine pings
|
141 |
+
Option to set how many posts will be included
|
142 |
+
2007-09-24 3.0 Yeah, 3.0 Final after one and a half year ;)
|
143 |
+
Removed useless functions
|
144 |
+
2007-11-03 3.0.1 Using the Snoopy HTTP client for ping requests instead of wp_remote_fopen
|
145 |
+
Fixed undefined translation strings
|
146 |
+
Added "safemode" for SQL which doesn't use unbuffered results (old style)
|
147 |
+
Added option to run the building process in background using wp-cron
|
148 |
+
Removed unnecessary function_exists, Thanks to user00265
|
149 |
+
Added links to test the ping if it failed.
|
150 |
+
2007-11-25 3.0.2 Fixed bug which caused that some settings were not saved correctly
|
151 |
+
Added option to exclude pages or post by ID
|
152 |
+
Restored YAHOO ping service with API key since the other one is to unreliable. (see 3.0b8)
|
153 |
+
2007-11-28 3.0.2.1 Fixed wrong XML Schema Location (Thanks to Emanuele Tessore)
|
154 |
+
Added Russian Language files by Sergey http://ryvkin.ru
|
155 |
+
2007-12-30 3.0.3 Added Live Search Ping
|
156 |
+
Removed some hooks which rebuilt the sitemap with every comment
|
157 |
+
2008-03-30 3.0.3.1 Added compatibility CSS for WP 2.5
|
158 |
+
2008-04-28 3.0.3.2 Improved WP 2.5 handling
|
159 |
+
2008-04-29 3.0.3.3 Fixed author pages
|
160 |
+
Enhanced background building and increased delay to 15 seconds
|
161 |
+
Background building is enabled by default
|
162 |
+
2008-04-28 3.1b1 Reorganized files in builder, loader and UI
|
163 |
+
Added 2 step loader so only code that's needed will be loaded
|
164 |
+
Improved WP 2.5 handling
|
165 |
+
Secured all admin actions with nonces
|
166 |
+
2008-05-18 3.1b2 Fixed critical bug with the build in background option
|
167 |
+
Added notification if a build is scheduled
|
168 |
+
2008-05-19 3.1b3 Cleaned up plugin directory and moved asset files to subfolders
|
169 |
+
Fixed background building bug in WP 2.1
|
170 |
+
Removed auto-update plugin link for WP < 2.5
|
171 |
+
2008-05-22 3.1 Marked as 3.1 stable, updated documentation
|
172 |
+
2008-05-27 3.1.0.1 Extracted UI JS to external file
|
173 |
+
Enabled the option to include following pages of multi-page posts
|
174 |
+
Script tries to raise memory and time limit if active
|
175 |
+
2008-12-21 3.1.1 Fixed redirect issue if wp-admin is rewritten via mod_rewrite, thanks to macjoost
|
176 |
+
Fixed wrong path to assets, thanks PozHonks
|
177 |
+
Fixed wrong plugin URL if wp-content was renamed / redirected, thanks to wnorris
|
178 |
+
Updated WP User Interface for 2.7
|
179 |
+
Various other small things
|
180 |
+
2008-12-26 3.1.2 Changed the way the stylesheet is saved (default / custom stylesheet)
|
181 |
+
Sitemap is now build when page is published
|
182 |
+
Removed support for static robots.txt files, this is now handled via WordPress
|
183 |
+
Added compat. exceptions for WP 2.0 and WP 2.1
|
184 |
+
2009-06-07 3.1.3 Changed MSN Live Search to Bing
|
185 |
+
Exclude categories also now exludes the category itself and not only the posts
|
186 |
+
Pings now use the new WordPress HTTP API instead of Snoopy
|
187 |
+
Fixed bug that in localized WP installations priorities could not be saved.
|
188 |
+
The sitemap cron job is now cleared after a manual rebuild or after changing the config
|
189 |
+
Adjusted style of admin area for WP 2.8 and refreshed icons
|
190 |
+
Disabled the "Exclude categories" feature for WP 2.5.1, since it doesn't have the required functions yet
|
191 |
+
2009-06-22 3.1.4 Fixed bug which broke all pings in WP < 2.7
|
192 |
+
Added more output in debug mode if pings fail
|
193 |
+
Moved global post definitions for other plugins
|
194 |
+
Added small icon for ozh admin menu
|
195 |
+
Added more help links in UI
|
196 |
+
2009-08-24 3.1.5 Added option to completely disable the last modification time
|
197 |
+
Fixed bug regarding the use of the HTTPS url for the XSL stylesheet if the sitemap was build via the admin panel
|
198 |
+
Improved handling of homepage if a single page was set for it
|
199 |
+
Fixed mktime warning which appeared sometimes
|
200 |
+
Fixed bug which caused inf. reloads after rebuilding the sitemap via the admin panel
|
201 |
+
Improved handling of missing sitemaps files if WP was moved to another location
|
202 |
+
2009-08-31 3.1.6 Fixed PHP error "Only variables can be passed by reference"
|
203 |
+
Fixed wrong URLS of multi-page posts (Thanks artstorm!)
|
204 |
+
2009-10-21 3.1.7 Added support for custom taxonomies (Thanks to Lee!)
|
205 |
+
2009-11-07 3.1.8 Improved custom taxonomy handling and fixed wrong last modification date
|
206 |
+
Changed readme and backlinks
|
207 |
+
Fixed fatal error in WP < 2.3
|
208 |
+
Fixed Update Notice in WP 2.8+
|
209 |
+
Added warning if blog privacy is activated
|
210 |
+
Fixed custom URLs priorities were shown as 0 instead of 1
|
211 |
+
2009-11-13 3.1.9 Fixed MySQL Error if author pages were included
|
212 |
+
2009-11-23 3.2 Added function to show the actual results of a ping instead of only linking to the url
|
213 |
+
Added new hook (sm_rebuild) for third party plugins to start building the sitemap
|
214 |
+
Fixed bug which showed the wrong URL for the latest Google ping result
|
215 |
+
Added some missing phpdoc documentation
|
216 |
+
Removed hardcoded php name for sitemap file for admin urls
|
217 |
+
Uses KSES for showing ping test results
|
218 |
+
Ping test fixed for WP < 2.3
|
219 |
+
2009-12-16 3.2.1 Notes and update messages could interfere with the redirect after manual build
|
220 |
+
Help Links in the WP context help were not shown anymore since last update
|
221 |
+
IE 7 sometimes displayed a cached admin page
|
222 |
+
Removed invalid link to config page from the plugin description (This resulted in a "Not enough permission error")
|
223 |
+
Improved performance of getting the current plugin version with caching
|
224 |
+
Updated Spanish language files
|
225 |
+
2009-12-19 3.2.2 Fixed PHP4 problems
|
226 |
+
2010-04-02 3.2.3 Fixed that all pages were not included in the sitemap if the "Uncategorized" category was excluded
|
227 |
+
2010-05-29 3.2.4 Fixed more deprecated function calls
|
228 |
+
Added (GMT) to sitemap xslt template to avoid confusion with time zone
|
229 |
+
Added warning and don't activate plugin if multisite mode is enabled (this mode is NOT tested yet)
|
230 |
+
Changed get_bloginfo('siteurl') to get_bloginfo('url') to avoid deprecation warning
|
231 |
+
Changed has_cap(10) to has_cap('level_10') to avoid deprecation warning
|
232 |
+
Fixed wrong SQL statement for author pages (Ticket #1108), thanks to twoenough
|
233 |
+
2010-07-11 3.2.5 Backported Bing ping success fix from beta
|
234 |
+
Added friendly hint to try out the new beta
|
235 |
+
2010-09-19 3.2.6 Removed YAHOO ping since YAHOO uses bing now
|
236 |
+
Removed deprecated function call
|
237 |
+
2012-04-24 3.2.7 Fixed custom post types, thanks to clearsite of the wordpress.org forum!
|
238 |
+
Fixed broken admin layout on WP 3.4
|
239 |
+
2012-08-08 3.2.8 Fixed wrong custom taxonomy URLs, thanks to ramon fincken of the wordpress.org forum!
|
240 |
+
Removed ASK ping since they shut down their service.
|
241 |
+
Exclude post_format taxonomy from custom taxonomy list
|
242 |
+
2013-01-11 3.2.9 Fixed security issue with change frequencies and filename of sitemap file. Exploit was only possible for admin accounts.
|
243 |
+
2013-09-28 3.3 Fixed problem with file permission checking
|
244 |
+
Filter out hashs (#) in URLs
|
245 |
+
2013-11-24 3.4 Fixed deprecation warnings in PHP 5.4, thanks to Dion Hulse!
|
246 |
+
2014-03-29 4.0 No static files anymore, sitemap is created on the fly
|
247 |
+
Sitemap is split-up into sub-sitemaps by month, allowing up to 50.000 posts per month
|
248 |
+
Support for custom post types and custom taxonomis!
|
249 |
+
100% Multisite compatible, including by-blog and network activation.
|
250 |
+
Added support for mu-plugins forced-activation (see sitemap-wpmu.php for details)
|
251 |
+
Reduced server resource usage due to less content per request.
|
252 |
+
New API allows other plugins to add their own, separate sitemaps.
|
253 |
+
Raised min requirements to PHP 5.1 and WordPress 3.3
|
254 |
+
Note: This version will try to rename your old sitemap files to *-old.xml. If that doesn’t work, please delete them manually since no static files are needed anymore!
|
255 |
+
Using only wpdb instead of unbuffered queries anymore
|
256 |
+
Ping to search engines are done on WP ping
|
257 |
+
Using PHP5 syntax instead of old PHP4 OOP style
|
258 |
+
Added pre-loader which checks the requirements
|
259 |
+
Avoid the main query of WordPress (based on plugin by Michael Adams)
|
260 |
+
Avoid additional queries in post sitemaps
|
261 |
+
Added custom post types
|
262 |
+
Fixed include of static front page in pages index
|
263 |
+
Do not list "#" permalinks from placeholder plugins
|
264 |
+
Removed YAHOO pings since YAHOO doesn't have its own ping service anymore.
|
265 |
+
Sitemap doesn't state it is a feed anymore
|
266 |
+
Removed Ask.com ping since they shut down their service (who uses Ask anyway?)
|
267 |
+
2014-03-31 4.0.1 Fixed bug with custom post types including a "-"
|
268 |
+
Changed rewrite-setup to happen on init and flushing on wp_loaded to better work with other plugins
|
269 |
+
2014-04-01 4.0.2 Fixed warning if an gzip handler is already active
|
270 |
+
2014-04-13 4.0.3 Fixed compression if an gzlib handler was already active
|
271 |
+
Help regarding permalinks for Nginx users
|
272 |
+
Fix with gzip compression in case there was other output before already
|
273 |
+
Return 404 for HTML sitemaps if the option has been disabled
|
274 |
+
2014-04-19 4.0.4 Removed deprecated get_page call
|
275 |
+
Changed last modification time of sub-sitemaps to the last modification date of the posts instead of the publish date
|
276 |
+
Removed information window if the statistic option has not been activated
|
277 |
+
Added link regarding new sitemap format
|
278 |
+
Updated Portuguese translation, thanks to Pedro Martinho
|
279 |
+
Updated German translation
|
280 |
+
2014-05-18 4.0.5 Fixed issue with empty post sitemaps (related to GMT/local time offset)
|
281 |
+
Fixed some timing issues in archives
|
282 |
+
Improved check for possible problems before gzipping
|
283 |
+
Fixed empty Archives and Authors in case there were no posts
|
284 |
+
Changed content type to text/xml to improve compatibility with caching plugins
|
285 |
+
Changed query parameters to is_feed=true to improve compatibility with caching plugins
|
286 |
+
Switched from using WP_Query to load posts to a custom SQL statement to avoid problems with other plugin filters
|
287 |
+
Fixed bug which caused the Priority Provider to disappear in recent PHP versions
|
288 |
+
Cleaned up code and renamed variables to be more readable
|
289 |
+
Added caching of some SQL statements
|
290 |
+
Added support feed for more help topics
|
291 |
+
Added support for changing the base of the sitemap url to another URL (for WP installations in sub-folders)
|
292 |
+
Changed text in XSL template to be more clear about sitemap-index and sub-sitemaps
|
293 |
+
Added link to new help page
|
294 |
+
Plugin will also ping with the corresponding sub-sitemap in case a post was modified
|
295 |
+
Added function to manually start ping for main-sitemap or all sub-sitemaps
|
296 |
+
Better checking for empty externals
|
297 |
+
Updated Japanese Translation, thanks to Daisuke Takahashi
|
298 |
+
2014-06-03 4.0.6 Added option to disable automatic gzipping
|
299 |
+
Fixed bug with duplicated external sitemap entries
|
300 |
+
Updated language file template
|
301 |
+
Don't gzip if behind Varnish
|
302 |
+
Improved compatibility with caches
|
303 |
+
Ping on post edit
|
304 |
+
2014-06-23 4.0.7 Better compatibility with managed GoDaddy hosting (clear alloptions cache when generating the sitemap)
|
305 |
+
Improved checking if the sitemap should be gzipped or not (depending on ob levels)
|
306 |
+
Removed WordPress version from the sitemap
|
307 |
+
Corrected link to WordPress privacy settings
|
308 |
+
Changed hook which is being used for sitemap pings
|
309 |
+
2014-09-02 4.0.7.1Added icon for the new WP Add-Plugin page
|
310 |
+
Changed "Tested up to" to 4.0
|
311 |
+
2014-11-15 4.0.8 Fixed bug with excluded categories, thanks to Claus Schöffel!
|
312 |
+
2017-03-22 4.0.9 Fixed security issue with donation submission.
|
313 |
+
2018-12-18 4.1.0 Fixed security issues related to forms and external URLs
|
314 |
+
2022-04-07 4.1.1 Fixed security issues and added support for WooCommerce based sitemap
|
315 |
+
2022-04-07 4.1.2 Fixed security issues and features like support for WooCommerce based sitemap
|
316 |
+
|
317 |
+
|
318 |
+
|
319 |
+
|
320 |
+
|
321 |
+
Todo:
|
322 |
+
==============================================================================
|
323 |
+
- Your wishes :)
|
324 |
+
|
325 |
+
|
326 |
+
License:
|
327 |
+
==============================================================================
|
328 |
+
Copyright 2005 - 2018 ARNE BRACHHOLD (email : himself - arnebrachhold - de)
|
329 |
+
|
330 |
+
This program is free software; you can redistribute it and/or modify
|
331 |
+
it under the terms of the GNU General Public License as published by
|
332 |
+
the Free Software Foundation; either version 2 of the License, or
|
333 |
+
(at your option) any later version.
|
334 |
+
|
335 |
+
This program is distributed in the hope that it will be useful,
|
336 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
337 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
338 |
+
GNU General Public License for more details.
|
339 |
+
|
340 |
+
You should have received a copy of the GNU General Public License
|
341 |
+
along with this program; if not, write to the Free Software
|
342 |
+
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
343 |
+
|
344 |
+
Please see license.txt for the full license.
|
345 |
+
|
346 |
+
|
347 |
+
Developer Documentation
|
348 |
+
==============================================================================
|
349 |
+
|
350 |
+
Adding other pages to the sitemap via other plugins
|
351 |
+
|
352 |
+
This plugin uses the action system of WordPress to allow other plugins
|
353 |
+
to add urls to the sitemap. Simply add your function with add_action to
|
354 |
+
the list and the plugin will execute yours every time the sitemap is build.
|
355 |
+
Use the static method "GetInstance" to get the generator and AddUrl method
|
356 |
+
to add your content.
|
357 |
+
|
358 |
+
Sample:
|
359 |
+
|
360 |
+
function your_pages() {
|
361 |
+
$generatorObject = &GoogleSitemapGenerator::GetInstance();
|
362 |
+
if($generatorObject!=null) $generatorObject->AddUrl("http://blog.uri/tags/hello/",time(),"daily",0.5);
|
363 |
+
}
|
364 |
+
add_action("sm_buildmap", "your_pages");
|
365 |
+
|
366 |
+
Parameters:
|
367 |
+
- The URL to the page
|
368 |
+
- The last modified data, as a UNIX timestamp (optional)
|
369 |
+
- The Change Frequency (daily, hourly, weekly and so on) (optional)
|
370 |
+
- The priority 0.0 to 1.0 (optional)
|
371 |
+
|
372 |
+
|
373 |
+
Rebuilding the sitemap on request
|
374 |
+
|
375 |
+
If you want to rebuild the sitemap because dynamic content from your plugin has changed,
|
376 |
+
please use the "sm_rebuild" hook which is available since 3.1.9.
|
377 |
+
All other methods, like calling the Build method directly are highly unrecommended and might
|
378 |
+
not work anymore with the next version of the plugin. Using this hook, the sitemap plugin will
|
379 |
+
take care of everything like loading the required classes and so on.
|
380 |
+
|
381 |
+
Sample:
|
382 |
+
|
383 |
+
do_action("sm_rebuild");
|
384 |
+
|
385 |
+
The sitemap might not be rebuild immediately, since newer versions use a background WP-Cron
|
386 |
+
job by default to prevent that the user has to wait and avoid multiple rebuilds within a very short time.
|
387 |
+
In case the sitemap plugin is not installed, nothing will happen and no errors will be thrown.
|
388 |
+
|
389 |
+
===============================================
|
390 |
+
|
391 |
+
Adding additional PriorityProviders
|
392 |
+
|
393 |
+
This plugin uses several classes to calculate the post priority.
|
394 |
+
You can register your own provider and choose it at the options screen.
|
395 |
+
|
396 |
+
Your class has to extend the GoogleSitemapGeneratorPrioProviderBase class
|
397 |
+
which has a default constructor and a method called GetPostPriority
|
398 |
+
which you can override.
|
399 |
+
|
400 |
+
Look at the GoogleSitemapGeneratorPrioByPopularityContestProvider class
|
401 |
+
for an example.
|
402 |
+
|
403 |
+
To register your provider to the sitemap generator, use the following filter:
|
404 |
+
|
405 |
+
add_filter("sm_add_prio_provider","AddMyProvider");
|
406 |
+
|
407 |
+
Your function could look like this:
|
408 |
+
|
409 |
+
function AddMyProvider($providers) {
|
410 |
+
array_push($providers,"MyProviderClass");
|
411 |
+
return $providers;
|
412 |
+
}
|
413 |
+
|
414 |
Note that you have to return the modified list!
|
google-sitemap-generator-prio-provider-base.php
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* External interface .
|
4 |
+
*
|
5 |
+
* @author Arne Brachhold
|
6 |
+
* @package sitemap
|
7 |
+
* @since 3.0
|
8 |
+
*/
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Interface for all priority providers
|
12 |
+
*
|
13 |
+
* @author Arne Brachhold
|
14 |
+
* @package sitemap
|
15 |
+
* @since 3.0
|
16 |
+
*/
|
17 |
+
interface Google_Sitemap_Generator_Prio_Provider_Base {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Initializes a new priority provider
|
21 |
+
*
|
22 |
+
* @param int $total_comments int The total number of comments of all posts .
|
23 |
+
* @param int $total_posts int The total number of posts .
|
24 |
+
* @since 3.0
|
25 |
+
*/
|
26 |
+
public function __construct( $total_comments, $total_posts );
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Returns the (translated) name of this priority provider
|
30 |
+
*
|
31 |
+
* @since 3.0
|
32 |
+
* @return string The translated name
|
33 |
+
*/
|
34 |
+
public static function get_name();
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Returns the (translated) description of this priority provider
|
38 |
+
*
|
39 |
+
* @since 3.0
|
40 |
+
* @return string The translated description
|
41 |
+
*/
|
42 |
+
public static function get_description();
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Returns the priority for a specified post
|
46 |
+
*
|
47 |
+
* @param int $post_id int The ID of the post .
|
48 |
+
* @param int $comment_count int The number of comments for this post .
|
49 |
+
* @since 3.0
|
50 |
+
* @return int The calculated priority
|
51 |
+
*/
|
52 |
+
public function get_post_priority( $post_id, $comment_count );
|
53 |
+
}
|
54 |
+
|
img/sitemap.js
CHANGED
@@ -1,109 +1,110 @@
|
|
1 |
-
/*
|
2 |
-
|
3 |
-
$Id: sitemap.js 48032 2008-05-27 14:32:06Z arnee $
|
4 |
-
|
5 |
-
*/
|
6 |
-
|
7 |
-
function sm_addPage(url,priority,changeFreq,lastChanged) {
|
8 |
-
|
9 |
-
var table = document.getElementById('sm_pageTable').getElementsByTagName('TBODY')[0];
|
10 |
-
var ce = function(ele) { return document.createElement(ele) };
|
11 |
-
var tr = ce('TR');
|
12 |
-
|
13 |
-
var td = ce('TD');
|
14 |
-
var iUrl = ce('INPUT');
|
15 |
-
iUrl.type="text";
|
16 |
-
iUrl.style.width='95%';
|
17 |
-
iUrl.name="sm_pages_ur[]";
|
18 |
-
if(url) iUrl.value=url;
|
19 |
-
td.appendChild(iUrl);
|
20 |
-
tr.appendChild(td);
|
21 |
-
|
22 |
-
td = ce('TD');
|
23 |
-
td.style.width='150px';
|
24 |
-
var iPrio = ce('SELECT');
|
25 |
-
iPrio.style.width='95%';
|
26 |
-
iPrio.name="sm_pages_pr[]";
|
27 |
-
for(var i=0; i <priorities.length; i++) {
|
28 |
-
var op = ce('OPTION');
|
29 |
-
op.text = priorities[i];
|
30 |
-
op.value = priorities[i];
|
31 |
-
try {
|
32 |
-
iPrio.add(op, null); // standards compliant; doesn't work in IE
|
33 |
-
} catch(ex) {
|
34 |
-
iPrio.add(op); // IE only
|
35 |
-
}
|
36 |
-
if(priority && priority == op.value) {
|
37 |
-
iPrio.selectedIndex = i;
|
38 |
-
}
|
39 |
-
}
|
40 |
-
td.appendChild(iPrio);
|
41 |
-
tr.appendChild(td);
|
42 |
-
|
43 |
-
td = ce('TD');
|
44 |
-
td.style.width='150px';
|
45 |
-
var iFreq = ce('SELECT');
|
46 |
-
iFreq.name="sm_pages_cf[]";
|
47 |
-
iFreq.style.width='95%';
|
48 |
-
for(var i=0; i<changeFreqVals.length; i++) {
|
49 |
-
var op = ce('OPTION');
|
50 |
-
op.text = changeFreqNames[i];
|
51 |
-
op.value = changeFreqVals[i];
|
52 |
-
try {
|
53 |
-
iFreq.add(op, null); // standards compliant; doesn't work in IE
|
54 |
-
} catch(ex) {
|
55 |
-
iFreq.add(op); // IE only
|
56 |
-
}
|
57 |
-
|
58 |
-
if(changeFreq && changeFreq == op.value) {
|
59 |
-
iFreq.selectedIndex = i;
|
60 |
-
}
|
61 |
-
}
|
62 |
-
td.appendChild(iFreq);
|
63 |
-
tr.appendChild(td);
|
64 |
-
|
65 |
-
var td = ce('TD');
|
66 |
-
td.style.width='150px';
|
67 |
-
var iChanged = ce('INPUT');
|
68 |
-
iChanged.type="text";
|
69 |
-
iChanged.name="sm_pages_lm[]";
|
70 |
-
iChanged.style.width='95%';
|
71 |
-
if(lastChanged) iChanged.value=lastChanged;
|
72 |
-
td.appendChild(iChanged);
|
73 |
-
tr.appendChild(td);
|
74 |
-
|
75 |
-
var td = ce('TD');
|
76 |
-
td.style.textAlign="center";
|
77 |
-
td.style.width='5px';
|
78 |
-
var iAction = ce('A');
|
79 |
-
iAction.innerHTML = 'X';
|
80 |
-
iAction.href="javascript:void(0);"
|
81 |
-
iAction.onclick = function() { table.removeChild(tr); };
|
82 |
-
td.appendChild(iAction);
|
83 |
-
tr.appendChild(td);
|
84 |
-
|
85 |
-
var mark = ce('INPUT');
|
86 |
-
mark.type="hidden";
|
87 |
-
mark.name="sm_pages_mark[]";
|
88 |
-
mark.value="true";
|
89 |
-
tr.appendChild(mark);
|
90 |
-
|
91 |
-
|
92 |
-
var firstRow = table.getElementsByTagName('TR')[1];
|
93 |
-
if(firstRow) {
|
94 |
-
var firstCol = (firstRow.childNodes[1]?firstRow.childNodes[1]:firstRow.childNodes[0]);
|
95 |
-
if(firstCol.colSpan>1) {
|
96 |
-
firstRow.parentNode.removeChild(firstRow);
|
97 |
-
}
|
98 |
-
}
|
99 |
-
var cnt = table.getElementsByTagName('TR').length;
|
100 |
-
if(cnt%2) tr.className="alternate";
|
101 |
-
|
102 |
-
table.appendChild(tr);
|
103 |
-
}
|
104 |
-
|
105 |
-
function sm_loadPages() {
|
106 |
-
for(var i=0; i<pages.length; i++) {
|
107 |
-
sm_addPage(pages[i].url,pages[i].priority,pages[i].changeFreq,pages[i].lastChanged);
|
108 |
-
}
|
109 |
-
}
|
|
1 |
+
/*
|
2 |
+
|
3 |
+
$Id: sitemap.js 48032 2008-05-27 14:32:06Z arnee $
|
4 |
+
|
5 |
+
*/
|
6 |
+
|
7 |
+
function sm_addPage(url,priority,changeFreq,lastChanged) {
|
8 |
+
|
9 |
+
var table = document.getElementById('sm_pageTable').getElementsByTagName('TBODY')[0];
|
10 |
+
var ce = function(ele) { return document.createElement(ele) };
|
11 |
+
var tr = ce('TR');
|
12 |
+
|
13 |
+
var td = ce('TD');
|
14 |
+
var iUrl = ce('INPUT');
|
15 |
+
iUrl.type="text";
|
16 |
+
iUrl.style.width='95%';
|
17 |
+
iUrl.name="sm_pages_ur[]";
|
18 |
+
if(url) iUrl.value=url;
|
19 |
+
td.appendChild(iUrl);
|
20 |
+
tr.appendChild(td);
|
21 |
+
|
22 |
+
td = ce('TD');
|
23 |
+
td.style.width='150px';
|
24 |
+
var iPrio = ce('SELECT');
|
25 |
+
iPrio.style.width='95%';
|
26 |
+
iPrio.name="sm_pages_pr[]";
|
27 |
+
for(var i=0; i <priorities.length; i++) {
|
28 |
+
var op = ce('OPTION');
|
29 |
+
op.text = priorities[i];
|
30 |
+
op.value = priorities[i];
|
31 |
+
try {
|
32 |
+
iPrio.add(op, null); // standards compliant; doesn't work in IE
|
33 |
+
} catch(ex) {
|
34 |
+
iPrio.add(op); // IE only
|
35 |
+
}
|
36 |
+
if(priority && priority == op.value) {
|
37 |
+
iPrio.selectedIndex = i;
|
38 |
+
}
|
39 |
+
}
|
40 |
+
td.appendChild(iPrio);
|
41 |
+
tr.appendChild(td);
|
42 |
+
|
43 |
+
td = ce('TD');
|
44 |
+
td.style.width='150px';
|
45 |
+
var iFreq = ce('SELECT');
|
46 |
+
iFreq.name="sm_pages_cf[]";
|
47 |
+
iFreq.style.width='95%';
|
48 |
+
for(var i=0; i<changeFreqVals.length; i++) {
|
49 |
+
var op = ce('OPTION');
|
50 |
+
op.text = changeFreqNames[i];
|
51 |
+
op.value = changeFreqVals[i];
|
52 |
+
try {
|
53 |
+
iFreq.add(op, null); // standards compliant; doesn't work in IE
|
54 |
+
} catch(ex) {
|
55 |
+
iFreq.add(op); // IE only
|
56 |
+
}
|
57 |
+
|
58 |
+
if(changeFreq && changeFreq == op.value) {
|
59 |
+
iFreq.selectedIndex = i;
|
60 |
+
}
|
61 |
+
}
|
62 |
+
td.appendChild(iFreq);
|
63 |
+
tr.appendChild(td);
|
64 |
+
|
65 |
+
var td = ce('TD');
|
66 |
+
td.style.width='150px';
|
67 |
+
var iChanged = ce('INPUT');
|
68 |
+
iChanged.type="text";
|
69 |
+
iChanged.name="sm_pages_lm[]";
|
70 |
+
iChanged.style.width='95%';
|
71 |
+
if(lastChanged) iChanged.value=lastChanged;
|
72 |
+
td.appendChild(iChanged);
|
73 |
+
tr.appendChild(td);
|
74 |
+
|
75 |
+
var td = ce('TD');
|
76 |
+
td.style.textAlign="center";
|
77 |
+
td.style.width='5px';
|
78 |
+
var iAction = ce('A');
|
79 |
+
iAction.innerHTML = 'X';
|
80 |
+
iAction.href="javascript:void(0);"
|
81 |
+
iAction.onclick = function() { table.removeChild(tr); };
|
82 |
+
td.appendChild(iAction);
|
83 |
+
tr.appendChild(td);
|
84 |
+
|
85 |
+
var mark = ce('INPUT');
|
86 |
+
mark.type="hidden";
|
87 |
+
mark.name="sm_pages_mark[]";
|
88 |
+
mark.value="true";
|
89 |
+
tr.appendChild(mark);
|
90 |
+
|
91 |
+
|
92 |
+
var firstRow = table.getElementsByTagName('TR')[1];
|
93 |
+
if(firstRow) {
|
94 |
+
var firstCol = (firstRow.childNodes[1]?firstRow.childNodes[1]:firstRow.childNodes[0]);
|
95 |
+
if(firstCol.colSpan>1) {
|
96 |
+
firstRow.parentNode.removeChild(firstRow);
|
97 |
+
}
|
98 |
+
}
|
99 |
+
var cnt = table.getElementsByTagName('TR').length;
|
100 |
+
if(cnt%2) tr.className="alternate";
|
101 |
+
|
102 |
+
table.appendChild(tr);
|
103 |
+
}
|
104 |
+
|
105 |
+
function sm_loadPages() {
|
106 |
+
for(var i=0; i<pages.length; i++) {
|
107 |
+
sm_addPage(pages[i].url,pages[i].priority,pages[i].changeFreq,pages[i].lastChanged);
|
108 |
+
}
|
109 |
+
}
|
110 |
+
if (typeof(sm_loadPages) == 'function') addLoadEvent(sm_loadPages);
|
lang/sitemap-ja_EUC.po
CHANGED
@@ -1,322 +1,322 @@
|
|
1 |
-
# Japanese Language File for sitemap (sitemap-ja_JP.UTF-8.po)
|
2 |
-
# Copyright (C) 2005 hiromasa : http://hiromasa.zone.ne.jp/
|
3 |
-
# This file is distributed under the same license as the WordPress package.
|
4 |
-
# hiromasa <webmaster@hiromasa.zone.ne.jp>, 2005.
|
5 |
-
#
|
6 |
-
msgid ""
|
7 |
-
msgstr ""
|
8 |
-
"Project-Id-Version: sitemap\n"
|
9 |
-
"Report-Msgid-Bugs-To: <webmaster@hiromasa.zone.ne.jp>\n"
|
10 |
-
"POT-Creation-Date: 2005-06-09 02:00+0900\n"
|
11 |
-
"PO-Revision-Date: 2005-07-03 23:17+0900\n"
|
12 |
-
"Last-Translator: hiromasa <webmaster@hiromasa.zone.ne.jp>\n"
|
13 |
-
"MIME-Version: 1.0\n"
|
14 |
-
"Content-Type: text/plain; charset=EUC-JP\n"
|
15 |
-
"Content-Transfer-Encoding: 8bit\n"
|
16 |
-
"Language-Team: \n"
|
17 |
-
|
18 |
-
#: sitemap.php:375
|
19 |
-
msgid "always"
|
20 |
-
msgstr "���Ĥ�"
|
21 |
-
|
22 |
-
msgid "hourly"
|
23 |
-
msgstr "���"
|
24 |
-
|
25 |
-
msgid "daily"
|
26 |
-
msgstr "����"
|
27 |
-
|
28 |
-
msgid "weekly"
|
29 |
-
msgstr "�轵"
|
30 |
-
|
31 |
-
msgid "monthly"
|
32 |
-
msgstr "���"
|
33 |
-
|
34 |
-
msgid "yearly"
|
35 |
-
msgstr "��ǯ"
|
36 |
-
|
37 |
-
msgid "never"
|
38 |
-
msgstr "��������ʤ�"
|
39 |
-
|
40 |
-
msgid "Detected Path"
|
41 |
-
msgstr "�ѥ���ľ������"
|
42 |
-
|
43 |
-
msgid "Example"
|
44 |
-
msgstr "��"
|
45 |
-
|
46 |
-
msgid "Absolute or relative path to the sitemap file, including name."
|
47 |
-
msgstr "�ե�����̾��ޤ� Sitemap �ե�����ؤ����Ф⤷�������Хѥ�"
|
48 |
-
|
49 |
-
msgid "Complete URL to the sitemap file, including name."
|
50 |
-
msgstr "�ե�����̾��ޤ� Sitemap �ե�����ؤδ����� URL"
|
51 |
-
|
52 |
-
msgid "Automatic location"
|
53 |
-
msgstr "��ư����"
|
54 |
-
|
55 |
-
msgid "Manual location"
|
56 |
-
msgstr "��ư����"
|
57 |
-
|
58 |
-
msgid "OR"
|
59 |
-
msgstr "�⤷����"
|
60 |
-
|
61 |
-
msgid "Location of your sitemap file"
|
62 |
-
msgstr "Sitemap �ե�����ξ��"
|
63 |
-
|
64 |
-
msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the "Location of your sitemap file" section on this page)!"
|
65 |
-
msgstr "�⤷���ʤ��Υ֥��������֥ǥ��쥯�ȥ�����֤���Ƥ�����ˡ��֥����ǥ��쥯�ȥ�ʳ��Υڡ����� Sitemap �˴ޤ���Ȥ��ϡ�Sitemap �ե������롼�ȥǥ��쥯�ȥ�����֤��٤��Ǥ����ʤ��Υڡ����� "Sitemap �ե�����ξ��" ������ǧ���Ʋ�������"
|
66 |
-
|
67 |
-
#: sitemap.php:512
|
68 |
-
msgid "Configuration updated"
|
69 |
-
msgstr "��������ޤ�����"
|
70 |
-
|
71 |
-
#: sitemap.php:513
|
72 |
-
msgid "Error"
|
73 |
-
msgstr "���顼�Ǥ���"
|
74 |
-
|
75 |
-
#: sitemap.php:521
|
76 |
-
msgid "A new page was added. Click on "Save page changes" to save your changes."
|
77 |
-
msgstr "�������ɲåڡ����ʤ�������ˤ��ä��ޤ����� �ʥڡ����ξ�������ϸ��"�ѹ�����¸" �������������¸���Ʋ�������"
|
78 |
-
|
79 |
-
#: sitemap.php:527
|
80 |
-
msgid "Pages saved"
|
81 |
-
msgstr "�ɲåڡ������������¸���ޤ�����"
|
82 |
-
|
83 |
-
#: sitemap.php:528
|
84 |
-
msgid "Error while saving pages"
|
85 |
-
msgstr "�ɲåڡ������������¸��˥��顼��ȯ�����ޤ�����"
|
86 |
-
|
87 |
-
#: sitemap.php:539
|
88 |
-
msgid "The page was deleted. Click on "Save page changes" to save your changes."
|
89 |
-
msgstr "���ꤵ�줿�ɲåڡ����ʤ�������ˤ������ޤ����� "�ѹ�����¸" �������������¸���Ʋ�������"
|
90 |
-
|
91 |
-
#: sitemap.php:542
|
92 |
-
msgid "You changes have been cleared."
|
93 |
-
msgstr "�ѹ��ϴ��˺������Ƥ��ޤ���"
|
94 |
-
|
95 |
-
#: sitemap.php:555
|
96 |
-
msgid "Sitemap Generator"
|
97 |
-
msgstr "Sitemap Generator"
|
98 |
-
|
99 |
-
#: sitemap.php:558
|
100 |
-
msgid "Manual rebuild"
|
101 |
-
msgstr "��ư�ˤ�� Sitemap �ե�����κƹ���"
|
102 |
-
|
103 |
-
#: sitemap.php:559
|
104 |
-
msgid "If you want to build the sitemap without editing a post, click on here!"
|
105 |
-
msgstr "�⤷��Ƥ��Խ��ʤ��� Sitemap �ե������ƹ��ۤ��������Ϥ��Υܥ�������Ƥ�������!"
|
106 |
-
|
107 |
-
#: sitemap.php:560
|
108 |
-
msgid "Rebuild Sitemap"
|
109 |
-
msgstr "Sitemap �κƹ���"
|
110 |
-
|
111 |
-
#: sitemap.php:564
|
112 |
-
msgid "Additional pages"
|
113 |
-
msgstr "�ɲåڡ���������"
|
114 |
-
|
115 |
-
#: sitemap.php:566
|
116 |
-
msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
|
117 |
-
msgstr "�����ǡ�Sitemap �˴ޤޤ��٤��Ǥ��� URL ����ꤹ�뤳�Ȥ��Ǥ��ޤ��� �������������ǻ��ꤹ�� URL �� WordPress/Blog ��°���ƤϤ����ޤ���<br />�㤨�Хɥᥤ�� www.foo.com �ǥ֥����� www.foo.com/blog ���ä���硢���ʤ��� www.foo.com �� Sitemap �˴ޤߤ����Ȼפ����⤷��ޤ�������: ���ι��ܤ� WordPress �ʳ��� URL ����ꤷ���ץ饰����ǽ��Ϥ��� Sitemap �˴ޤ�뤳�Ȥ��Ǥ��ޤ���"
|
118 |
-
|
119 |
-
#: sitemap.php:568
|
120 |
-
msgid "URL to the page"
|
121 |
-
msgstr "���Υڡ�����URL"
|
122 |
-
|
123 |
-
#: sitemap.php:569
|
124 |
-
msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
|
125 |
-
msgstr "���Υڡ�����URL �����Ϥ��Ʋ������� ��: http://www.foo.com/index.html �� www.foo.com/home "
|
126 |
-
|
127 |
-
#: sitemap.php:571
|
128 |
-
msgid "Priority"
|
129 |
-
msgstr "ͥ����(priority)������"
|
130 |
-
|
131 |
-
#: sitemap.php:572
|
132 |
-
msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
|
133 |
-
msgstr "¾�Υڡ��������㤷���ڡ�����ͥ����(priority)������Ǥ��������� �㤨�С����ʤ��Υۡ���ڡ����ϡ��õ��Υڡ������⤤ͥ���٤����뤫�⤷��ޤ���"
|
134 |
-
|
135 |
-
#: sitemap.php:574
|
136 |
-
msgid "Last Changed"
|
137 |
-
msgstr "�ǽ�������"
|
138 |
-
|
139 |
-
#: sitemap.php:575
|
140 |
-
msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
|
141 |
-
msgstr "�ǽ��������� YYYY-MM-DD ���������Ϥ��Ʋ�������"
|
142 |
-
|
143 |
-
#: sitemap.php:583
|
144 |
-
msgid "Change Frequency"
|
145 |
-
msgstr "��������(changefreq)������"
|
146 |
-
|
147 |
-
#: sitemap.php:585
|
148 |
-
msgid "#"
|
149 |
-
msgstr "#"
|
150 |
-
|
151 |
-
#: sitemap.php:609
|
152 |
-
msgid "No pages defined."
|
153 |
-
msgstr "�ɲåڡ������������Ƥ��ޤ���"
|
154 |
-
|
155 |
-
#: sitemap.php:616
|
156 |
-
msgid "Add new page"
|
157 |
-
msgstr "�������ڡ������ɲ�"
|
158 |
-
|
159 |
-
#: sitemap.php:617
|
160 |
-
msgid "Save page changes"
|
161 |
-
msgstr "�ѹ�����¸"
|
162 |
-
|
163 |
-
#: sitemap.php:618
|
164 |
-
msgid "Undo all page changes"
|
165 |
-
msgstr "�ڡ������ѹ����᤹"
|
166 |
-
|
167 |
-
#: sitemap.php:621
|
168 |
-
msgid "Delete marked page"
|
169 |
-
msgstr "�ޡ������줿�ڡ����κ��"
|
170 |
-
|
171 |
-
#: sitemap.php:627
|
172 |
-
msgid "Basic Options"
|
173 |
-
msgstr "����Ū������"
|
174 |
-
|
175 |
-
#: sitemap.php:632
|
176 |
-
msgid "Enable automatic priority calculation for posts based on comment count"
|
177 |
-
msgstr "��Ƥ��Ф��륳���ȿ��ǡ���ơʳƥ���ȥ�ˤ�ͥ����(priority)��ư�����뵡ǽ��ͭ���ˤ���"
|
178 |
-
|
179 |
-
#: sitemap.php:638
|
180 |
-
msgid "Write debug comments"
|
181 |
-
msgstr "�ǥХå��ѥ����Ƚ��Ϥ�Ԥ�"
|
182 |
-
|
183 |
-
#: sitemap.php:643
|
184 |
-
msgid "Filename of the sitemap file"
|
185 |
-
msgstr "Sitemap �Υե�����̾"
|
186 |
-
|
187 |
-
#: sitemap.php:650
|
188 |
-
msgid "Write a normal XML file (your filename)"
|
189 |
-
msgstr "ɸ��� XML �ե��������Ϥ��� (filename)"
|
190 |
-
|
191 |
-
#: sitemap.php:652
|
192 |
-
msgid "Detected URL"
|
193 |
-
msgstr "Detected URL"
|
194 |
-
|
195 |
-
#: sitemap.php:657
|
196 |
-
msgid "Write a gzipped file (your filename + .gz)"
|
197 |
-
msgstr "gz ���̤��줿�ե��������Ϥ��� (filename + .gz)"
|
198 |
-
|
199 |
-
#: sitemap.php:664
|
200 |
-
msgid "Auto-Ping Google Sitemaps"
|
201 |
-
msgstr "Google Sitemap �˹��� ping ������"
|
202 |
-
|
203 |
-
#: sitemap.php:665
|
204 |
-
msgid "This option will automatically tell Google about changes."
|
205 |
-
msgstr "���Υ��ץ����ϡ��ѹ��� Google �˼�ưŪ�����Τ��ޤ���"
|
206 |
-
|
207 |
-
#: sitemap.php:672
|
208 |
-
msgid "Includings"
|
209 |
-
msgstr "Sitemap �˴ޤ�� ���ܤ�����"
|
210 |
-
|
211 |
-
#: sitemap.php:677
|
212 |
-
msgid "Include homepage"
|
213 |
-
msgstr "�ۡ���ڡ���"
|
214 |
-
|
215 |
-
#: sitemap.php:683
|
216 |
-
msgid "Include posts"
|
217 |
-
msgstr "��ơʳƥ���ȥ��"
|
218 |
-
|
219 |
-
#: sitemap.php:689
|
220 |
-
msgid "Include static pages"
|
221 |
-
msgstr "��Ū�ʥڡ���"
|
222 |
-
|
223 |
-
#: sitemap.php:695
|
224 |
-
msgid "Include categories"
|
225 |
-
msgstr "���ƥ�����"
|
226 |
-
|
227 |
-
#: sitemap.php:701
|
228 |
-
msgid "Include archives"
|
229 |
-
msgstr "������������"
|
230 |
-
|
231 |
-
#: sitemap.php:708
|
232 |
-
msgid "Change frequencies"
|
233 |
-
msgstr "��������(changefreq)������"
|
234 |
-
|
235 |
-
#: sitemap.php:709
|
236 |
-
msgid "Note"
|
237 |
-
msgstr "���"
|
238 |
-
|
239 |
-
#: sitemap.php:710
|
240 |
-
msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
|
241 |
-
msgstr "���Υ������ͤ�̿��ǤϤʤ��ҥ�Ȥ��ȹͤ����ޤ�������������Υ�������Ϥ���������θ������ޤ�����\"1���֤���\" ������ˤ��Ƥ⤽�����٤ǥ������뤷�ʤ����⤷��ʤ�����\"ǯ���٤�\" ����ˤ��Ƥ⤽�������ˤ˥������뤵��뤫�⤷��ޤ��ޤ� \"��������ʤ�\" �����ꤵ�줿�ڡ����⡢�פ������ʤ��Ѳ����Υڡ����������뤿��ˡ������餯������������Ū�˥������뤹��Ǥ��礦��"
|
242 |
-
|
243 |
-
#: sitemap.php:715
|
244 |
-
msgid "Homepage"
|
245 |
-
msgstr "�ۡ���ڡ���"
|
246 |
-
|
247 |
-
#: sitemap.php:721
|
248 |
-
msgid "Posts"
|
249 |
-
msgstr "��ơʳƥ���ȥ��"
|
250 |
-
|
251 |
-
#: sitemap.php:727
|
252 |
-
msgid "Static pages"
|
253 |
-
msgstr "��Ū�ʥڡ���"
|
254 |
-
|
255 |
-
#: sitemap.php:733
|
256 |
-
msgid "Categories"
|
257 |
-
msgstr "���ƥ�����"
|
258 |
-
|
259 |
-
#: sitemap.php:739
|
260 |
-
msgid "The current archive of this month (Should be the same like your homepage)"
|
261 |
-
msgstr "����Υ��������� (\"�ۡ���ڡ���\" �������Ʊ���ˤ��٤��Ǥ�)"
|
262 |
-
|
263 |
-
#: sitemap.php:745
|
264 |
-
msgid "Older archives (Changes only if you edit an old post)"
|
265 |
-
msgstr "�Ť����������� (�Ť���Ƥ��Խ������Ȥ������ѹ����Ƥ�������)"
|
266 |
-
|
267 |
-
#: sitemap.php:752
|
268 |
-
msgid "Priorities"
|
269 |
-
msgstr "ͥ����(priority)������"
|
270 |
-
|
271 |
-
#: sitemap.php:763
|
272 |
-
msgid "Posts (If auto calculation is disabled)"
|
273 |
-
msgstr "��ơʳƥ���ȥ�� (\"����Ū������\"�Ǽ�ư�������ꤷ�Ƥ��ʤ�����ͭ��)"
|
274 |
-
|
275 |
-
#: sitemap.php:769
|
276 |
-
msgid "Minimum post priority (Even if auto calculation is enabled)"
|
277 |
-
msgstr "��ơʳƥ���ȥ�ˤκǾ��� (\"����Ū������\"�Ǽ�ư�������ꤷ�Ƥ������ͭ��)"
|
278 |
-
|
279 |
-
#: sitemap.php:787
|
280 |
-
msgid "Archives"
|
281 |
-
msgstr "������������"
|
282 |
-
|
283 |
-
#: sitemap.php:793
|
284 |
-
msgid "Informations and support"
|
285 |
-
msgstr "����ȥ��ݡ���"
|
286 |
-
|
287 |
-
#: sitemap.php:794
|
288 |
-
msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
|
289 |
-
msgstr "�⤷������䵿�䡢��Ƥ������ %s �Υ��åץǡ��Ⱦ���䥳���Ȥ��ǧ���Ʋ�������"
|
290 |
-
|
291 |
-
#: sitemap.php:797
|
292 |
-
msgid "Update options"
|
293 |
-
msgstr "����� »"
|
294 |
-
|
295 |
-
#: sitemap.php:1033
|
296 |
-
msgid "URL:"
|
297 |
-
msgstr "URL:"
|
298 |
-
|
299 |
-
#: sitemap.php:1034
|
300 |
-
msgid "Path:"
|
301 |
-
msgstr "Path:"
|
302 |
-
|
303 |
-
#: sitemap.php:1037
|
304 |
-
msgid "Could not write into %s"
|
305 |
-
msgstr "%s �˽��ळ�Ȥ��Ǥ��ޤ���"
|
306 |
-
|
307 |
-
#: sitemap.php:1048
|
308 |
-
msgid "Successfully built sitemap file:"
|
309 |
-
msgstr "���ۤ��������� Sitemap �ե�����:"
|
310 |
-
|
311 |
-
#: sitemap.php:1048
|
312 |
-
msgid "Successfully built gzipped sitemap file:"
|
313 |
-
msgstr "���ۤ��������� gz ���̤��줿 Sitemap �ե�����:"
|
314 |
-
|
315 |
-
#: sitemap.php:1062
|
316 |
-
msgid "Could not ping to Google at %s"
|
317 |
-
msgstr "Google �ؤι��� ping ���������Ǥ��ޤ���Ǥ����� %s"
|
318 |
-
|
319 |
-
#: sitemap.php:1064
|
320 |
-
msgid "Successfully pinged Google at %s"
|
321 |
-
msgstr "Google �ؤι��� ping ���������������ޤ����� %s"
|
322 |
-
|
1 |
+
# Japanese Language File for sitemap (sitemap-ja_JP.UTF-8.po)
|
2 |
+
# Copyright (C) 2005 hiromasa : http://hiromasa.zone.ne.jp/
|
3 |
+
# This file is distributed under the same license as the WordPress package.
|
4 |
+
# hiromasa <webmaster@hiromasa.zone.ne.jp>, 2005.
|
5 |
+
#
|
6 |
+
msgid ""
|
7 |
+
msgstr ""
|
8 |
+
"Project-Id-Version: sitemap\n"
|
9 |
+
"Report-Msgid-Bugs-To: <webmaster@hiromasa.zone.ne.jp>\n"
|
10 |
+
"POT-Creation-Date: 2005-06-09 02:00+0900\n"
|
11 |
+
"PO-Revision-Date: 2005-07-03 23:17+0900\n"
|
12 |
+
"Last-Translator: hiromasa <webmaster@hiromasa.zone.ne.jp>\n"
|
13 |
+
"MIME-Version: 1.0\n"
|
14 |
+
"Content-Type: text/plain; charset=EUC-JP\n"
|
15 |
+
"Content-Transfer-Encoding: 8bit\n"
|
16 |
+
"Language-Team: \n"
|
17 |
+
|
18 |
+
#: sitemap.php:375
|
19 |
+
msgid "always"
|
20 |
+
msgstr "���Ĥ�"
|
21 |
+
|
22 |
+
msgid "hourly"
|
23 |
+
msgstr "���"
|
24 |
+
|
25 |
+
msgid "daily"
|
26 |
+
msgstr "����"
|
27 |
+
|
28 |
+
msgid "weekly"
|
29 |
+
msgstr "�轵"
|
30 |
+
|
31 |
+
msgid "monthly"
|
32 |
+
msgstr "���"
|
33 |
+
|
34 |
+
msgid "yearly"
|
35 |
+
msgstr "��ǯ"
|
36 |
+
|
37 |
+
msgid "never"
|
38 |
+
msgstr "��������ʤ�"
|
39 |
+
|
40 |
+
msgid "Detected Path"
|
41 |
+
msgstr "�ѥ���ľ������"
|
42 |
+
|
43 |
+
msgid "Example"
|
44 |
+
msgstr "��"
|
45 |
+
|
46 |
+
msgid "Absolute or relative path to the sitemap file, including name."
|
47 |
+
msgstr "�ե�����̾��ޤ� Sitemap �ե�����ؤ����Ф⤷�������Хѥ�"
|
48 |
+
|
49 |
+
msgid "Complete URL to the sitemap file, including name."
|
50 |
+
msgstr "�ե�����̾��ޤ� Sitemap �ե�����ؤδ����� URL"
|
51 |
+
|
52 |
+
msgid "Automatic location"
|
53 |
+
msgstr "��ư����"
|
54 |
+
|
55 |
+
msgid "Manual location"
|
56 |
+
msgstr "��ư����"
|
57 |
+
|
58 |
+
msgid "OR"
|
59 |
+
msgstr "�⤷����"
|
60 |
+
|
61 |
+
msgid "Location of your sitemap file"
|
62 |
+
msgstr "Sitemap �ե�����ξ��"
|
63 |
+
|
64 |
+
msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the "Location of your sitemap file" section on this page)!"
|
65 |
+
msgstr "�⤷���ʤ��Υ֥��������֥ǥ��쥯�ȥ�����֤���Ƥ�����ˡ��֥����ǥ��쥯�ȥ�ʳ��Υڡ����� Sitemap �˴ޤ���Ȥ��ϡ�Sitemap �ե������롼�ȥǥ��쥯�ȥ�����֤��٤��Ǥ����ʤ��Υڡ����� "Sitemap �ե�����ξ��" ������ǧ���Ʋ�������"
|
66 |
+
|
67 |
+
#: sitemap.php:512
|
68 |
+
msgid "Configuration updated"
|
69 |
+
msgstr "��������ޤ�����"
|
70 |
+
|
71 |
+
#: sitemap.php:513
|
72 |
+
msgid "Error"
|
73 |
+
msgstr "���顼�Ǥ���"
|
74 |
+
|
75 |
+
#: sitemap.php:521
|
76 |
+
msgid "A new page was added. Click on "Save page changes" to save your changes."
|
77 |
+
msgstr "�������ɲåڡ����ʤ�������ˤ��ä��ޤ����� �ʥڡ����ξ�������ϸ��"�ѹ�����¸" �������������¸���Ʋ�������"
|
78 |
+
|
79 |
+
#: sitemap.php:527
|
80 |
+
msgid "Pages saved"
|
81 |
+
msgstr "�ɲåڡ������������¸���ޤ�����"
|
82 |
+
|
83 |
+
#: sitemap.php:528
|
84 |
+
msgid "Error while saving pages"
|
85 |
+
msgstr "�ɲåڡ������������¸��˥��顼��ȯ�����ޤ�����"
|
86 |
+
|
87 |
+
#: sitemap.php:539
|
88 |
+
msgid "The page was deleted. Click on "Save page changes" to save your changes."
|
89 |
+
msgstr "���ꤵ�줿�ɲåڡ����ʤ�������ˤ������ޤ����� "�ѹ�����¸" �������������¸���Ʋ�������"
|
90 |
+
|
91 |
+
#: sitemap.php:542
|
92 |
+
msgid "You changes have been cleared."
|
93 |
+
msgstr "�ѹ��ϴ��˺������Ƥ��ޤ���"
|
94 |
+
|
95 |
+
#: sitemap.php:555
|
96 |
+
msgid "Sitemap Generator"
|
97 |
+
msgstr "Sitemap Generator"
|
98 |
+
|
99 |
+
#: sitemap.php:558
|
100 |
+
msgid "Manual rebuild"
|
101 |
+
msgstr "��ư�ˤ�� Sitemap �ե�����κƹ���"
|
102 |
+
|
103 |
+
#: sitemap.php:559
|
104 |
+
msgid "If you want to build the sitemap without editing a post, click on here!"
|
105 |
+
msgstr "�⤷��Ƥ��Խ��ʤ��� Sitemap �ե������ƹ��ۤ��������Ϥ��Υܥ�������Ƥ�������!"
|
106 |
+
|
107 |
+
#: sitemap.php:560
|
108 |
+
msgid "Rebuild Sitemap"
|
109 |
+
msgstr "Sitemap �κƹ���"
|
110 |
+
|
111 |
+
#: sitemap.php:564
|
112 |
+
msgid "Additional pages"
|
113 |
+
msgstr "�ɲåڡ���������"
|
114 |
+
|
115 |
+
#: sitemap.php:566
|
116 |
+
msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
|
117 |
+
msgstr "�����ǡ�Sitemap �˴ޤޤ��٤��Ǥ��� URL ����ꤹ�뤳�Ȥ��Ǥ��ޤ��� �������������ǻ��ꤹ�� URL �� WordPress/Blog ��°���ƤϤ����ޤ���<br />�㤨�Хɥᥤ�� www.foo.com �ǥ֥����� www.foo.com/blog ���ä���硢���ʤ��� www.foo.com �� Sitemap �˴ޤߤ����Ȼפ����⤷��ޤ�������: ���ι��ܤ� WordPress �ʳ��� URL ����ꤷ���ץ饰����ǽ��Ϥ��� Sitemap �˴ޤ�뤳�Ȥ��Ǥ��ޤ���"
|
118 |
+
|
119 |
+
#: sitemap.php:568
|
120 |
+
msgid "URL to the page"
|
121 |
+
msgstr "���Υڡ�����URL"
|
122 |
+
|
123 |
+
#: sitemap.php:569
|
124 |
+
msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
|
125 |
+
msgstr "���Υڡ�����URL �����Ϥ��Ʋ������� ��: http://www.foo.com/index.html �� www.foo.com/home "
|
126 |
+
|
127 |
+
#: sitemap.php:571
|
128 |
+
msgid "Priority"
|
129 |
+
msgstr "ͥ����(priority)������"
|
130 |
+
|
131 |
+
#: sitemap.php:572
|
132 |
+
msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
|
133 |
+
msgstr "¾�Υڡ��������㤷���ڡ�����ͥ����(priority)������Ǥ��������� �㤨�С����ʤ��Υۡ���ڡ����ϡ��õ��Υڡ������⤤ͥ���٤����뤫�⤷��ޤ���"
|
134 |
+
|
135 |
+
#: sitemap.php:574
|
136 |
+
msgid "Last Changed"
|
137 |
+
msgstr "�ǽ�������"
|
138 |
+
|
139 |
+
#: sitemap.php:575
|
140 |
+
msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
|
141 |
+
msgstr "�ǽ��������� YYYY-MM-DD ���������Ϥ��Ʋ�������"
|
142 |
+
|
143 |
+
#: sitemap.php:583
|
144 |
+
msgid "Change Frequency"
|
145 |
+
msgstr "��������(changefreq)������"
|
146 |
+
|
147 |
+
#: sitemap.php:585
|
148 |
+
msgid "#"
|
149 |
+
msgstr "#"
|
150 |
+
|
151 |
+
#: sitemap.php:609
|
152 |
+
msgid "No pages defined."
|
153 |
+
msgstr "�ɲåڡ������������Ƥ��ޤ���"
|
154 |
+
|
155 |
+
#: sitemap.php:616
|
156 |
+
msgid "Add new page"
|
157 |
+
msgstr "�������ڡ������ɲ�"
|
158 |
+
|
159 |
+
#: sitemap.php:617
|
160 |
+
msgid "Save page changes"
|
161 |
+
msgstr "�ѹ�����¸"
|
162 |
+
|
163 |
+
#: sitemap.php:618
|
164 |
+
msgid "Undo all page changes"
|
165 |
+
msgstr "�ڡ������ѹ����᤹"
|
166 |
+
|
167 |
+
#: sitemap.php:621
|
168 |
+
msgid "Delete marked page"
|
169 |
+
msgstr "�ޡ������줿�ڡ����κ��"
|
170 |
+
|
171 |
+
#: sitemap.php:627
|
172 |
+
msgid "Basic Options"
|
173 |
+
msgstr "����Ū������"
|
174 |
+
|
175 |
+
#: sitemap.php:632
|
176 |
+
msgid "Enable automatic priority calculation for posts based on comment count"
|
177 |
+
msgstr "��Ƥ��Ф��륳���ȿ��ǡ���ơʳƥ���ȥ�ˤ�ͥ����(priority)��ư�����뵡ǽ��ͭ���ˤ���"
|
178 |
+
|
179 |
+
#: sitemap.php:638
|
180 |
+
msgid "Write debug comments"
|
181 |
+
msgstr "�ǥХå��ѥ����Ƚ��Ϥ�Ԥ�"
|
182 |
+
|
183 |
+
#: sitemap.php:643
|
184 |
+
msgid "Filename of the sitemap file"
|
185 |
+
msgstr "Sitemap �Υե�����̾"
|
186 |
+
|
187 |
+
#: sitemap.php:650
|
188 |
+
msgid "Write a normal XML file (your filename)"
|
189 |
+
msgstr "ɸ��� XML �ե��������Ϥ��� (filename)"
|
190 |
+
|
191 |
+
#: sitemap.php:652
|
192 |
+
msgid "Detected URL"
|
193 |
+
msgstr "Detected URL"
|
194 |
+
|
195 |
+
#: sitemap.php:657
|
196 |
+
msgid "Write a gzipped file (your filename + .gz)"
|
197 |
+
msgstr "gz ���̤��줿�ե��������Ϥ��� (filename + .gz)"
|
198 |
+
|
199 |
+
#: sitemap.php:664
|
200 |
+
msgid "Auto-Ping Google Sitemaps"
|
201 |
+
msgstr "Google Sitemap �˹��� ping ������"
|
202 |
+
|
203 |
+
#: sitemap.php:665
|
204 |
+
msgid "This option will automatically tell Google about changes."
|
205 |
+
msgstr "���Υ��ץ����ϡ��ѹ��� Google �˼�ưŪ�����Τ��ޤ���"
|
206 |
+
|
207 |
+
#: sitemap.php:672
|
208 |
+
msgid "Includings"
|
209 |
+
msgstr "Sitemap �˴ޤ�� ���ܤ�����"
|
210 |
+
|
211 |
+
#: sitemap.php:677
|
212 |
+
msgid "Include homepage"
|
213 |
+
msgstr "�ۡ���ڡ���"
|
214 |
+
|
215 |
+
#: sitemap.php:683
|
216 |
+
msgid "Include posts"
|
217 |
+
msgstr "��ơʳƥ���ȥ��"
|
218 |
+
|
219 |
+
#: sitemap.php:689
|
220 |
+
msgid "Include static pages"
|
221 |
+
msgstr "��Ū�ʥڡ���"
|
222 |
+
|
223 |
+
#: sitemap.php:695
|
224 |
+
msgid "Include categories"
|
225 |
+
msgstr "���ƥ�����"
|
226 |
+
|
227 |
+
#: sitemap.php:701
|
228 |
+
msgid "Include archives"
|
229 |
+
msgstr "������������"
|
230 |
+
|
231 |
+
#: sitemap.php:708
|
232 |
+
msgid "Change frequencies"
|
233 |
+
msgstr "��������(changefreq)������"
|
234 |
+
|
235 |
+
#: sitemap.php:709
|
236 |
+
msgid "Note"
|
237 |
+
msgstr "���"
|
238 |
+
|
239 |
+
#: sitemap.php:710
|
240 |
+
msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
|
241 |
+
msgstr "���Υ������ͤ�̿��ǤϤʤ��ҥ�Ȥ��ȹͤ����ޤ�������������Υ�������Ϥ���������θ������ޤ�����\"1���֤���\" ������ˤ��Ƥ⤽�����٤ǥ������뤷�ʤ����⤷��ʤ�����\"ǯ���٤�\" ����ˤ��Ƥ⤽�������ˤ˥������뤵��뤫�⤷��ޤ��ޤ� \"��������ʤ�\" �����ꤵ�줿�ڡ����⡢�פ������ʤ��Ѳ����Υڡ����������뤿��ˡ������餯������������Ū�˥������뤹��Ǥ��礦��"
|
242 |
+
|
243 |
+
#: sitemap.php:715
|
244 |
+
msgid "Homepage"
|
245 |
+
msgstr "�ۡ���ڡ���"
|
246 |
+
|
247 |
+
#: sitemap.php:721
|
248 |
+
msgid "Posts"
|
249 |
+
msgstr "��ơʳƥ���ȥ��"
|
250 |
+
|
251 |
+
#: sitemap.php:727
|
252 |
+
msgid "Static pages"
|
253 |
+
msgstr "��Ū�ʥڡ���"
|
254 |
+
|
255 |
+
#: sitemap.php:733
|
256 |
+
msgid "Categories"
|
257 |
+
msgstr "���ƥ�����"
|
258 |
+
|
259 |
+
#: sitemap.php:739
|
260 |
+
msgid "The current archive of this month (Should be the same like your homepage)"
|
261 |
+
msgstr "����Υ��������� (\"�ۡ���ڡ���\" �������Ʊ���ˤ��٤��Ǥ�)"
|
262 |
+
|
263 |
+
#: sitemap.php:745
|
264 |
+
msgid "Older archives (Changes only if you edit an old post)"
|
265 |
+
msgstr "�Ť����������� (�Ť���Ƥ��Խ������Ȥ������ѹ����Ƥ�������)"
|
266 |
+
|
267 |
+
#: sitemap.php:752
|
268 |
+
msgid "Priorities"
|
269 |
+
msgstr "ͥ����(priority)������"
|
270 |
+
|
271 |
+
#: sitemap.php:763
|
272 |
+
msgid "Posts (If auto calculation is disabled)"
|
273 |
+
msgstr "��ơʳƥ���ȥ�� (\"����Ū������\"�Ǽ�ư�������ꤷ�Ƥ��ʤ�����ͭ��)"
|
274 |
+
|
275 |
+
#: sitemap.php:769
|
276 |
+
msgid "Minimum post priority (Even if auto calculation is enabled)"
|
277 |
+
msgstr "��ơʳƥ���ȥ�ˤκǾ��� (\"����Ū������\"�Ǽ�ư�������ꤷ�Ƥ������ͭ��)"
|
278 |
+
|
279 |
+
#: sitemap.php:787
|
280 |
+
msgid "Archives"
|
281 |
+
msgstr "������������"
|
282 |
+
|
283 |
+
#: sitemap.php:793
|
284 |
+
msgid "Informations and support"
|
285 |
+
msgstr "����ȥ��ݡ���"
|
286 |
+
|
287 |
+
#: sitemap.php:794
|
288 |
+
msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
|
289 |
+
msgstr "�⤷������䵿�䡢��Ƥ������ %s �Υ��åץǡ��Ⱦ���䥳���Ȥ��ǧ���Ʋ�������"
|
290 |
+
|
291 |
+
#: sitemap.php:797
|
292 |
+
msgid "Update options"
|
293 |
+
msgstr "����� »"
|
294 |
+
|
295 |
+
#: sitemap.php:1033
|
296 |
+
msgid "URL:"
|
297 |
+
msgstr "URL:"
|
298 |
+
|
299 |
+
#: sitemap.php:1034
|
300 |
+
msgid "Path:"
|
301 |
+
msgstr "Path:"
|
302 |
+
|
303 |
+
#: sitemap.php:1037
|
304 |
+
msgid "Could not write into %s"
|
305 |
+
msgstr "%s �˽��ळ�Ȥ��Ǥ��ޤ���"
|
306 |
+
|
307 |
+
#: sitemap.php:1048
|
308 |
+
msgid "Successfully built sitemap file:"
|
309 |
+
msgstr "���ۤ��������� Sitemap �ե�����:"
|
310 |
+
|
311 |
+
#: sitemap.php:1048
|
312 |
+
msgid "Successfully built gzipped sitemap file:"
|
313 |
+
msgstr "���ۤ��������� gz ���̤��줿 Sitemap �ե�����:"
|
314 |
+
|
315 |
+
#: sitemap.php:1062
|
316 |
+
msgid "Could not ping to Google at %s"
|
317 |
+
msgstr "Google �ؤι��� ping ���������Ǥ��ޤ���Ǥ����� %s"
|
318 |
+
|
319 |
+
#: sitemap.php:1064
|
320 |
+
msgid "Successfully pinged Google at %s"
|
321 |
+
msgstr "Google �ؤι��� ping ���������������ޤ����� %s"
|
322 |
+
|
lang/sitemap-ja_SJIS.po
CHANGED
@@ -1,322 +1,322 @@
|
|
1 |
-
# Japanese Language File for sitemap (sitemap-ja_JP.UTF-8.po)
|
2 |
-
# Copyright (C) 2005 hiromasa : http://hiromasa.zone.ne.jp/
|
3 |
-
# This file is distributed under the same license as the WordPress package.
|
4 |
-
# hiromasa <webmaster@hiromasa.zone.ne.jp>, 2005.
|
5 |
-
#
|
6 |
-
msgid ""
|
7 |
-
msgstr ""
|
8 |
-
"Project-Id-Version: sitemap\n"
|
9 |
-
"Report-Msgid-Bugs-To: <webmaster@hiromasa.zone.ne.jp>\n"
|
10 |
-
"POT-Creation-Date: 2005-06-09 02:00+0900\n"
|
11 |
-
"PO-Revision-Date: 2005-07-03 23:17+0900\n"
|
12 |
-
"Last-Translator: hiromasa <webmaster@hiromasa.zone.ne.jp>\n"
|
13 |
-
"MIME-Version: 1.0\n"
|
14 |
-
"Content-Type: text/plain; charset=Shift_JIS\n"
|
15 |
-
"Content-Transfer-Encoding: 8bit\n"
|
16 |
-
"Language-Team: \n"
|
17 |
-
|
18 |
-
#: sitemap.php:375
|
19 |
-
msgid "always"
|
20 |
-
msgstr "����"
|
21 |
-
|
22 |
-
msgid "hourly"
|
23 |
-
msgstr "����"
|
24 |
-
|
25 |
-
msgid "daily"
|
26 |
-
msgstr "����"
|
27 |
-
|
28 |
-
msgid "weekly"
|
29 |
-
msgstr "���T"
|
30 |
-
|
31 |
-
msgid "monthly"
|
32 |
-
msgstr "����"
|
33 |
-
|
34 |
-
msgid "yearly"
|
35 |
-
msgstr "���N"
|
36 |
-
|
37 |
-
msgid "never"
|
38 |
-
msgstr "�X�V����Ȃ�"
|
39 |
-
|
40 |
-
msgid "Detected Path"
|
41 |
-
msgstr "�p�X�̒��ڐݒ�"
|
42 |
-
|
43 |
-
msgid "Example"
|
44 |
-
msgstr "��"
|
45 |
-
|
46 |
-
msgid "Absolute or relative path to the sitemap file, including name."
|
47 |
-
msgstr "�t�@�C�������܂� Sitemap �t�@�C���ւ̑��������͐�p�X"
|
48 |
-
|
49 |
-
msgid "Complete URL to the sitemap file, including name."
|
50 |
-
msgstr "�t�@�C�������܂� Sitemap �t�@�C���ւ̊��S�� URL"
|
51 |
-
|
52 |
-
msgid "Automatic location"
|
53 |
-
msgstr "�����z�u"
|
54 |
-
|
55 |
-
msgid "Manual location"
|
56 |
-
msgstr "�蓮�z�u"
|
57 |
-
|
58 |
-
msgid "OR"
|
59 |
-
msgstr "��������"
|
60 |
-
|
61 |
-
msgid "Location of your sitemap file"
|
62 |
-
msgstr "Sitemap �t�@�C���̏ꏊ"
|
63 |
-
|
64 |
-
msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the "Location of your sitemap file" section on this page)!"
|
65 |
-
msgstr "�������Ȃ��̃u���O���T�u�f�B���N�g���ɔz�u����Ă���ꍇ�ɁA�u���O�f�B���N�g���ȊO�̃y�[�W�� Sitemap �Ɋ܂߂����Ƃ��́ASitemap �t�@�C�������[�g�f�B���N�g���ɔz�u���ׂ��ł��B�i���̃y�[�W�� "Sitemap �t�@�C���̏ꏊ" �ݒ���m�F���ĉ������j"
|
66 |
-
|
67 |
-
#: sitemap.php:512
|
68 |
-
msgid "Configuration updated"
|
69 |
-
msgstr "�ݒ���X�V���܂����B"
|
70 |
-
|
71 |
-
#: sitemap.php:513
|
72 |
-
msgid "Error"
|
73 |
-
msgstr "�G���[�ł��B"
|
74 |
-
|
75 |
-
#: sitemap.php:521
|
76 |
-
msgid "A new page was added. Click on "Save page changes" to save your changes."
|
77 |
-
msgstr "�V�����lj��y�[�W�i�̐ݒ藓�j�������܂����B �i�y�[�W�̏�����͌�j"�ύX�̕ۑ�" ���������Đݒ��ۑ����ĉ������B"
|
78 |
-
|
79 |
-
#: sitemap.php:527
|
80 |
-
msgid "Pages saved"
|
81 |
-
msgstr "�lj��y�[�W�̐ݒ��ۑ����܂����B"
|
82 |
-
|
83 |
-
#: sitemap.php:528
|
84 |
-
msgid "Error while saving pages"
|
85 |
-
msgstr "�lj��y�[�W�̐ݒ�̕ۑ����ɃG���[���������܂����B"
|
86 |
-
|
87 |
-
#: sitemap.php:539
|
88 |
-
msgid "The page was deleted. Click on "Save page changes" to save your changes."
|
89 |
-
msgstr "�w�肳�ꂽ�lj��y�[�W�i�̐ݒ藓�j���폜���܂����B "�ύX�̕ۑ�" ���������Đݒ��ۑ����ĉ������B"
|
90 |
-
|
91 |
-
#: sitemap.php:542
|
92 |
-
msgid "You changes have been cleared."
|
93 |
-
msgstr "�ύX�͊��ɍ폜����Ă��܂��B"
|
94 |
-
|
95 |
-
#: sitemap.php:555
|
96 |
-
msgid "Sitemap Generator"
|
97 |
-
msgstr "Sitemap Generator"
|
98 |
-
|
99 |
-
#: sitemap.php:558
|
100 |
-
msgid "Manual rebuild"
|
101 |
-
msgstr "�蓮�ɂ�� Sitemap �t�@�C���̍č\�z"
|
102 |
-
|
103 |
-
#: sitemap.php:559
|
104 |
-
msgid "If you want to build the sitemap without editing a post, click on here!"
|
105 |
-
msgstr "�������e�̕ҏW�Ȃ��� Sitemap �t�@�C�����č\�z�������ꍇ�͂��̃{�^�����������Ă�������!"
|
106 |
-
|
107 |
-
#: sitemap.php:560
|
108 |
-
msgid "Rebuild Sitemap"
|
109 |
-
msgstr "Sitemap �̍č\�z"
|
110 |
-
|
111 |
-
#: sitemap.php:564
|
112 |
-
msgid "Additional pages"
|
113 |
-
msgstr "�lj��y�[�W�̐ݒ�"
|
114 |
-
|
115 |
-
#: sitemap.php:566
|
116 |
-
msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
|
117 |
-
msgstr "�����ŁASitemap �Ɋ܂܂��ׂ��ł��� URL ���w�肷�邱�Ƃ��ł��܂��B �������A�����Ŏw�肷�� URL �� WordPress/Blog �ɑ����Ă͂����܂���B<br />�Ⴆ�h���C���� www.foo.com �Ńu���O�� www.foo.com/blog �������ꍇ�A���Ȃ��� www.foo.com �� Sitemap �Ɋ܂݂����Ǝv����������܂���B�i��: ���̍��ڂ� WordPress �ȊO�� URL ���w�肵�A�v���O�C���ŏo�͂��� Sitemap �Ɋ܂߂邱�Ƃ��ł��܂��j"
|
118 |
-
|
119 |
-
#: sitemap.php:568
|
120 |
-
msgid "URL to the page"
|
121 |
-
msgstr "���̃y�[�W��URL"
|
122 |
-
|
123 |
-
#: sitemap.php:569
|
124 |
-
msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
|
125 |
-
msgstr "���̃y�[�W��URL ����͂��ĉ������B ��: http://www.foo.com/index.html �� www.foo.com/home "
|
126 |
-
|
127 |
-
#: sitemap.php:571
|
128 |
-
msgid "Priority"
|
129 |
-
msgstr "�D�揇��(priority)�̐ݒ�"
|
130 |
-
|
131 |
-
#: sitemap.php:572
|
132 |
-
msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
|
133 |
-
msgstr "���̃y�[�W�ɔ�Ⴕ���y�[�W�̗D�揇��(priority)��I��ł��������B �Ⴆ�A���Ȃ��̃z�[���y�[�W�́A���L�̃y�[�W��荂���D��x�����邩������܂���B"
|
134 |
-
|
135 |
-
#: sitemap.php:574
|
136 |
-
msgid "Last Changed"
|
137 |
-
msgstr "�ŏI�X�V��"
|
138 |
-
|
139 |
-
#: sitemap.php:575
|
140 |
-
msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
|
141 |
-
msgstr "�ŏI�X�V���� YYYY-MM-DD �`���œ��͂��ĉ������B"
|
142 |
-
|
143 |
-
#: sitemap.php:583
|
144 |
-
msgid "Change Frequency"
|
145 |
-
msgstr "�X�V�p�x(changefreq)�̐ݒ�"
|
146 |
-
|
147 |
-
#: sitemap.php:585
|
148 |
-
msgid "#"
|
149 |
-
msgstr "#"
|
150 |
-
|
151 |
-
#: sitemap.php:609
|
152 |
-
msgid "No pages defined."
|
153 |
-
msgstr "�lj��y�[�W�͒�`����Ă��܂���B"
|
154 |
-
|
155 |
-
#: sitemap.php:616
|
156 |
-
msgid "Add new page"
|
157 |
-
msgstr "�V�����y�[�W�̒lj�"
|
158 |
-
|
159 |
-
#: sitemap.php:617
|
160 |
-
msgid "Save page changes"
|
161 |
-
msgstr "�ύX�̕ۑ�"
|
162 |
-
|
163 |
-
#: sitemap.php:618
|
164 |
-
msgid "Undo all page changes"
|
165 |
-
msgstr "�y�[�W�̕ύX�����ɖ߂�"
|
166 |
-
|
167 |
-
#: sitemap.php:621
|
168 |
-
msgid "Delete marked page"
|
169 |
-
msgstr "�}�[�N���ꂽ�y�[�W�̍폜"
|
170 |
-
|
171 |
-
#: sitemap.php:627
|
172 |
-
msgid "Basic Options"
|
173 |
-
msgstr "��{�I�Ȑݒ�"
|
174 |
-
|
175 |
-
#: sitemap.php:632
|
176 |
-
msgid "Enable automatic priority calculation for posts based on comment count"
|
177 |
-
msgstr "���e�ɑ���R�����g���ŁA���e�i�e�G���g���j�̗D�揇��(priority)�������v�Z����@�\��L���ɂ���"
|
178 |
-
|
179 |
-
#: sitemap.php:638
|
180 |
-
msgid "Write debug comments"
|
181 |
-
msgstr "�f�o�b�O�p�R�����g�o�͂��s��"
|
182 |
-
|
183 |
-
#: sitemap.php:643
|
184 |
-
msgid "Filename of the sitemap file"
|
185 |
-
msgstr "Sitemap �̃t�@�C����"
|
186 |
-
|
187 |
-
#: sitemap.php:650
|
188 |
-
msgid "Write a normal XML file (your filename)"
|
189 |
-
msgstr "�W���� XML �t�@�C�����o�͂��� (filename)"
|
190 |
-
|
191 |
-
#: sitemap.php:652
|
192 |
-
msgid "Detected URL"
|
193 |
-
msgstr "Detected URL"
|
194 |
-
|
195 |
-
#: sitemap.php:657
|
196 |
-
msgid "Write a gzipped file (your filename + .gz)"
|
197 |
-
msgstr "gz ���k���ꂽ�t�@�C�����o�͂��� (filename + .gz)"
|
198 |
-
|
199 |
-
#: sitemap.php:664
|
200 |
-
msgid "Auto-Ping Google Sitemaps"
|
201 |
-
msgstr "Google Sitemap �ɍX�V ping �𑗂�"
|
202 |
-
|
203 |
-
#: sitemap.php:665
|
204 |
-
msgid "This option will automatically tell Google about changes."
|
205 |
-
msgstr "���̃I�v�V�����́A�ύX�� Google �Ɏ����I�ɒʒm���܂��B"
|
206 |
-
|
207 |
-
#: sitemap.php:672
|
208 |
-
msgid "Includings"
|
209 |
-
msgstr "Sitemap �Ɋ܂߂� ���ڂ̐ݒ�"
|
210 |
-
|
211 |
-
#: sitemap.php:677
|
212 |
-
msgid "Include homepage"
|
213 |
-
msgstr "�z�[���y�[�W"
|
214 |
-
|
215 |
-
#: sitemap.php:683
|
216 |
-
msgid "Include posts"
|
217 |
-
msgstr "���e�i�e�G���g���j"
|
218 |
-
|
219 |
-
#: sitemap.php:689
|
220 |
-
msgid "Include static pages"
|
221 |
-
msgstr "�ÓI�ȃy�[�W"
|
222 |
-
|
223 |
-
#: sitemap.php:695
|
224 |
-
msgid "Include categories"
|
225 |
-
msgstr "�J�e�S����"
|
226 |
-
|
227 |
-
#: sitemap.php:701
|
228 |
-
msgid "Include archives"
|
229 |
-
msgstr "�A�[�J�C�u��"
|
230 |
-
|
231 |
-
#: sitemap.php:708
|
232 |
-
msgid "Change frequencies"
|
233 |
-
msgstr "�X�V�p�x(changefreq)�̐ݒ�"
|
234 |
-
|
235 |
-
#: sitemap.php:709
|
236 |
-
msgid "Note"
|
237 |
-
msgstr "����"
|
238 |
-
|
239 |
-
#: sitemap.php:710
|
240 |
-
msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
|
241 |
-
msgstr "���̃^�O�̒l�͖��߂ł͂Ȃ��q���g���ƍl�����܂��B�T�[�`�G���W���̃N���[���͂��̐ݒ���l���ɓ���܂����A\"1���Ԃ���\" �̐ݒ�ɂ��Ă����̕p�x�ŃN���[�����Ȃ���������Ȃ����A\"�N��x��\" �ݒ�ɂ��Ă�������p�ɂɃN���[������邩������܂���B�܂� \"�X�V����Ȃ�\" �ɐݒ肳�ꂽ�y�[�W���A�v�������Ȃ��ω��������̃y�[�W���瓾�邽�߂ɁA�����炭�N���[���͒���I�ɃN���[������ł��傤�B"
|
242 |
-
|
243 |
-
#: sitemap.php:715
|
244 |
-
msgid "Homepage"
|
245 |
-
msgstr "�z�[���y�[�W"
|
246 |
-
|
247 |
-
#: sitemap.php:721
|
248 |
-
msgid "Posts"
|
249 |
-
msgstr "���e�i�e�G���g���j"
|
250 |
-
|
251 |
-
#: sitemap.php:727
|
252 |
-
msgid "Static pages"
|
253 |
-
msgstr "�ÓI�ȃy�[�W"
|
254 |
-
|
255 |
-
#: sitemap.php:733
|
256 |
-
msgid "Categories"
|
257 |
-
msgstr "�J�e�S����"
|
258 |
-
|
259 |
-
#: sitemap.php:739
|
260 |
-
msgid "The current archive of this month (Should be the same like your homepage)"
|
261 |
-
msgstr "�����̃A�[�J�C�u (\"�z�[���y�[�W\" �̐ݒ�Ɠ����ɂ��ׂ��ł�)"
|
262 |
-
|
263 |
-
#: sitemap.php:745
|
264 |
-
msgid "Older archives (Changes only if you edit an old post)"
|
265 |
-
msgstr "�Â��A�[�J�C�u (�Â����e��ҏW�����Ƃ������ύX���Ă�������)"
|
266 |
-
|
267 |
-
#: sitemap.php:752
|
268 |
-
msgid "Priorities"
|
269 |
-
msgstr "�D�揇��(priority)�̐ݒ�"
|
270 |
-
|
271 |
-
#: sitemap.php:763
|
272 |
-
msgid "Posts (If auto calculation is disabled)"
|
273 |
-
msgstr "���e�i�e�G���g���j (\"��{�I�Ȑݒ�\"�Ŏ����v�Z�ɐݒ肵�Ă��Ȃ��ꍇ�ɗL��)"
|
274 |
-
|
275 |
-
#: sitemap.php:769
|
276 |
-
msgid "Minimum post priority (Even if auto calculation is enabled)"
|
277 |
-
msgstr "���e�i�e�G���g���j�̍ŏ��l (\"��{�I�Ȑݒ�\"�Ŏ����v�Z�ɐݒ肵�Ă���ꍇ�ɗL��)"
|
278 |
-
|
279 |
-
#: sitemap.php:787
|
280 |
-
msgid "Archives"
|
281 |
-
msgstr "�A�[�J�C�u��"
|
282 |
-
|
283 |
-
#: sitemap.php:793
|
284 |
-
msgid "Informations and support"
|
285 |
-
msgstr "���ƃT�|�[�g"
|
286 |
-
|
287 |
-
#: sitemap.php:794
|
288 |
-
msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
|
289 |
-
msgstr "�����A����^��A��Ă������ %s �̃A�b�v�f�[�g����R�����g���m�F���ĉ������B"
|
290 |
-
|
291 |
-
#: sitemap.php:797
|
292 |
-
msgid "Update options"
|
293 |
-
msgstr "�ݒ���X�V »"
|
294 |
-
|
295 |
-
#: sitemap.php:1033
|
296 |
-
msgid "URL:"
|
297 |
-
msgstr "URL:"
|
298 |
-
|
299 |
-
#: sitemap.php:1034
|
300 |
-
msgid "Path:"
|
301 |
-
msgstr "Path:"
|
302 |
-
|
303 |
-
#: sitemap.php:1037
|
304 |
-
msgid "Could not write into %s"
|
305 |
-
msgstr "%s �ɏ������ނ��Ƃ��ł��܂���B"
|
306 |
-
|
307 |
-
#: sitemap.php:1048
|
308 |
-
msgid "Successfully built sitemap file:"
|
309 |
-
msgstr "�\�z�ɐ������� Sitemap �t�@�C��:"
|
310 |
-
|
311 |
-
#: sitemap.php:1048
|
312 |
-
msgid "Successfully built gzipped sitemap file:"
|
313 |
-
msgstr "�\�z�ɐ������� gz ���k���ꂽ Sitemap �t�@�C��:"
|
314 |
-
|
315 |
-
#: sitemap.php:1062
|
316 |
-
msgid "Could not ping to Google at %s"
|
317 |
-
msgstr "Google �ւ̍X�V ping �̑��M���ł��܂���ł����B %s"
|
318 |
-
|
319 |
-
#: sitemap.php:1064
|
320 |
-
msgid "Successfully pinged Google at %s"
|
321 |
-
msgstr "Google �ւ̍X�V ping �̑��M���������܂����B %s"
|
322 |
-
|
1 |
+
# Japanese Language File for sitemap (sitemap-ja_JP.UTF-8.po)
|
2 |
+
# Copyright (C) 2005 hiromasa : http://hiromasa.zone.ne.jp/
|
3 |
+
# This file is distributed under the same license as the WordPress package.
|
4 |
+
# hiromasa <webmaster@hiromasa.zone.ne.jp>, 2005.
|
5 |
+
#
|
6 |
+
msgid ""
|
7 |
+
msgstr ""
|
8 |
+
"Project-Id-Version: sitemap\n"
|
9 |
+
"Report-Msgid-Bugs-To: <webmaster@hiromasa.zone.ne.jp>\n"
|
10 |
+
"POT-Creation-Date: 2005-06-09 02:00+0900\n"
|
11 |
+
"PO-Revision-Date: 2005-07-03 23:17+0900\n"
|
12 |
+
"Last-Translator: hiromasa <webmaster@hiromasa.zone.ne.jp>\n"
|
13 |
+
"MIME-Version: 1.0\n"
|
14 |
+
"Content-Type: text/plain; charset=Shift_JIS\n"
|
15 |
+
"Content-Transfer-Encoding: 8bit\n"
|
16 |
+
"Language-Team: \n"
|
17 |
+
|
18 |
+
#: sitemap.php:375
|
19 |
+
msgid "always"
|
20 |
+
msgstr "����"
|
21 |
+
|
22 |
+
msgid "hourly"
|
23 |
+
msgstr "����"
|
24 |
+
|
25 |
+
msgid "daily"
|
26 |
+
msgstr "����"
|
27 |
+
|
28 |
+
msgid "weekly"
|
29 |
+
msgstr "���T"
|
30 |
+
|
31 |
+
msgid "monthly"
|
32 |
+
msgstr "����"
|
33 |
+
|
34 |
+
msgid "yearly"
|
35 |
+
msgstr "���N"
|
36 |
+
|
37 |
+
msgid "never"
|
38 |
+
msgstr "�X�V����Ȃ�"
|
39 |
+
|
40 |
+
msgid "Detected Path"
|
41 |
+
msgstr "�p�X�̒��ڐݒ�"
|
42 |
+
|
43 |
+
msgid "Example"
|
44 |
+
msgstr "��"
|
45 |
+
|
46 |
+
msgid "Absolute or relative path to the sitemap file, including name."
|
47 |
+
msgstr "�t�@�C�������܂� Sitemap �t�@�C���ւ̑��������͐�p�X"
|
48 |
+
|
49 |
+
msgid "Complete URL to the sitemap file, including name."
|
50 |
+
msgstr "�t�@�C�������܂� Sitemap �t�@�C���ւ̊��S�� URL"
|
51 |
+
|
52 |
+
msgid "Automatic location"
|
53 |
+
msgstr "�����z�u"
|
54 |
+
|
55 |
+
msgid "Manual location"
|
56 |
+
msgstr "�蓮�z�u"
|
57 |
+
|
58 |
+
msgid "OR"
|
59 |
+
msgstr "��������"
|
60 |
+
|
61 |
+
msgid "Location of your sitemap file"
|
62 |
+
msgstr "Sitemap �t�@�C���̏ꏊ"
|
63 |
+
|
64 |
+
msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the "Location of your sitemap file" section on this page)!"
|
65 |
+
msgstr "�������Ȃ��̃u���O���T�u�f�B���N�g���ɔz�u����Ă���ꍇ�ɁA�u���O�f�B���N�g���ȊO�̃y�[�W�� Sitemap �Ɋ܂߂����Ƃ��́ASitemap �t�@�C�������[�g�f�B���N�g���ɔz�u���ׂ��ł��B�i���̃y�[�W�� "Sitemap �t�@�C���̏ꏊ" �ݒ���m�F���ĉ������j"
|
66 |
+
|
67 |
+
#: sitemap.php:512
|
68 |
+
msgid "Configuration updated"
|
69 |
+
msgstr "�ݒ���X�V���܂����B"
|
70 |
+
|
71 |
+
#: sitemap.php:513
|
72 |
+
msgid "Error"
|
73 |
+
msgstr "�G���[�ł��B"
|
74 |
+
|
75 |
+
#: sitemap.php:521
|
76 |
+
msgid "A new page was added. Click on "Save page changes" to save your changes."
|
77 |
+
msgstr "�V�����lj��y�[�W�i�̐ݒ藓�j�������܂����B �i�y�[�W�̏�����͌�j"�ύX�̕ۑ�" ���������Đݒ��ۑ����ĉ������B"
|
78 |
+
|
79 |
+
#: sitemap.php:527
|
80 |
+
msgid "Pages saved"
|
81 |
+
msgstr "�lj��y�[�W�̐ݒ��ۑ����܂����B"
|
82 |
+
|
83 |
+
#: sitemap.php:528
|
84 |
+
msgid "Error while saving pages"
|
85 |
+
msgstr "�lj��y�[�W�̐ݒ�̕ۑ����ɃG���[���������܂����B"
|
86 |
+
|
87 |
+
#: sitemap.php:539
|
88 |
+
msgid "The page was deleted. Click on "Save page changes" to save your changes."
|
89 |
+
msgstr "�w�肳�ꂽ�lj��y�[�W�i�̐ݒ藓�j���폜���܂����B "�ύX�̕ۑ�" ���������Đݒ��ۑ����ĉ������B"
|
90 |
+
|
91 |
+
#: sitemap.php:542
|
92 |
+
msgid "You changes have been cleared."
|
93 |
+
msgstr "�ύX�͊��ɍ폜����Ă��܂��B"
|
94 |
+
|
95 |
+
#: sitemap.php:555
|
96 |
+
msgid "Sitemap Generator"
|
97 |
+
msgstr "Sitemap Generator"
|
98 |
+
|
99 |
+
#: sitemap.php:558
|
100 |
+
msgid "Manual rebuild"
|
101 |
+
msgstr "�蓮�ɂ�� Sitemap �t�@�C���̍č\�z"
|
102 |
+
|
103 |
+
#: sitemap.php:559
|
104 |
+
msgid "If you want to build the sitemap without editing a post, click on here!"
|
105 |
+
msgstr "�������e�̕ҏW�Ȃ��� Sitemap �t�@�C�����č\�z�������ꍇ�͂��̃{�^�����������Ă�������!"
|
106 |
+
|
107 |
+
#: sitemap.php:560
|
108 |
+
msgid "Rebuild Sitemap"
|
109 |
+
msgstr "Sitemap �̍č\�z"
|
110 |
+
|
111 |
+
#: sitemap.php:564
|
112 |
+
msgid "Additional pages"
|
113 |
+
msgstr "�lj��y�[�W�̐ݒ�"
|
114 |
+
|
115 |
+
#: sitemap.php:566
|
116 |
+
msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
|
117 |
+
msgstr "�����ŁASitemap �Ɋ܂܂��ׂ��ł��� URL ���w�肷�邱�Ƃ��ł��܂��B �������A�����Ŏw�肷�� URL �� WordPress/Blog �ɑ����Ă͂����܂���B<br />�Ⴆ�h���C���� www.foo.com �Ńu���O�� www.foo.com/blog �������ꍇ�A���Ȃ��� www.foo.com �� Sitemap �Ɋ܂݂����Ǝv����������܂���B�i��: ���̍��ڂ� WordPress �ȊO�� URL ���w�肵�A�v���O�C���ŏo�͂��� Sitemap �Ɋ܂߂邱�Ƃ��ł��܂��j"
|
118 |
+
|
119 |
+
#: sitemap.php:568
|
120 |
+
msgid "URL to the page"
|
121 |
+
msgstr "���̃y�[�W��URL"
|
122 |
+
|
123 |
+
#: sitemap.php:569
|
124 |
+
msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
|
125 |
+
msgstr "���̃y�[�W��URL ����͂��ĉ������B ��: http://www.foo.com/index.html �� www.foo.com/home "
|
126 |
+
|
127 |
+
#: sitemap.php:571
|
128 |
+
msgid "Priority"
|
129 |
+
msgstr "�D�揇��(priority)�̐ݒ�"
|
130 |
+
|
131 |
+
#: sitemap.php:572
|
132 |
+
msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
|
133 |
+
msgstr "���̃y�[�W�ɔ�Ⴕ���y�[�W�̗D�揇��(priority)��I��ł��������B �Ⴆ�A���Ȃ��̃z�[���y�[�W�́A���L�̃y�[�W��荂���D��x�����邩������܂���B"
|
134 |
+
|
135 |
+
#: sitemap.php:574
|
136 |
+
msgid "Last Changed"
|
137 |
+
msgstr "�ŏI�X�V��"
|
138 |
+
|
139 |
+
#: sitemap.php:575
|
140 |
+
msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
|
141 |
+
msgstr "�ŏI�X�V���� YYYY-MM-DD �`���œ��͂��ĉ������B"
|
142 |
+
|
143 |
+
#: sitemap.php:583
|
144 |
+
msgid "Change Frequency"
|
145 |
+
msgstr "�X�V�p�x(changefreq)�̐ݒ�"
|
146 |
+
|
147 |
+
#: sitemap.php:585
|
148 |
+
msgid "#"
|
149 |
+
msgstr "#"
|
150 |
+
|
151 |
+
#: sitemap.php:609
|
152 |
+
msgid "No pages defined."
|
153 |
+
msgstr "�lj��y�[�W�͒�`����Ă��܂���B"
|
154 |
+
|
155 |
+
#: sitemap.php:616
|
156 |
+
msgid "Add new page"
|
157 |
+
msgstr "�V�����y�[�W�̒lj�"
|
158 |
+
|
159 |
+
#: sitemap.php:617
|
160 |
+
msgid "Save page changes"
|
161 |
+
msgstr "�ύX�̕ۑ�"
|
162 |
+
|
163 |
+
#: sitemap.php:618
|
164 |
+
msgid "Undo all page changes"
|
165 |
+
msgstr "�y�[�W�̕ύX�����ɖ߂�"
|
166 |
+
|
167 |
+
#: sitemap.php:621
|
168 |
+
msgid "Delete marked page"
|
169 |
+
msgstr "�}�[�N���ꂽ�y�[�W�̍폜"
|
170 |
+
|
171 |
+
#: sitemap.php:627
|
172 |
+
msgid "Basic Options"
|
173 |
+
msgstr "��{�I�Ȑݒ�"
|
174 |
+
|
175 |
+
#: sitemap.php:632
|
176 |
+
msgid "Enable automatic priority calculation for posts based on comment count"
|
177 |
+
msgstr "���e�ɑ���R�����g���ŁA���e�i�e�G���g���j�̗D�揇��(priority)�������v�Z����@�\��L���ɂ���"
|
178 |
+
|
179 |
+
#: sitemap.php:638
|
180 |
+
msgid "Write debug comments"
|
181 |
+
msgstr "�f�o�b�O�p�R�����g�o�͂��s��"
|
182 |
+
|
183 |
+
#: sitemap.php:643
|
184 |
+
msgid "Filename of the sitemap file"
|
185 |
+
msgstr "Sitemap �̃t�@�C����"
|
186 |
+
|
187 |
+
#: sitemap.php:650
|
188 |
+
msgid "Write a normal XML file (your filename)"
|
189 |
+
msgstr "�W���� XML �t�@�C�����o�͂��� (filename)"
|
190 |
+
|
191 |
+
#: sitemap.php:652
|
192 |
+
msgid "Detected URL"
|
193 |
+
msgstr "Detected URL"
|
194 |
+
|
195 |
+
#: sitemap.php:657
|
196 |
+
msgid "Write a gzipped file (your filename + .gz)"
|
197 |
+
msgstr "gz ���k���ꂽ�t�@�C�����o�͂��� (filename + .gz)"
|
198 |
+
|
199 |
+
#: sitemap.php:664
|
200 |
+
msgid "Auto-Ping Google Sitemaps"
|
201 |
+
msgstr "Google Sitemap �ɍX�V ping �𑗂�"
|
202 |
+
|
203 |
+
#: sitemap.php:665
|
204 |
+
msgid "This option will automatically tell Google about changes."
|
205 |
+
msgstr "���̃I�v�V�����́A�ύX�� Google �Ɏ����I�ɒʒm���܂��B"
|
206 |
+
|
207 |
+
#: sitemap.php:672
|
208 |
+
msgid "Includings"
|
209 |
+
msgstr "Sitemap �Ɋ܂߂� ���ڂ̐ݒ�"
|
210 |
+
|
211 |
+
#: sitemap.php:677
|
212 |
+
msgid "Include homepage"
|
213 |
+
msgstr "�z�[���y�[�W"
|
214 |
+
|
215 |
+
#: sitemap.php:683
|
216 |
+
msgid "Include posts"
|
217 |
+
msgstr "���e�i�e�G���g���j"
|
218 |
+
|
219 |
+
#: sitemap.php:689
|
220 |
+
msgid "Include static pages"
|
221 |
+
msgstr "�ÓI�ȃy�[�W"
|
222 |
+
|
223 |
+
#: sitemap.php:695
|
224 |
+
msgid "Include categories"
|
225 |
+
msgstr "�J�e�S����"
|
226 |
+
|
227 |
+
#: sitemap.php:701
|
228 |
+
msgid "Include archives"
|
229 |
+
msgstr "�A�[�J�C�u��"
|
230 |
+
|
231 |
+
#: sitemap.php:708
|
232 |
+
msgid "Change frequencies"
|
233 |
+
msgstr "�X�V�p�x(changefreq)�̐ݒ�"
|
234 |
+
|
235 |
+
#: sitemap.php:709
|
236 |
+
msgid "Note"
|
237 |
+
msgstr "����"
|
238 |
+
|
239 |
+
#: sitemap.php:710
|
240 |
+
msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
|
241 |
+
msgstr "���̃^�O�̒l�͖��߂ł͂Ȃ��q���g���ƍl�����܂��B�T�[�`�G���W���̃N���[���͂��̐ݒ���l���ɓ���܂����A\"1���Ԃ���\" �̐ݒ�ɂ��Ă����̕p�x�ŃN���[�����Ȃ���������Ȃ����A\"�N��x��\" �ݒ�ɂ��Ă�������p�ɂɃN���[������邩������܂���B�܂� \"�X�V����Ȃ�\" �ɐݒ肳�ꂽ�y�[�W���A�v�������Ȃ��ω��������̃y�[�W���瓾�邽�߂ɁA�����炭�N���[���͒���I�ɃN���[������ł��傤�B"
|
242 |
+
|
243 |
+
#: sitemap.php:715
|
244 |
+
msgid "Homepage"
|
245 |
+
msgstr "�z�[���y�[�W"
|
246 |
+
|
247 |
+
#: sitemap.php:721
|
248 |
+
msgid "Posts"
|
249 |
+
msgstr "���e�i�e�G���g���j"
|
250 |
+
|
251 |
+
#: sitemap.php:727
|
252 |
+
msgid "Static pages"
|
253 |
+
msgstr "�ÓI�ȃy�[�W"
|
254 |
+
|
255 |
+
#: sitemap.php:733
|
256 |
+
msgid "Categories"
|
257 |
+
msgstr "�J�e�S����"
|
258 |
+
|
259 |
+
#: sitemap.php:739
|
260 |
+
msgid "The current archive of this month (Should be the same like your homepage)"
|
261 |
+
msgstr "�����̃A�[�J�C�u (\"�z�[���y�[�W\" �̐ݒ�Ɠ����ɂ��ׂ��ł�)"
|
262 |
+
|
263 |
+
#: sitemap.php:745
|
264 |
+
msgid "Older archives (Changes only if you edit an old post)"
|
265 |
+
msgstr "�Â��A�[�J�C�u (�Â����e��ҏW�����Ƃ������ύX���Ă�������)"
|
266 |
+
|
267 |
+
#: sitemap.php:752
|
268 |
+
msgid "Priorities"
|
269 |
+
msgstr "�D�揇��(priority)�̐ݒ�"
|
270 |
+
|
271 |
+
#: sitemap.php:763
|
272 |
+
msgid "Posts (If auto calculation is disabled)"
|
273 |
+
msgstr "���e�i�e�G���g���j (\"��{�I�Ȑݒ�\"�Ŏ����v�Z�ɐݒ肵�Ă��Ȃ��ꍇ�ɗL��)"
|
274 |
+
|
275 |
+
#: sitemap.php:769
|
276 |
+
msgid "Minimum post priority (Even if auto calculation is enabled)"
|
277 |
+
msgstr "���e�i�e�G���g���j�̍ŏ��l (\"��{�I�Ȑݒ�\"�Ŏ����v�Z�ɐݒ肵�Ă���ꍇ�ɗL��)"
|
278 |
+
|
279 |
+
#: sitemap.php:787
|
280 |
+
msgid "Archives"
|
281 |
+
msgstr "�A�[�J�C�u��"
|
282 |
+
|
283 |
+
#: sitemap.php:793
|
284 |
+
msgid "Informations and support"
|
285 |
+
msgstr "���ƃT�|�[�g"
|
286 |
+
|
287 |
+
#: sitemap.php:794
|
288 |
+
msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
|
289 |
+
msgstr "�����A����^��A��Ă������ %s �̃A�b�v�f�[�g����R�����g���m�F���ĉ������B"
|
290 |
+
|
291 |
+
#: sitemap.php:797
|
292 |
+
msgid "Update options"
|
293 |
+
msgstr "�ݒ���X�V »"
|
294 |
+
|
295 |
+
#: sitemap.php:1033
|
296 |
+
msgid "URL:"
|
297 |
+
msgstr "URL:"
|
298 |
+
|
299 |
+
#: sitemap.php:1034
|
300 |
+
msgid "Path:"
|
301 |
+
msgstr "Path:"
|
302 |
+
|
303 |
+
#: sitemap.php:1037
|
304 |
+
msgid "Could not write into %s"
|
305 |
+
msgstr "%s �ɏ������ނ��Ƃ��ł��܂���B"
|
306 |
+
|
307 |
+
#: sitemap.php:1048
|
308 |
+
msgid "Successfully built sitemap file:"
|
309 |
+
msgstr "�\�z�ɐ������� Sitemap �t�@�C��:"
|
310 |
+
|
311 |
+
#: sitemap.php:1048
|
312 |
+
msgid "Successfully built gzipped sitemap file:"
|
313 |
+
msgstr "�\�z�ɐ������� gz ���k���ꂽ Sitemap �t�@�C��:"
|
314 |
+
|
315 |
+
#: sitemap.php:1062
|
316 |
+
msgid "Could not ping to Google at %s"
|
317 |
+
msgstr "Google �ւ̍X�V ping �̑��M���ł��܂���ł����B %s"
|
318 |
+
|
319 |
+
#: sitemap.php:1064
|
320 |
+
msgid "Successfully pinged Google at %s"
|
321 |
+
msgstr "Google �ւ̍X�V ping �̑��M���������܂����B %s"
|
322 |
+
|
lang/sitemap-ja_UTF.po
CHANGED
@@ -1,322 +1,322 @@
|
|
1 |
-
# Japanese Language File for sitemap (sitemap-ja_JP.UTF-8.po)
|
2 |
-
# Copyright (C) 2005 hiromasa : http://hiromasa.zone.ne.jp/
|
3 |
-
# This file is distributed under the same license as the WordPress package.
|
4 |
-
# hiromasa <webmaster@hiromasa.zone.ne.jp>, 2005.
|
5 |
-
#
|
6 |
-
msgid ""
|
7 |
-
msgstr ""
|
8 |
-
"Project-Id-Version: sitemap\n"
|
9 |
-
"Report-Msgid-Bugs-To: <webmaster@hiromasa.zone.ne.jp>\n"
|
10 |
-
"POT-Creation-Date: 2005-06-09 02:00+0900\n"
|
11 |
-
"PO-Revision-Date: 2005-07-03 23:17+0900\n"
|
12 |
-
"Last-Translator: hiromasa <webmaster@hiromasa.zone.ne.jp>\n"
|
13 |
-
"MIME-Version: 1.0\n"
|
14 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
15 |
-
"Content-Transfer-Encoding: 8bit\n"
|
16 |
-
"Language-Team: \n"
|
17 |
-
|
18 |
-
#: sitemap.php:375
|
19 |
-
msgid "always"
|
20 |
-
msgstr "いつも"
|
21 |
-
|
22 |
-
msgid "hourly"
|
23 |
-
msgstr "毎時"
|
24 |
-
|
25 |
-
msgid "daily"
|
26 |
-
msgstr "毎日"
|
27 |
-
|
28 |
-
msgid "weekly"
|
29 |
-
msgstr "毎週"
|
30 |
-
|
31 |
-
msgid "monthly"
|
32 |
-
msgstr "毎月"
|
33 |
-
|
34 |
-
msgid "yearly"
|
35 |
-
msgstr "毎年"
|
36 |
-
|
37 |
-
msgid "never"
|
38 |
-
msgstr "更新されない"
|
39 |
-
|
40 |
-
msgid "Detected Path"
|
41 |
-
msgstr "パスの直接設定"
|
42 |
-
|
43 |
-
msgid "Example"
|
44 |
-
msgstr "例"
|
45 |
-
|
46 |
-
msgid "Absolute or relative path to the sitemap file, including name."
|
47 |
-
msgstr "ファイル名を含む Sitemap ファイルへの相対もしくは絶対パス"
|
48 |
-
|
49 |
-
msgid "Complete URL to the sitemap file, including name."
|
50 |
-
msgstr "ファイル名を含む Sitemap ファイルへの完全な URL"
|
51 |
-
|
52 |
-
msgid "Automatic location"
|
53 |
-
msgstr "自動配置"
|
54 |
-
|
55 |
-
msgid "Manual location"
|
56 |
-
msgstr "手動配置"
|
57 |
-
|
58 |
-
msgid "OR"
|
59 |
-
msgstr "もしくは"
|
60 |
-
|
61 |
-
msgid "Location of your sitemap file"
|
62 |
-
msgstr "Sitemap ファイルの場所"
|
63 |
-
|
64 |
-
msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the "Location of your sitemap file" section on this page)!"
|
65 |
-
msgstr "もしあなたのブログがサブディレクトリに配置されている場合に、ブログディレクトリ以外のページを Sitemap に含めたいときは、Sitemap ファイルをルートディレクトリに配置すべきです。(このページの "Sitemap ファイルの場所" 設定を確認して下さい)"
|
66 |
-
|
67 |
-
#: sitemap.php:512
|
68 |
-
msgid "Configuration updated"
|
69 |
-
msgstr "設定を更新しました。"
|
70 |
-
|
71 |
-
#: sitemap.php:513
|
72 |
-
msgid "Error"
|
73 |
-
msgstr "エラーです。"
|
74 |
-
|
75 |
-
#: sitemap.php:521
|
76 |
-
msgid "A new page was added. Click on "Save page changes" to save your changes."
|
77 |
-
msgstr "新しい追加ページ(の設定欄)が加わりました。 (ページの情報を入力後)"変更の保存" を押下して設定を保存して下さい。"
|
78 |
-
|
79 |
-
#: sitemap.php:527
|
80 |
-
msgid "Pages saved"
|
81 |
-
msgstr "追加ページの設定を保存しました。"
|
82 |
-
|
83 |
-
#: sitemap.php:528
|
84 |
-
msgid "Error while saving pages"
|
85 |
-
msgstr "追加ページの設定の保存中にエラーが発生しました。"
|
86 |
-
|
87 |
-
#: sitemap.php:539
|
88 |
-
msgid "The page was deleted. Click on "Save page changes" to save your changes."
|
89 |
-
msgstr "指定された追加ページ(の設定欄)を削除しました。 "変更の保存" を押下して設定を保存して下さい。"
|
90 |
-
|
91 |
-
#: sitemap.php:542
|
92 |
-
msgid "You changes have been cleared."
|
93 |
-
msgstr "変更は既に削除されています。"
|
94 |
-
|
95 |
-
#: sitemap.php:555
|
96 |
-
msgid "Sitemap Generator"
|
97 |
-
msgstr "Sitemap Generator"
|
98 |
-
|
99 |
-
#: sitemap.php:558
|
100 |
-
msgid "Manual rebuild"
|
101 |
-
msgstr "手動による Sitemap ファイルの再構築"
|
102 |
-
|
103 |
-
#: sitemap.php:559
|
104 |
-
msgid "If you want to build the sitemap without editing a post, click on here!"
|
105 |
-
msgstr "もし投稿の編集なしに Sitemap ファイルを再構築したい場合はこのボタンを押下してください!"
|
106 |
-
|
107 |
-
#: sitemap.php:560
|
108 |
-
msgid "Rebuild Sitemap"
|
109 |
-
msgstr "Sitemap の再構築"
|
110 |
-
|
111 |
-
#: sitemap.php:564
|
112 |
-
msgid "Additional pages"
|
113 |
-
msgstr "追加ページの設定"
|
114 |
-
|
115 |
-
#: sitemap.php:566
|
116 |
-
msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
|
117 |
-
msgstr "ここで、Sitemap に含まれるべきである URL を指定することができます。 しかし、ここで指定する URL は WordPress/Blog に属してはいけません。<br />例えばドメインが www.foo.com でブログが www.foo.com/blog だった場合、あなたは www.foo.com を Sitemap に含みたいと思うかもしれません。(訳注: この項目で WordPress 以外の URL を指定し、プラグインで出力する Sitemap に含めることができます)"
|
118 |
-
|
119 |
-
#: sitemap.php:568
|
120 |
-
msgid "URL to the page"
|
121 |
-
msgstr "そのページのURL"
|
122 |
-
|
123 |
-
#: sitemap.php:569
|
124 |
-
msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
|
125 |
-
msgstr "そのページのURL を入力して下さい。 例: http://www.foo.com/index.html や www.foo.com/home "
|
126 |
-
|
127 |
-
#: sitemap.php:571
|
128 |
-
msgid "Priority"
|
129 |
-
msgstr "優先順位(priority)の設定"
|
130 |
-
|
131 |
-
#: sitemap.php:572
|
132 |
-
msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
|
133 |
-
msgstr "他のページに比例したページの優先順位(priority)を選んでください。 例えば、あなたのホームページは、銘記のページより高い優先度があるかもしれません。"
|
134 |
-
|
135 |
-
#: sitemap.php:574
|
136 |
-
msgid "Last Changed"
|
137 |
-
msgstr "最終更新日"
|
138 |
-
|
139 |
-
#: sitemap.php:575
|
140 |
-
msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
|
141 |
-
msgstr "最終更新日を YYYY-MM-DD 形式で入力して下さい。"
|
142 |
-
|
143 |
-
#: sitemap.php:583
|
144 |
-
msgid "Change Frequency"
|
145 |
-
msgstr "更新頻度(changefreq)の設定"
|
146 |
-
|
147 |
-
#: sitemap.php:585
|
148 |
-
msgid "#"
|
149 |
-
msgstr "#"
|
150 |
-
|
151 |
-
#: sitemap.php:609
|
152 |
-
msgid "No pages defined."
|
153 |
-
msgstr "追加ページは定義されていません。"
|
154 |
-
|
155 |
-
#: sitemap.php:616
|
156 |
-
msgid "Add new page"
|
157 |
-
msgstr "新しいページの追加"
|
158 |
-
|
159 |
-
#: sitemap.php:617
|
160 |
-
msgid "Save page changes"
|
161 |
-
msgstr "変更の保存"
|
162 |
-
|
163 |
-
#: sitemap.php:618
|
164 |
-
msgid "Undo all page changes"
|
165 |
-
msgstr "ページの変更を元に戻す"
|
166 |
-
|
167 |
-
#: sitemap.php:621
|
168 |
-
msgid "Delete marked page"
|
169 |
-
msgstr "マークされたページの削除"
|
170 |
-
|
171 |
-
#: sitemap.php:627
|
172 |
-
msgid "Basic Options"
|
173 |
-
msgstr "基本的な設定"
|
174 |
-
|
175 |
-
#: sitemap.php:632
|
176 |
-
msgid "Enable automatic priority calculation for posts based on comment count"
|
177 |
-
msgstr "投稿に対するコメント数で、投稿(各エントリ)の優先順位(priority)を自動計算する機能を有効にする"
|
178 |
-
|
179 |
-
#: sitemap.php:638
|
180 |
-
msgid "Write debug comments"
|
181 |
-
msgstr "デバッグ用コメント出力を行う"
|
182 |
-
|
183 |
-
#: sitemap.php:643
|
184 |
-
msgid "Filename of the sitemap file"
|
185 |
-
msgstr "Sitemap のファイル名"
|
186 |
-
|
187 |
-
#: sitemap.php:650
|
188 |
-
msgid "Write a normal XML file (your filename)"
|
189 |
-
msgstr "標準の XML ファイルを出力する (filename)"
|
190 |
-
|
191 |
-
#: sitemap.php:652
|
192 |
-
msgid "Detected URL"
|
193 |
-
msgstr "Detected URL"
|
194 |
-
|
195 |
-
#: sitemap.php:657
|
196 |
-
msgid "Write a gzipped file (your filename + .gz)"
|
197 |
-
msgstr "gz 圧縮されたファイルを出力する (filename + .gz)"
|
198 |
-
|
199 |
-
#: sitemap.php:664
|
200 |
-
msgid "Auto-Ping Google Sitemaps"
|
201 |
-
msgstr "Google Sitemap に更新 ping を送る"
|
202 |
-
|
203 |
-
#: sitemap.php:665
|
204 |
-
msgid "This option will automatically tell Google about changes."
|
205 |
-
msgstr "このオプションは、変更を Google に自動的に通知します。"
|
206 |
-
|
207 |
-
#: sitemap.php:672
|
208 |
-
msgid "Includings"
|
209 |
-
msgstr "Sitemap に含める 項目の設定"
|
210 |
-
|
211 |
-
#: sitemap.php:677
|
212 |
-
msgid "Include homepage"
|
213 |
-
msgstr "ホームページ"
|
214 |
-
|
215 |
-
#: sitemap.php:683
|
216 |
-
msgid "Include posts"
|
217 |
-
msgstr "投稿(各エントリ)"
|
218 |
-
|
219 |
-
#: sitemap.php:689
|
220 |
-
msgid "Include static pages"
|
221 |
-
msgstr "静的なページ"
|
222 |
-
|
223 |
-
#: sitemap.php:695
|
224 |
-
msgid "Include categories"
|
225 |
-
msgstr "カテゴリ別"
|
226 |
-
|
227 |
-
#: sitemap.php:701
|
228 |
-
msgid "Include archives"
|
229 |
-
msgstr "アーカイブ別"
|
230 |
-
|
231 |
-
#: sitemap.php:708
|
232 |
-
msgid "Change frequencies"
|
233 |
-
msgstr "更新頻度(changefreq)の設定"
|
234 |
-
|
235 |
-
#: sitemap.php:709
|
236 |
-
msgid "Note"
|
237 |
-
msgstr "メモ"
|
238 |
-
|
239 |
-
#: sitemap.php:710
|
240 |
-
msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
|
241 |
-
msgstr "このタグの値は命令ではなくヒントだと考えられます。サーチエンジンのクローラはこの設定を考慮に入れますが、\"1時間おき\" の設定にしてもその頻度でクロールしないかもしれないし、\"年一度の\" 設定にしてもそれより頻繁にクロールされるかもしれません。また \"更新されない\" に設定されたページも、思いがけない変化をこれらのページから得るために、おそらくクローラは定期的にクロールするでしょう。"
|
242 |
-
|
243 |
-
#: sitemap.php:715
|
244 |
-
msgid "Homepage"
|
245 |
-
msgstr "ホームページ"
|
246 |
-
|
247 |
-
#: sitemap.php:721
|
248 |
-
msgid "Posts"
|
249 |
-
msgstr "投稿(各エントリ)"
|
250 |
-
|
251 |
-
#: sitemap.php:727
|
252 |
-
msgid "Static pages"
|
253 |
-
msgstr "静的なページ"
|
254 |
-
|
255 |
-
#: sitemap.php:733
|
256 |
-
msgid "Categories"
|
257 |
-
msgstr "カテゴリ別"
|
258 |
-
|
259 |
-
#: sitemap.php:739
|
260 |
-
msgid "The current archive of this month (Should be the same like your homepage)"
|
261 |
-
msgstr "当月のアーカイブ (\"ホームページ\" の設定と同じにすべきです)"
|
262 |
-
|
263 |
-
#: sitemap.php:745
|
264 |
-
msgid "Older archives (Changes only if you edit an old post)"
|
265 |
-
msgstr "古いアーカイブ (古い投稿を編集したときだけ変更してください)"
|
266 |
-
|
267 |
-
#: sitemap.php:752
|
268 |
-
msgid "Priorities"
|
269 |
-
msgstr "優先順位(priority)の設定"
|
270 |
-
|
271 |
-
#: sitemap.php:763
|
272 |
-
msgid "Posts (If auto calculation is disabled)"
|
273 |
-
msgstr "投稿(各エントリ) (\"基本的な設定\"で自動計算に設定していない場合に有効)"
|
274 |
-
|
275 |
-
#: sitemap.php:769
|
276 |
-
msgid "Minimum post priority (Even if auto calculation is enabled)"
|
277 |
-
msgstr "投稿(各エントリ)の最小値 (\"基本的な設定\"で自動計算に設定している場合に有効)"
|
278 |
-
|
279 |
-
#: sitemap.php:787
|
280 |
-
msgid "Archives"
|
281 |
-
msgstr "アーカイブ別"
|
282 |
-
|
283 |
-
#: sitemap.php:793
|
284 |
-
msgid "Informations and support"
|
285 |
-
msgstr "情報とサポート"
|
286 |
-
|
287 |
-
#: sitemap.php:794
|
288 |
-
msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
|
289 |
-
msgstr "もし、問題や疑問、提案があれば %s のアップデート情報やコメントを確認して下さい。"
|
290 |
-
|
291 |
-
#: sitemap.php:797
|
292 |
-
msgid "Update options"
|
293 |
-
msgstr "設定を更新 »"
|
294 |
-
|
295 |
-
#: sitemap.php:1033
|
296 |
-
msgid "URL:"
|
297 |
-
msgstr "URL:"
|
298 |
-
|
299 |
-
#: sitemap.php:1034
|
300 |
-
msgid "Path:"
|
301 |
-
msgstr "Path:"
|
302 |
-
|
303 |
-
#: sitemap.php:1037
|
304 |
-
msgid "Could not write into %s"
|
305 |
-
msgstr "%s に書き込むことができません。"
|
306 |
-
|
307 |
-
#: sitemap.php:1048
|
308 |
-
msgid "Successfully built sitemap file:"
|
309 |
-
msgstr "構築に成功した Sitemap ファイル:"
|
310 |
-
|
311 |
-
#: sitemap.php:1048
|
312 |
-
msgid "Successfully built gzipped sitemap file:"
|
313 |
-
msgstr "構築に成功した gz 圧縮された Sitemap ファイル:"
|
314 |
-
|
315 |
-
#: sitemap.php:1062
|
316 |
-
msgid "Could not ping to Google at %s"
|
317 |
-
msgstr "Google への更新 ping の送信ができませんでした。 %s"
|
318 |
-
|
319 |
-
#: sitemap.php:1064
|
320 |
-
msgid "Successfully pinged Google at %s"
|
321 |
-
msgstr "Google への更新 ping の送信が成功しました。 %s"
|
322 |
-
|
1 |
+
# Japanese Language File for sitemap (sitemap-ja_JP.UTF-8.po)
|
2 |
+
# Copyright (C) 2005 hiromasa : http://hiromasa.zone.ne.jp/
|
3 |
+
# This file is distributed under the same license as the WordPress package.
|
4 |
+
# hiromasa <webmaster@hiromasa.zone.ne.jp>, 2005.
|
5 |
+
#
|
6 |
+
msgid ""
|
7 |
+
msgstr ""
|
8 |
+
"Project-Id-Version: sitemap\n"
|
9 |
+
"Report-Msgid-Bugs-To: <webmaster@hiromasa.zone.ne.jp>\n"
|
10 |
+
"POT-Creation-Date: 2005-06-09 02:00+0900\n"
|
11 |
+
"PO-Revision-Date: 2005-07-03 23:17+0900\n"
|
12 |
+
"Last-Translator: hiromasa <webmaster@hiromasa.zone.ne.jp>\n"
|
13 |
+
"MIME-Version: 1.0\n"
|
14 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
15 |
+
"Content-Transfer-Encoding: 8bit\n"
|
16 |
+
"Language-Team: \n"
|
17 |
+
|
18 |
+
#: sitemap.php:375
|
19 |
+
msgid "always"
|
20 |
+
msgstr "いつも"
|
21 |
+
|
22 |
+
msgid "hourly"
|
23 |
+
msgstr "毎時"
|
24 |
+
|
25 |
+
msgid "daily"
|
26 |
+
msgstr "毎日"
|
27 |
+
|
28 |
+
msgid "weekly"
|
29 |
+
msgstr "毎週"
|
30 |
+
|
31 |
+
msgid "monthly"
|
32 |
+
msgstr "毎月"
|
33 |
+
|
34 |
+
msgid "yearly"
|
35 |
+
msgstr "毎年"
|
36 |
+
|
37 |
+
msgid "never"
|
38 |
+
msgstr "更新されない"
|
39 |
+
|
40 |
+
msgid "Detected Path"
|
41 |
+
msgstr "パスの直接設定"
|
42 |
+
|
43 |
+
msgid "Example"
|
44 |
+
msgstr "例"
|
45 |
+
|
46 |
+
msgid "Absolute or relative path to the sitemap file, including name."
|
47 |
+
msgstr "ファイル名を含む Sitemap ファイルへの相対もしくは絶対パス"
|
48 |
+
|
49 |
+
msgid "Complete URL to the sitemap file, including name."
|
50 |
+
msgstr "ファイル名を含む Sitemap ファイルへの完全な URL"
|
51 |
+
|
52 |
+
msgid "Automatic location"
|
53 |
+
msgstr "自動配置"
|
54 |
+
|
55 |
+
msgid "Manual location"
|
56 |
+
msgstr "手動配置"
|
57 |
+
|
58 |
+
msgid "OR"
|
59 |
+
msgstr "もしくは"
|
60 |
+
|
61 |
+
msgid "Location of your sitemap file"
|
62 |
+
msgstr "Sitemap ファイルの場所"
|
63 |
+
|
64 |
+
msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the "Location of your sitemap file" section on this page)!"
|
65 |
+
msgstr "もしあなたのブログがサブディレクトリに配置されている場合に、ブログディレクトリ以外のページを Sitemap に含めたいときは、Sitemap ファイルをルートディレクトリに配置すべきです。(このページの "Sitemap ファイルの場所" 設定を確認して下さい)"
|
66 |
+
|
67 |
+
#: sitemap.php:512
|
68 |
+
msgid "Configuration updated"
|
69 |
+
msgstr "設定を更新しました。"
|
70 |
+
|
71 |
+
#: sitemap.php:513
|
72 |
+
msgid "Error"
|
73 |
+
msgstr "エラーです。"
|
74 |
+
|
75 |
+
#: sitemap.php:521
|
76 |
+
msgid "A new page was added. Click on "Save page changes" to save your changes."
|
77 |
+
msgstr "新しい追加ページ(の設定欄)が加わりました。 (ページの情報を入力後)"変更の保存" を押下して設定を保存して下さい。"
|
78 |
+
|
79 |
+
#: sitemap.php:527
|
80 |
+
msgid "Pages saved"
|
81 |
+
msgstr "追加ページの設定を保存しました。"
|
82 |
+
|
83 |
+
#: sitemap.php:528
|
84 |
+
msgid "Error while saving pages"
|
85 |
+
msgstr "追加ページの設定の保存中にエラーが発生しました。"
|
86 |
+
|
87 |
+
#: sitemap.php:539
|
88 |
+
msgid "The page was deleted. Click on "Save page changes" to save your changes."
|
89 |
+
msgstr "指定された追加ページ(の設定欄)を削除しました。 "変更の保存" を押下して設定を保存して下さい。"
|
90 |
+
|
91 |
+
#: sitemap.php:542
|
92 |
+
msgid "You changes have been cleared."
|
93 |
+
msgstr "変更は既に削除されています。"
|
94 |
+
|
95 |
+
#: sitemap.php:555
|
96 |
+
msgid "Sitemap Generator"
|
97 |
+
msgstr "Sitemap Generator"
|
98 |
+
|
99 |
+
#: sitemap.php:558
|
100 |
+
msgid "Manual rebuild"
|
101 |
+
msgstr "手動による Sitemap ファイルの再構築"
|
102 |
+
|
103 |
+
#: sitemap.php:559
|
104 |
+
msgid "If you want to build the sitemap without editing a post, click on here!"
|
105 |
+
msgstr "もし投稿の編集なしに Sitemap ファイルを再構築したい場合はこのボタンを押下してください!"
|
106 |
+
|
107 |
+
#: sitemap.php:560
|
108 |
+
msgid "Rebuild Sitemap"
|
109 |
+
msgstr "Sitemap の再構築"
|
110 |
+
|
111 |
+
#: sitemap.php:564
|
112 |
+
msgid "Additional pages"
|
113 |
+
msgstr "追加ページの設定"
|
114 |
+
|
115 |
+
#: sitemap.php:566
|
116 |
+
msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
|
117 |
+
msgstr "ここで、Sitemap に含まれるべきである URL を指定することができます。 しかし、ここで指定する URL は WordPress/Blog に属してはいけません。<br />例えばドメインが www.foo.com でブログが www.foo.com/blog だった場合、あなたは www.foo.com を Sitemap に含みたいと思うかもしれません。(訳注: この項目で WordPress 以外の URL を指定し、プラグインで出力する Sitemap に含めることができます)"
|
118 |
+
|
119 |
+
#: sitemap.php:568
|
120 |
+
msgid "URL to the page"
|
121 |
+
msgstr "そのページのURL"
|
122 |
+
|
123 |
+
#: sitemap.php:569
|
124 |
+
msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
|
125 |
+
msgstr "そのページのURL を入力して下さい。 例: http://www.foo.com/index.html や www.foo.com/home "
|
126 |
+
|
127 |
+
#: sitemap.php:571
|
128 |
+
msgid "Priority"
|
129 |
+
msgstr "優先順位(priority)の設定"
|
130 |
+
|
131 |
+
#: sitemap.php:572
|
132 |
+
msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
|
133 |
+
msgstr "他のページに比例したページの優先順位(priority)を選んでください。 例えば、あなたのホームページは、銘記のページより高い優先度があるかもしれません。"
|
134 |
+
|
135 |
+
#: sitemap.php:574
|
136 |
+
msgid "Last Changed"
|
137 |
+
msgstr "最終更新日"
|
138 |
+
|
139 |
+
#: sitemap.php:575
|
140 |
+
msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
|
141 |
+
msgstr "最終更新日を YYYY-MM-DD 形式で入力して下さい。"
|
142 |
+
|
143 |
+
#: sitemap.php:583
|
144 |
+
msgid "Change Frequency"
|
145 |
+
msgstr "更新頻度(changefreq)の設定"
|
146 |
+
|
147 |
+
#: sitemap.php:585
|
148 |
+
msgid "#"
|
149 |
+
msgstr "#"
|
150 |
+
|
151 |
+
#: sitemap.php:609
|
152 |
+
msgid "No pages defined."
|
153 |
+
msgstr "追加ページは定義されていません。"
|
154 |
+
|
155 |
+
#: sitemap.php:616
|
156 |
+
msgid "Add new page"
|
157 |
+
msgstr "新しいページの追加"
|
158 |
+
|
159 |
+
#: sitemap.php:617
|
160 |
+
msgid "Save page changes"
|
161 |
+
msgstr "変更の保存"
|
162 |
+
|
163 |
+
#: sitemap.php:618
|
164 |
+
msgid "Undo all page changes"
|
165 |
+
msgstr "ページの変更を元に戻す"
|
166 |
+
|
167 |
+
#: sitemap.php:621
|
168 |
+
msgid "Delete marked page"
|
169 |
+
msgstr "マークされたページの削除"
|
170 |
+
|
171 |
+
#: sitemap.php:627
|
172 |
+
msgid "Basic Options"
|
173 |
+
msgstr "基本的な設定"
|
174 |
+
|
175 |
+
#: sitemap.php:632
|
176 |
+
msgid "Enable automatic priority calculation for posts based on comment count"
|
177 |
+
msgstr "投稿に対するコメント数で、投稿(各エントリ)の優先順位(priority)を自動計算する機能を有効にする"
|
178 |
+
|
179 |
+
#: sitemap.php:638
|
180 |
+
msgid "Write debug comments"
|
181 |
+
msgstr "デバッグ用コメント出力を行う"
|
182 |
+
|
183 |
+
#: sitemap.php:643
|
184 |
+
msgid "Filename of the sitemap file"
|
185 |
+
msgstr "Sitemap のファイル名"
|
186 |
+
|
187 |
+
#: sitemap.php:650
|
188 |
+
msgid "Write a normal XML file (your filename)"
|
189 |
+
msgstr "標準の XML ファイルを出力する (filename)"
|
190 |
+
|
191 |
+
#: sitemap.php:652
|
192 |
+
msgid "Detected URL"
|
193 |
+
msgstr "Detected URL"
|
194 |
+
|
195 |
+
#: sitemap.php:657
|
196 |
+
msgid "Write a gzipped file (your filename + .gz)"
|
197 |
+
msgstr "gz 圧縮されたファイルを出力する (filename + .gz)"
|
198 |
+
|
199 |
+
#: sitemap.php:664
|
200 |
+
msgid "Auto-Ping Google Sitemaps"
|
201 |
+
msgstr "Google Sitemap に更新 ping を送る"
|
202 |
+
|
203 |
+
#: sitemap.php:665
|
204 |
+
msgid "This option will automatically tell Google about changes."
|
205 |
+
msgstr "このオプションは、変更を Google に自動的に通知します。"
|
206 |
+
|
207 |
+
#: sitemap.php:672
|
208 |
+
msgid "Includings"
|
209 |
+
msgstr "Sitemap に含める 項目の設定"
|
210 |
+
|
211 |
+
#: sitemap.php:677
|
212 |
+
msgid "Include homepage"
|
213 |
+
msgstr "ホームページ"
|
214 |
+
|
215 |
+
#: sitemap.php:683
|
216 |
+
msgid "Include posts"
|
217 |
+
msgstr "投稿(各エントリ)"
|
218 |
+
|
219 |
+
#: sitemap.php:689
|
220 |
+
msgid "Include static pages"
|
221 |
+
msgstr "静的なページ"
|
222 |
+
|
223 |
+
#: sitemap.php:695
|
224 |
+
msgid "Include categories"
|
225 |
+
msgstr "カテゴリ別"
|
226 |
+
|
227 |
+
#: sitemap.php:701
|
228 |
+
msgid "Include archives"
|
229 |
+
msgstr "アーカイブ別"
|
230 |
+
|
231 |
+
#: sitemap.php:708
|
232 |
+
msgid "Change frequencies"
|
233 |
+
msgstr "更新頻度(changefreq)の設定"
|
234 |
+
|
235 |
+
#: sitemap.php:709
|
236 |
+
msgid "Note"
|
237 |
+
msgstr "メモ"
|
238 |
+
|
239 |
+
#: sitemap.php:710
|
240 |
+
msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
|
241 |
+
msgstr "このタグの値は命令ではなくヒントだと考えられます。サーチエンジンのクローラはこの設定を考慮に入れますが、\"1時間おき\" の設定にしてもその頻度でクロールしないかもしれないし、\"年一度の\" 設定にしてもそれより頻繁にクロールされるかもしれません。また \"更新されない\" に設定されたページも、思いがけない変化をこれらのページから得るために、おそらくクローラは定期的にクロールするでしょう。"
|
242 |
+
|
243 |
+
#: sitemap.php:715
|
244 |
+
msgid "Homepage"
|
245 |
+
msgstr "ホームページ"
|
246 |
+
|
247 |
+
#: sitemap.php:721
|
248 |
+
msgid "Posts"
|
249 |
+
msgstr "投稿(各エントリ)"
|
250 |
+
|
251 |
+
#: sitemap.php:727
|
252 |
+
msgid "Static pages"
|
253 |
+
msgstr "静的なページ"
|
254 |
+
|
255 |
+
#: sitemap.php:733
|
256 |
+
msgid "Categories"
|
257 |
+
msgstr "カテゴリ別"
|
258 |
+
|
259 |
+
#: sitemap.php:739
|
260 |
+
msgid "The current archive of this month (Should be the same like your homepage)"
|
261 |
+
msgstr "当月のアーカイブ (\"ホームページ\" の設定と同じにすべきです)"
|
262 |
+
|
263 |
+
#: sitemap.php:745
|
264 |
+
msgid "Older archives (Changes only if you edit an old post)"
|
265 |
+
msgstr "古いアーカイブ (古い投稿を編集したときだけ変更してください)"
|
266 |
+
|
267 |
+
#: sitemap.php:752
|
268 |
+
msgid "Priorities"
|
269 |
+
msgstr "優先順位(priority)の設定"
|
270 |
+
|
271 |
+
#: sitemap.php:763
|
272 |
+
msgid "Posts (If auto calculation is disabled)"
|
273 |
+
msgstr "投稿(各エントリ) (\"基本的な設定\"で自動計算に設定していない場合に有効)"
|
274 |
+
|
275 |
+
#: sitemap.php:769
|
276 |
+
msgid "Minimum post priority (Even if auto calculation is enabled)"
|
277 |
+
msgstr "投稿(各エントリ)の最小値 (\"基本的な設定\"で自動計算に設定している場合に有効)"
|
278 |
+
|
279 |
+
#: sitemap.php:787
|
280 |
+
msgid "Archives"
|
281 |
+
msgstr "アーカイブ別"
|
282 |
+
|
283 |
+
#: sitemap.php:793
|
284 |
+
msgid "Informations and support"
|
285 |
+
msgstr "情報とサポート"
|
286 |
+
|
287 |
+
#: sitemap.php:794
|
288 |
+
msgid "Check %s for updates and comment there if you have any problems / questions / suggestions."
|
289 |
+
msgstr "もし、問題や疑問、提案があれば %s のアップデート情報やコメントを確認して下さい。"
|
290 |
+
|
291 |
+
#: sitemap.php:797
|
292 |
+
msgid "Update options"
|
293 |
+
msgstr "設定を更新 »"
|
294 |
+
|
295 |
+
#: sitemap.php:1033
|
296 |
+
msgid "URL:"
|
297 |
+
msgstr "URL:"
|
298 |
+
|
299 |
+
#: sitemap.php:1034
|
300 |
+
msgid "Path:"
|
301 |
+
msgstr "Path:"
|
302 |
+
|
303 |
+
#: sitemap.php:1037
|
304 |
+
msgid "Could not write into %s"
|
305 |
+
msgstr "%s に書き込むことができません。"
|
306 |
+
|
307 |
+
#: sitemap.php:1048
|
308 |
+
msgid "Successfully built sitemap file:"
|
309 |
+
msgstr "構築に成功した Sitemap ファイル:"
|
310 |
+
|
311 |
+
#: sitemap.php:1048
|
312 |
+
msgid "Successfully built gzipped sitemap file:"
|
313 |
+
msgstr "構築に成功した gz 圧縮された Sitemap ファイル:"
|
314 |
+
|
315 |
+
#: sitemap.php:1062
|
316 |
+
msgid "Could not ping to Google at %s"
|
317 |
+
msgstr "Google への更新 ping の送信ができませんでした。 %s"
|
318 |
+
|
319 |
+
#: sitemap.php:1064
|
320 |
+
msgid "Successfully pinged Google at %s"
|
321 |
+
msgstr "Google への更新 ping の送信が成功しました。 %s"
|
322 |
+
|
lang/sitemap-sr_RS.po
CHANGED
@@ -1,964 +1,964 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Google XML Sitemaps v4.0beta9\n"
|
4 |
-
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2012-05-05 20:24+0100\n"
|
6 |
-
"PO-Revision-Date: 2012-06-02 14:54:30+0000\n"
|
7 |
-
"Last-Translator: Arne Brachhold <himself-arnebrachhold-de>\n"
|
8 |
-
"Language-Team: \n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
-
"X-Poedit-Language: \n"
|
14 |
-
"X-Poedit-Country: \n"
|
15 |
-
"X-Poedit-SourceCharset: utf-8\n"
|
16 |
-
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
17 |
-
"X-Poedit-Basepath: .\n"
|
18 |
-
"X-Poedit-Bookmarks: \n"
|
19 |
-
"X-Poedit-SearchPath-0: C:/Inetpub/wwwroot/wp_plugins/sitemap_beta\n"
|
20 |
-
"X-Textdomain-Support: yes"
|
21 |
-
|
22 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:846
|
23 |
-
#: sitemap-core.php:527
|
24 |
-
#@ sitemap
|
25 |
-
msgid "Comment Count"
|
26 |
-
msgstr "Broj Komentara"
|
27 |
-
|
28 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:858
|
29 |
-
#: sitemap-core.php:537
|
30 |
-
#@ sitemap
|
31 |
-
msgid "Uses the number of comments of the post to calculate the priority"
|
32 |
-
msgstr "Koristi broj komentara na postu za kalkulaciju prioriteta"
|
33 |
-
|
34 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:918
|
35 |
-
#: sitemap-core.php:590
|
36 |
-
#@ sitemap
|
37 |
-
msgid "Comment Average"
|
38 |
-
msgstr "Prosečan Broj Komentara"
|
39 |
-
|
40 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:930
|
41 |
-
#: sitemap-core.php:600
|
42 |
-
#@ sitemap
|
43 |
-
msgid "Uses the average comment count to calculate the priority"
|
44 |
-
msgstr "Koristi prosečan broj komentara za računanje prioriteta"
|
45 |
-
|
46 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:993
|
47 |
-
#: sitemap-core.php:661
|
48 |
-
#@ sitemap
|
49 |
-
msgid "Popularity Contest"
|
50 |
-
msgstr "Takmičenje Popularnosti"
|
51 |
-
|
52 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:1005
|
53 |
-
#: sitemap-core.php:671
|
54 |
-
#, php-format
|
55 |
-
#@ sitemap
|
56 |
-
msgid "Uses the activated <a href=\"%1\">Popularity Contest Plugin</a> from <a href=\"%2\">Alex King</a>. See <a href=\"%3\">Settings</a> and <a href=\"%4\">Most Popular Posts</a>"
|
57 |
-
msgstr "Koristi aktivirani <a href=\"%1\">Takmičenje Popularnosti plugin</a> od <a href=\"%2\">Alex King-a</a>. Proveri <a href=\"%3\">Podešavanja</a> i <a href=\"%4\">Najpopularnije Postove</a>"
|
58 |
-
|
59 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1118
|
60 |
-
#: sitemap-core.php:840
|
61 |
-
#@ sitemap
|
62 |
-
msgid "Always"
|
63 |
-
msgstr "Uvek"
|
64 |
-
|
65 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1119
|
66 |
-
#: sitemap-core.php:841
|
67 |
-
#@ sitemap
|
68 |
-
msgid "Hourly"
|
69 |
-
msgstr "Svakog sata"
|
70 |
-
|
71 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1120
|
72 |
-
#: sitemap-core.php:842
|
73 |
-
#@ sitemap
|
74 |
-
msgid "Daily"
|
75 |
-
msgstr "Dnevno"
|
76 |
-
|
77 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1121
|
78 |
-
#: sitemap-core.php:843
|
79 |
-
#@ sitemap
|
80 |
-
msgid "Weekly"
|
81 |
-
msgstr "Nedeljno"
|
82 |
-
|
83 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1122
|
84 |
-
#: sitemap-core.php:844
|
85 |
-
#@ sitemap
|
86 |
-
msgid "Monthly"
|
87 |
-
msgstr "Mesečno"
|
88 |
-
|
89 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1123
|
90 |
-
#: sitemap-core.php:845
|
91 |
-
#@ sitemap
|
92 |
-
msgid "Yearly"
|
93 |
-
msgstr "Godišnje"
|
94 |
-
|
95 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1124
|
96 |
-
#: sitemap-core.php:846
|
97 |
-
#@ sitemap
|
98 |
-
msgid "Never"
|
99 |
-
msgstr "Nikad"
|
100 |
-
|
101 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2415
|
102 |
-
#: sitemap-loader.php:212
|
103 |
-
#@ sitemap
|
104 |
-
msgid "XML-Sitemap Generator"
|
105 |
-
msgstr "XML-Sitemap Generator"
|
106 |
-
|
107 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2415
|
108 |
-
#: sitemap-loader.php:212
|
109 |
-
#@ sitemap
|
110 |
-
msgid "XML-Sitemap"
|
111 |
-
msgstr "XML-Sitemap"
|
112 |
-
|
113 |
-
#: sitemap-loader.php:239
|
114 |
-
#@ sitemap
|
115 |
-
msgid "Settings"
|
116 |
-
msgstr "Podešavanja"
|
117 |
-
|
118 |
-
#: sitemap-loader.php:240
|
119 |
-
#@ sitemap
|
120 |
-
msgid "FAQ"
|
121 |
-
msgstr "FAQ"
|
122 |
-
|
123 |
-
#: sitemap-loader.php:241
|
124 |
-
#@ sitemap
|
125 |
-
msgid "Support"
|
126 |
-
msgstr "Podrška"
|
127 |
-
|
128 |
-
#: sitemap-loader.php:242
|
129 |
-
#@ sitemap
|
130 |
-
msgid "Donate"
|
131 |
-
msgstr "Donacije"
|
132 |
-
|
133 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2886
|
134 |
-
#: sitemap-loader.php:328
|
135 |
-
#: sitemap-ui.php:630
|
136 |
-
#@ sitemap
|
137 |
-
msgid "Plugin Homepage"
|
138 |
-
msgstr "Homepage Plugin-a"
|
139 |
-
|
140 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2905
|
141 |
-
#: sitemap-loader.php:329
|
142 |
-
#: sitemap-ui.php:652
|
143 |
-
#@ sitemap
|
144 |
-
msgid "My Sitemaps FAQ"
|
145 |
-
msgstr "Česta pitanja o Sitemap-ima"
|
146 |
-
|
147 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2635
|
148 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2835
|
149 |
-
#: sitemap-ui.php:198
|
150 |
-
#: sitemap-ui.php:585
|
151 |
-
#@ sitemap
|
152 |
-
msgid "XML Sitemap Generator for WordPress"
|
153 |
-
msgstr "XML Sitemap Generator za WordPress"
|
154 |
-
|
155 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2740
|
156 |
-
#: sitemap-ui.php:374
|
157 |
-
#@ sitemap
|
158 |
-
msgid "Configuration updated"
|
159 |
-
msgstr "Konfiguracije ažurirane"
|
160 |
-
|
161 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2741
|
162 |
-
#: sitemap-ui.php:375
|
163 |
-
#@ sitemap
|
164 |
-
msgid "Error while saving options"
|
165 |
-
msgstr "Greška prilikom snimanja opcija"
|
166 |
-
|
167 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2743
|
168 |
-
#: sitemap-ui.php:378
|
169 |
-
#@ sitemap
|
170 |
-
msgid "Pages saved"
|
171 |
-
msgstr "Stranice snimljene"
|
172 |
-
|
173 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2744
|
174 |
-
#: sitemap-ui.php:379
|
175 |
-
#@ sitemap
|
176 |
-
msgid "Error while saving pages"
|
177 |
-
msgstr "Greška za vreme snimanja stranica"
|
178 |
-
|
179 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2758
|
180 |
-
#: sitemap-ui.php:387
|
181 |
-
#@ sitemap
|
182 |
-
msgid "The default configuration was restored."
|
183 |
-
msgstr "Osnovna podešavanja su vraćena"
|
184 |
-
|
185 |
-
#: sitemap-ui.php:397
|
186 |
-
#@ sitemap
|
187 |
-
msgid "The old files could NOT be deleted. Please use an FTP program and delete them by yourself."
|
188 |
-
msgstr "Nismo mogli izbrisati stare fajlove. Molimo vas da koristite FTP program i obrišete ih lično."
|
189 |
-
|
190 |
-
#: sitemap-ui.php:399
|
191 |
-
#@ sitemap
|
192 |
-
msgid "The old files were successfully deleted."
|
193 |
-
msgstr "Stari fajlovi su uspešno obrisani."
|
194 |
-
|
195 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2600
|
196 |
-
#: sitemap-ui.php:439
|
197 |
-
#@ sitemap
|
198 |
-
msgid "Thank you very much for your donation. You help me to continue support and development of this plugin and other free software!"
|
199 |
-
msgstr "Hvala vam na donaciji. Pomažete mi da nastavim rad i razvoj ovog plugin-a i drugih besplatnih programa."
|
200 |
-
|
201 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2600
|
202 |
-
#: sitemap-ui.php:439
|
203 |
-
#@ sitemap
|
204 |
-
msgid "Hide this notice"
|
205 |
-
msgstr "Sakrijte ovo obaveštenje"
|
206 |
-
|
207 |
-
#: sitemap-ui.php:445
|
208 |
-
#, php-format
|
209 |
-
#@ sitemap
|
210 |
-
msgid "Thanks for using this plugin! You've installed this plugin over a month ago. If it works and you are satisfied with the results, isn't it worth at least a few dollar? <a href=\"%s\">Donations</a> help me to continue support and development of this <i>free</i> software! <a href=\"%s\">Sure, no problem!</a>"
|
211 |
-
msgstr "Hvala vam što koristite ovaj plugin. Instalirali ste plugin pre meseca dana. Ako plugin radi i zadovoljni ste rezultatima, nadam se da je vredno makar par dolara? <a href=\"%s\">Donacije</a> mi pomažu da nastavim rad na ovom <i>besplatnom</i> softveru! <a href=\"%s\">Naravno, nema problema!</a>"
|
212 |
-
|
213 |
-
#: sitemap-ui.php:445
|
214 |
-
#@ sitemap
|
215 |
-
msgid "Sure, but I already did!"
|
216 |
-
msgstr "Naravno, ali već sam donirao!"
|
217 |
-
|
218 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2657
|
219 |
-
#: sitemap-ui.php:445
|
220 |
-
#@ sitemap
|
221 |
-
msgid "No thanks, please don't bug me anymore!"
|
222 |
-
msgstr "Ne hvala, molim vas ne uznemiravajte me više!"
|
223 |
-
|
224 |
-
#: sitemap-ui.php:452
|
225 |
-
#, php-format
|
226 |
-
#@ sitemap
|
227 |
-
msgid "Thanks for using this plugin! You've installed this plugin some time ago. If it works and your are satisfied, why not <a href=\"%s\">rate it</a> and <a href=\"%s\">recommend it</a> to others? :-)"
|
228 |
-
msgstr "Hvala vam što koristite ovaj plugin! Instalirali ste ovaj plugin pre nekog vremena. Ako radi i zadovoljni ste, zašto ne biste <a href=\"%s\">dali ocenu</a> i <a href=\"%s\">preporučili ga</a> drugima? :-)"
|
229 |
-
|
230 |
-
#: sitemap-ui.php:452
|
231 |
-
#@ sitemap
|
232 |
-
msgid "Don't show this anymore"
|
233 |
-
msgstr "Ne pokazuj više"
|
234 |
-
|
235 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-ui.php:374
|
236 |
-
#: sitemap-ui.php:601
|
237 |
-
#, php-format
|
238 |
-
#@ default
|
239 |
-
msgid "There is a new version of %1$s available. <a href=\"%2$s\">Download version %3$s here</a>."
|
240 |
-
msgstr "Postoji nova verzija %1$s. <a href=\"%2$s\">Skinite verziju %3$s ovde</a>."
|
241 |
-
|
242 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-ui.php:376
|
243 |
-
#: sitemap-ui.php:603
|
244 |
-
#, php-format
|
245 |
-
#@ default
|
246 |
-
msgid "There is a new version of %1$s available. <a href=\"%2$s\">Download version %3$s here</a> <em>automatic upgrade unavailable for this plugin</em>."
|
247 |
-
msgstr "Postoji nova verzija %1$s. <a href=\"%2$s\">Skinite novu verziju %3$s ovde</a> <em>automatsko osvežavanje verzije nije dostupno za ovaj plugin</em>."
|
248 |
-
|
249 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-ui.php:378
|
250 |
-
#: sitemap-ui.php:605
|
251 |
-
#, php-format
|
252 |
-
#@ default
|
253 |
-
msgid "There is a new version of %1$s available. <a href=\"%2$s\">Download version %3$s here</a> or <a href=\"%4$s\">upgrade automatically</a>."
|
254 |
-
msgstr "Postoji nova verzija %1$s. <a href=\"%2$s\">Skinite verziju %3$s ovde</a> ili <a href=\"%4$s\">uradite update automatski</a>."
|
255 |
-
|
256 |
-
#: sitemap-ui.php:613
|
257 |
-
#, php-format
|
258 |
-
#@ sitemap
|
259 |
-
msgid "Your blog is currently blocking search engines! Visit the <a href=\"%s\">privacy settings</a> to change this."
|
260 |
-
msgstr "Vaš blog trenutno blokira pretraživače! Posetite <a href=\"%s\">podešavanja privatnosti</a> da bi ste promenili."
|
261 |
-
|
262 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2884
|
263 |
-
#: sitemap-ui.php:629
|
264 |
-
#@ sitemap
|
265 |
-
msgid "About this Plugin:"
|
266 |
-
msgstr "O ovom plugin-u:"
|
267 |
-
|
268 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-ui.php:421
|
269 |
-
#: sitemap-ui.php:631
|
270 |
-
#@ sitemap
|
271 |
-
msgid "Suggest a Feature"
|
272 |
-
msgstr "Predložite Funkciju"
|
273 |
-
|
274 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2887
|
275 |
-
#: sitemap-ui.php:632
|
276 |
-
#@ sitemap
|
277 |
-
msgid "Notify List"
|
278 |
-
msgstr "Lista Notifikacija"
|
279 |
-
|
280 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2888
|
281 |
-
#: sitemap-ui.php:633
|
282 |
-
#@ sitemap
|
283 |
-
msgid "Support Forum"
|
284 |
-
msgstr "Forum za Podršku"
|
285 |
-
|
286 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-ui.php:424
|
287 |
-
#: sitemap-ui.php:634
|
288 |
-
#@ sitemap
|
289 |
-
msgid "Report a Bug"
|
290 |
-
msgstr "Prijavite Grešku"
|
291 |
-
|
292 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2889
|
293 |
-
#: sitemap-ui.php:636
|
294 |
-
#@ sitemap
|
295 |
-
msgid "Donate with PayPal"
|
296 |
-
msgstr "Donirajte putem PayPal-a"
|
297 |
-
|
298 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2890
|
299 |
-
#: sitemap-ui.php:637
|
300 |
-
#@ sitemap
|
301 |
-
msgid "My Amazon Wish List"
|
302 |
-
msgstr "Moje želje na Amazon-u"
|
303 |
-
|
304 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2891
|
305 |
-
#: sitemap-ui.php:638
|
306 |
-
#@ sitemap
|
307 |
-
msgid "translator_name"
|
308 |
-
msgstr "ime_prevodioca"
|
309 |
-
|
310 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2891
|
311 |
-
#: sitemap-ui.php:638
|
312 |
-
#@ sitemap
|
313 |
-
msgid "translator_url"
|
314 |
-
msgstr "url_prevodioca"
|
315 |
-
|
316 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2895
|
317 |
-
#: sitemap-ui.php:641
|
318 |
-
#@ sitemap
|
319 |
-
msgid "Sitemap Resources:"
|
320 |
-
msgstr "Više o Sitemap-u"
|
321 |
-
|
322 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2897
|
323 |
-
#: sitemap-ui.php:642
|
324 |
-
#: sitemap-ui.php:647
|
325 |
-
#@ sitemap
|
326 |
-
msgid "Webmaster Tools"
|
327 |
-
msgstr "Alatke za Webmastere"
|
328 |
-
|
329 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2898
|
330 |
-
#: sitemap-ui.php:643
|
331 |
-
#@ sitemap
|
332 |
-
msgid "Webmaster Blog"
|
333 |
-
msgstr "Webmaster Blog"
|
334 |
-
|
335 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2901
|
336 |
-
#: sitemap-ui.php:645
|
337 |
-
#@ sitemap
|
338 |
-
msgid "Search Blog"
|
339 |
-
msgstr "Pretražite Blog"
|
340 |
-
|
341 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3010
|
342 |
-
#: sitemap-ui.php:648
|
343 |
-
#@ sitemap
|
344 |
-
msgid "Webmaster Center Blog"
|
345 |
-
msgstr "Webmaster Central Blog"
|
346 |
-
|
347 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2903
|
348 |
-
#: sitemap-ui.php:650
|
349 |
-
#@ sitemap
|
350 |
-
msgid "Sitemaps Protocol"
|
351 |
-
msgstr "Sitemap Protokol"
|
352 |
-
|
353 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2904
|
354 |
-
#: sitemap-ui.php:651
|
355 |
-
#@ sitemap
|
356 |
-
msgid "Official Sitemaps FAQ"
|
357 |
-
msgstr "Oficijalni Sitemap FAW"
|
358 |
-
|
359 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2910
|
360 |
-
#: sitemap-ui.php:655
|
361 |
-
#@ sitemap
|
362 |
-
msgid "Recent Donations:"
|
363 |
-
msgstr "Zadnje Donacije:"
|
364 |
-
|
365 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2914
|
366 |
-
#: sitemap-ui.php:658
|
367 |
-
#@ sitemap
|
368 |
-
msgid "List of the donors"
|
369 |
-
msgstr "Lista Donatora"
|
370 |
-
|
371 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2916
|
372 |
-
#: sitemap-ui.php:660
|
373 |
-
#@ sitemap
|
374 |
-
msgid "Hide this list"
|
375 |
-
msgstr "Sakrijte listu"
|
376 |
-
|
377 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2919
|
378 |
-
#: sitemap-ui.php:663
|
379 |
-
#@ sitemap
|
380 |
-
msgid "Thanks for your support!"
|
381 |
-
msgstr "Hvala vam na podršci!"
|
382 |
-
|
383 |
-
#: sitemap-ui.php:683
|
384 |
-
#@ sitemap
|
385 |
-
msgid "Search engines haven't been notified yet"
|
386 |
-
msgstr "Pretraživači još uvek nisu obavešteni"
|
387 |
-
|
388 |
-
#: sitemap-ui.php:687
|
389 |
-
#, php-format
|
390 |
-
#@ sitemap
|
391 |
-
msgid "Result of the last ping, started on %date%."
|
392 |
-
msgstr "Rezultati zadnjeg ping-a, započeto %date%."
|
393 |
-
|
394 |
-
#: sitemap-ui.php:702
|
395 |
-
#, php-format
|
396 |
-
#@ sitemap
|
397 |
-
msgid "There is still a sitemap.xml or sitemap.xml.gz file in your blog directory. Please delete them as no static files are used anymore or <a href=\"%s\">try to delete them automatically</a>."
|
398 |
-
msgstr "Još uvek postoji sitemap.xml ili sitemap.xml.gz fajl na vašem blog direktorijumu. Molimo vas da ih obrišete jer se više ne koristi ni jeda statični fajl ili <a href=\"%s\">pokušajte da ih obrišete automatski</a>."
|
399 |
-
|
400 |
-
#: sitemap-ui.php:705
|
401 |
-
#, php-format
|
402 |
-
#@ sitemap
|
403 |
-
msgid "The URL to your sitemap index file is: <a href=\"%s\">%s</a>."
|
404 |
-
msgstr "URL do vašeg sitemap index fajl-a je: <a href=\"%s\">%s</a>."
|
405 |
-
|
406 |
-
#: sitemap-ui.php:708
|
407 |
-
#@ sitemap
|
408 |
-
msgid "Search engines haven't been notified yet. Write a post to let them know about your sitemap."
|
409 |
-
msgstr "Pretraživači još uvek nisu obavešteni. Napišite post da bi ste ih obavestili o vašem sitemap-u."
|
410 |
-
|
411 |
-
#: sitemap-ui.php:717
|
412 |
-
#, php-format
|
413 |
-
#@ sitemap
|
414 |
-
msgid "%s was <b>successfully notified</b> about changes."
|
415 |
-
msgstr "%s je <b>uspešno obavešten</b> o promenama."
|
416 |
-
|
417 |
-
#: sitemap-ui.php:720
|
418 |
-
#, php-format
|
419 |
-
#@ sitemap
|
420 |
-
msgid "It took %time% seconds to notify %name%, maybe you want to disable this feature to reduce the building time."
|
421 |
-
msgstr "Trebalo je %time% sekundi da obavestimo %name%, možda želite da onesposobite ovu funkciju da bi ste smanjili vreme izgradnje."
|
422 |
-
|
423 |
-
#: sitemap-ui.php:723
|
424 |
-
#, php-format
|
425 |
-
#@ sitemap
|
426 |
-
msgid "There was a problem while notifying %name%. <a href=\"%s\">View result</a>"
|
427 |
-
msgstr "Imali smo problem sa obaveštavanjem %name%. <a href=\"%s\">Pogledajte rezultate</a>"
|
428 |
-
|
429 |
-
#: sitemap-ui.php:727
|
430 |
-
#, php-format
|
431 |
-
#@ sitemap
|
432 |
-
msgid "If you encounter any problems with your sitemap you can use the <a href=\"%d\">debug function</a> to get more information."
|
433 |
-
msgstr "Ako naiđete na neke probleme u vezi sa sitemap-om možete iskoristiti <a href=\"%d\">debug funkciju</a> da bi ste dobili više podataka."
|
434 |
-
|
435 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3040
|
436 |
-
#: sitemap-ui.php:735
|
437 |
-
#@ sitemap
|
438 |
-
msgid "Basic Options"
|
439 |
-
msgstr "Onsovne Opcije"
|
440 |
-
|
441 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3079
|
442 |
-
#: sitemap-ui.php:737
|
443 |
-
#@ sitemap
|
444 |
-
msgid "Update notification:"
|
445 |
-
msgstr "Ažurirajte notifikacije:"
|
446 |
-
|
447 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3044
|
448 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3059
|
449 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3079
|
450 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3104
|
451 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3121
|
452 |
-
#: sitemap-ui.php:737
|
453 |
-
#: sitemap-ui.php:765
|
454 |
-
#@ sitemap
|
455 |
-
msgid "Learn more"
|
456 |
-
msgstr "Saznajte više"
|
457 |
-
|
458 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3083
|
459 |
-
#: sitemap-ui.php:741
|
460 |
-
#@ sitemap
|
461 |
-
msgid "Notify Google about updates of your Blog"
|
462 |
-
msgstr "Obavestite Google o promenama na vašem Blogu"
|
463 |
-
|
464 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3084
|
465 |
-
#: sitemap-ui.php:742
|
466 |
-
#, php-format
|
467 |
-
#@ sitemap
|
468 |
-
msgid "No registration required, but you can join the <a href=\"%s\">Google Webmaster Tools</a> to check crawling statistics."
|
469 |
-
msgstr "Registracija nije potrebna, ali možete otovriti nalog na <a href=\"%s\">Google Webmaster Tools</a> da bi ste preverili statistiku."
|
470 |
-
|
471 |
-
#: sitemap-ui.php:746
|
472 |
-
#@ sitemap
|
473 |
-
msgid "Notify Bing (formerly MSN Live Search) about updates of your Blog"
|
474 |
-
msgstr "Obavestite Bing (bivši MSN Live Search) o promenama na vašem Blogu"
|
475 |
-
|
476 |
-
#: sitemap-ui.php:747
|
477 |
-
#, php-format
|
478 |
-
#@ sitemap
|
479 |
-
msgid "No registration required, but you can join the <a href=\"%s\">Bing Webmaster Tools</a> to check crawling statistics."
|
480 |
-
msgstr "Registracija nije potrebna, ali možete napraviti nalog na <a href=\"%s\">Bing Webmaster Tools</a> da proverite statistiku."
|
481 |
-
|
482 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3088
|
483 |
-
#: sitemap-ui.php:751
|
484 |
-
#@ sitemap
|
485 |
-
msgid "Notify Ask.com about updates of your Blog"
|
486 |
-
msgstr "Obavestite Ask.com o promenama na vašem Blogu"
|
487 |
-
|
488 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3089
|
489 |
-
#: sitemap-ui.php:752
|
490 |
-
#@ sitemap
|
491 |
-
msgid "No registration required."
|
492 |
-
msgstr "Registracija nije potrebna."
|
493 |
-
|
494 |
-
#: sitemap-ui.php:757
|
495 |
-
#@ sitemap
|
496 |
-
msgid "Add sitemap URL to the virtual robots.txt file."
|
497 |
-
msgstr "Dodajte URL vašeg sitemap-a u robots.txt fajl."
|
498 |
-
|
499 |
-
#: sitemap-ui.php:761
|
500 |
-
#@ sitemap
|
501 |
-
msgid "The virtual robots.txt generated by WordPress is used. A real robots.txt file must NOT exist in the blog directory!"
|
502 |
-
msgstr "Virtualni robots.txt fajl generisan od strane WordPress-a je iskorišćen. Pravi robots.txt fajl NE SME postojati u direktorijumu vašeg bloga!"
|
503 |
-
|
504 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3121
|
505 |
-
#: sitemap-ui.php:765
|
506 |
-
#@ sitemap
|
507 |
-
msgid "Advanced options:"
|
508 |
-
msgstr "Napredne opcija:"
|
509 |
-
|
510 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3127
|
511 |
-
#: sitemap-ui.php:768
|
512 |
-
#@ sitemap
|
513 |
-
msgid "Try to increase the memory limit to:"
|
514 |
-
msgstr "Pokušajte da povećate limit memorije na:"
|
515 |
-
|
516 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3127
|
517 |
-
#: sitemap-ui.php:768
|
518 |
-
#@ sitemap
|
519 |
-
msgid "e.g. \"4M\", \"16M\""
|
520 |
-
msgstr "npr. \"4M\", \"16M\""
|
521 |
-
|
522 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3130
|
523 |
-
#: sitemap-ui.php:771
|
524 |
-
#@ sitemap
|
525 |
-
msgid "Try to increase the execution time limit to:"
|
526 |
-
msgstr "Pokušajte da povećate vreme izvršenja na:"
|
527 |
-
|
528 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3130
|
529 |
-
#: sitemap-ui.php:771
|
530 |
-
#@ sitemap
|
531 |
-
msgid "in seconds, e.g. \"60\" or \"0\" for unlimited"
|
532 |
-
msgstr "u sekundama, npr. \"60\" or \"0\" za neograničeno"
|
533 |
-
|
534 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3133
|
535 |
-
#: sitemap-ui.php:775
|
536 |
-
#@ sitemap
|
537 |
-
msgid "Include a XSLT stylesheet:"
|
538 |
-
msgstr "Dodajte XSLT stylesheet:"
|
539 |
-
|
540 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3133
|
541 |
-
#: sitemap-ui.php:776
|
542 |
-
#@ sitemap
|
543 |
-
msgid "Full or relative URL to your .xsl file"
|
544 |
-
msgstr "Absolutni ili relativni URL do vasšeg .xsl fajla."
|
545 |
-
|
546 |
-
#: sitemap-ui.php:776
|
547 |
-
#@ sitemap
|
548 |
-
msgid "Use default"
|
549 |
-
msgstr "Koristite default-ni"
|
550 |
-
|
551 |
-
#: sitemap-ui.php:781
|
552 |
-
#@ sitemap
|
553 |
-
msgid "Include sitemap in HTML format"
|
554 |
-
msgstr "Dodajte sitemap u HTML formatu"
|
555 |
-
|
556 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3144
|
557 |
-
#: sitemap-ui.php:790
|
558 |
-
#@ sitemap
|
559 |
-
msgid "Additional pages"
|
560 |
-
msgstr "Dodatne stranice"
|
561 |
-
|
562 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3149
|
563 |
-
#: sitemap-ui.php:793
|
564 |
-
#@ sitemap
|
565 |
-
msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
|
566 |
-
msgstr "Ovde možete specificirati fajlove ili URL-ove koje bi trebalo dodati u sitemap, ali ne pripadaju vašem Blog-u/WordPress-u. <br />Na primer, ako je vaš domen www.foo.com a vaš blog se nalazi na www.foo.com-blog mozda želite da dodate vašu početnu stranu www.foo.com"
|
567 |
-
|
568 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3151
|
569 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3462
|
570 |
-
#: sitemap-ui.php:795
|
571 |
-
#: sitemap-ui.php:999
|
572 |
-
#: sitemap-ui.php:1010
|
573 |
-
#: sitemap-ui.php:1019
|
574 |
-
#@ sitemap
|
575 |
-
msgid "Note"
|
576 |
-
msgstr "Opazite"
|
577 |
-
|
578 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3152
|
579 |
-
#: sitemap-ui.php:796
|
580 |
-
#@ sitemap
|
581 |
-
msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the "Location of your sitemap file" section on this page)!"
|
582 |
-
msgstr "Ako se vaš blog nalazi u pod direktorijumu i ako želite da doddate stranice koje se ne nalaze u blog direktorijumu ili ispod, MORATE staviti sitemap fajl u korenu direktorijuma (Pogledajte "Lokaciju vašeg sitemap-a " sekciju na ovoj stranici)!"
|
583 |
-
|
584 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3154
|
585 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3300
|
586 |
-
#: sitemap-ui.php:798
|
587 |
-
#: sitemap-ui.php:837
|
588 |
-
#@ sitemap
|
589 |
-
msgid "URL to the page"
|
590 |
-
msgstr "URL do stranice"
|
591 |
-
|
592 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3155
|
593 |
-
#: sitemap-ui.php:799
|
594 |
-
#@ sitemap
|
595 |
-
msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
|
596 |
-
msgstr "Unesite URL do stranice. Primeri: http://www.foo.com/index.html ili www.foo.com/home "
|
597 |
-
|
598 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3157
|
599 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3301
|
600 |
-
#: sitemap-ui.php:801
|
601 |
-
#: sitemap-ui.php:838
|
602 |
-
#@ sitemap
|
603 |
-
msgid "Priority"
|
604 |
-
msgstr "Prioritet"
|
605 |
-
|
606 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3158
|
607 |
-
#: sitemap-ui.php:802
|
608 |
-
#@ sitemap
|
609 |
-
msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
|
610 |
-
msgstr "Izaberite prioritet stranice u odnosu na druge stranice. Na primer, vaša početna stranica može imati veći prioritet nego niće stranice."
|
611 |
-
|
612 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3160
|
613 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3303
|
614 |
-
#: sitemap-ui.php:804
|
615 |
-
#: sitemap-ui.php:840
|
616 |
-
#@ sitemap
|
617 |
-
msgid "Last Changed"
|
618 |
-
msgstr "Zadjne promene"
|
619 |
-
|
620 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3161
|
621 |
-
#: sitemap-ui.php:805
|
622 |
-
#@ sitemap
|
623 |
-
msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
|
624 |
-
msgstr "Unesti datum zadnje prmene u formatu YYYY-MM-DD (2005-12-31 na primer) (opciono)."
|
625 |
-
|
626 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3302
|
627 |
-
#: sitemap-ui.php:839
|
628 |
-
#@ sitemap
|
629 |
-
msgid "Change Frequency"
|
630 |
-
msgstr "Promente Učestalost"
|
631 |
-
|
632 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3304
|
633 |
-
#: sitemap-ui.php:841
|
634 |
-
#@ sitemap
|
635 |
-
msgid "#"
|
636 |
-
msgstr "#"
|
637 |
-
|
638 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3309
|
639 |
-
#: sitemap-ui.php:846
|
640 |
-
#@ sitemap
|
641 |
-
msgid "No pages defined."
|
642 |
-
msgstr "Stranice nisu definisane."
|
643 |
-
|
644 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3314
|
645 |
-
#: sitemap-ui.php:851
|
646 |
-
#@ sitemap
|
647 |
-
msgid "Add new page"
|
648 |
-
msgstr "Dodajte novu stranicu"
|
649 |
-
|
650 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3325
|
651 |
-
#: sitemap-ui.php:857
|
652 |
-
#@ sitemap
|
653 |
-
msgid "Post Priority"
|
654 |
-
msgstr "Prioritet postova"
|
655 |
-
|
656 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3329
|
657 |
-
#: sitemap-ui.php:859
|
658 |
-
#@ sitemap
|
659 |
-
msgid "Please select how the priority of each post should be calculated:"
|
660 |
-
msgstr "Molimo vas izaberite kako se računa prioritet postova:"
|
661 |
-
|
662 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3331
|
663 |
-
#: sitemap-ui.php:861
|
664 |
-
#@ sitemap
|
665 |
-
msgid "Do not use automatic priority calculation"
|
666 |
-
msgstr "Ne koristi automatsku kalkulaciju prioriteta"
|
667 |
-
|
668 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3331
|
669 |
-
#: sitemap-ui.php:861
|
670 |
-
#@ sitemap
|
671 |
-
msgid "All posts will have the same priority which is defined in "Priorities""
|
672 |
-
msgstr "Svi postovi će imati isti prioritet koji je definisan u "Priorities""
|
673 |
-
|
674 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3397
|
675 |
-
#: sitemap-ui.php:872
|
676 |
-
#@ sitemap
|
677 |
-
msgid "Sitemap Content"
|
678 |
-
msgstr "Sadržaj sitemap-a"
|
679 |
-
|
680 |
-
#: sitemap-ui.php:873
|
681 |
-
#@ sitemap
|
682 |
-
msgid "WordPress standard content"
|
683 |
-
msgstr "WordPress standardni sadržaj"
|
684 |
-
|
685 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3405
|
686 |
-
#: sitemap-ui.php:878
|
687 |
-
#@ sitemap
|
688 |
-
msgid "Include homepage"
|
689 |
-
msgstr "Dodajte početnu "
|
690 |
-
|
691 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3411
|
692 |
-
#: sitemap-ui.php:884
|
693 |
-
#@ sitemap
|
694 |
-
msgid "Include posts"
|
695 |
-
msgstr "Dodajte postove"
|
696 |
-
|
697 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3417
|
698 |
-
#: sitemap-ui.php:890
|
699 |
-
#@ sitemap
|
700 |
-
msgid "Include static pages"
|
701 |
-
msgstr "Dodajte statičke stranice"
|
702 |
-
|
703 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3423
|
704 |
-
#: sitemap-ui.php:896
|
705 |
-
#@ sitemap
|
706 |
-
msgid "Include categories"
|
707 |
-
msgstr "Dodajte kategorije"
|
708 |
-
|
709 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3429
|
710 |
-
#: sitemap-ui.php:902
|
711 |
-
#@ sitemap
|
712 |
-
msgid "Include archives"
|
713 |
-
msgstr "Dodajte arhive"
|
714 |
-
|
715 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3443
|
716 |
-
#: sitemap-ui.php:908
|
717 |
-
#@ sitemap
|
718 |
-
msgid "Include author pages"
|
719 |
-
msgstr "Dodajte stranice autora"
|
720 |
-
|
721 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3436
|
722 |
-
#: sitemap-ui.php:915
|
723 |
-
#@ sitemap
|
724 |
-
msgid "Include tag pages"
|
725 |
-
msgstr "Dodajte tag stranice"
|
726 |
-
|
727 |
-
#: sitemap-ui.php:929
|
728 |
-
#@ sitemap
|
729 |
-
msgid "Custom taxonomies"
|
730 |
-
msgstr "Uobičajene taxonomije"
|
731 |
-
|
732 |
-
#: sitemap-ui.php:940
|
733 |
-
#, php-format
|
734 |
-
#@ sitemap
|
735 |
-
msgid "Include taxonomy pages for %s"
|
736 |
-
msgstr "Dodajte stranice taxonomije za %s"
|
737 |
-
|
738 |
-
#: sitemap-ui.php:958
|
739 |
-
#@ sitemap
|
740 |
-
msgid "Custom post types"
|
741 |
-
msgstr "Uobičajeni tipovi postova"
|
742 |
-
|
743 |
-
#: sitemap-ui.php:969
|
744 |
-
#, php-format
|
745 |
-
#@ sitemap
|
746 |
-
msgid "Include custom post type %s"
|
747 |
-
msgstr "Dodajte uobičajene tipove postova %s"
|
748 |
-
|
749 |
-
#: sitemap-ui.php:981
|
750 |
-
#@ sitemap
|
751 |
-
msgid "Further options"
|
752 |
-
msgstr "Još opcija"
|
753 |
-
|
754 |
-
#: sitemap-ui.php:986
|
755 |
-
#@ sitemap
|
756 |
-
msgid "Include the last modification time."
|
757 |
-
msgstr "Dodajte vreme zadnje modifikacije"
|
758 |
-
|
759 |
-
#: sitemap-ui.php:988
|
760 |
-
#@ sitemap
|
761 |
-
msgid "This is highly recommended and helps the search engines to know when your content has changed. This option affects <i>all</i> sitemap entries."
|
762 |
-
msgstr "Ovo je preporučljivo jer govori pretraživačima kada se vaš sadržaj promeni. Ova opcija utiče <i>sve</i> unose u sitemap."
|
763 |
-
|
764 |
-
#: sitemap-ui.php:995
|
765 |
-
#@ sitemap
|
766 |
-
msgid "Excluded items"
|
767 |
-
msgstr "Uklonite"
|
768 |
-
|
769 |
-
#: sitemap-ui.php:997
|
770 |
-
#@ sitemap
|
771 |
-
msgid "Excluded categories"
|
772 |
-
msgstr "Uklonite kategorije"
|
773 |
-
|
774 |
-
#: sitemap-ui.php:999
|
775 |
-
#@ sitemap
|
776 |
-
msgid "Using this feature will increase build time and memory usage!"
|
777 |
-
msgstr "Korišćenje ove funkcije će povećati vreme pravljenja i korišćenje memorije."
|
778 |
-
|
779 |
-
#: sitemap-ui.php:1006
|
780 |
-
#@ sitemap
|
781 |
-
msgid "Exclude posts"
|
782 |
-
msgstr "Uklonite postove"
|
783 |
-
|
784 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3206
|
785 |
-
#: sitemap-ui.php:1008
|
786 |
-
#@ sitemap
|
787 |
-
msgid "Exclude the following posts or pages:"
|
788 |
-
msgstr "Uklonite sledeće postove ili stranice:"
|
789 |
-
|
790 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3206
|
791 |
-
#: sitemap-ui.php:1008
|
792 |
-
#@ sitemap
|
793 |
-
msgid "List of IDs, separated by comma"
|
794 |
-
msgstr "Lista ID-a, odvojene zarezom"
|
795 |
-
|
796 |
-
#: sitemap-ui.php:1010
|
797 |
-
#@ sitemap
|
798 |
-
msgid "Child posts won't be excluded automatically!"
|
799 |
-
msgstr "Pod postovi neće biti uključeni automatski!"
|
800 |
-
|
801 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3457
|
802 |
-
#: sitemap-ui.php:1016
|
803 |
-
#@ sitemap
|
804 |
-
msgid "Change frequencies"
|
805 |
-
msgstr "Promenite učestalost"
|
806 |
-
|
807 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3463
|
808 |
-
#: sitemap-ui.php:1020
|
809 |
-
#@ sitemap
|
810 |
-
msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
|
811 |
-
msgstr "Molimo vas da zapamtite da vrednost ovog tag-a je koristi kao predlog a ne kao komanda. Iako pretraživači razmatraju ovu infomaciju kada donose odluke, možda će proći kroz stranice obeležene \"hourly\" ređe nego naznačeno, a možda će stranice naznačene \"yearly\" posećivati češće. Isto tako je verovatno da će s'vremena na vreme prolaziti kroz stranice naznačene sa \"never\" da bi mogli da reaguju na neočekivane promene na tim stranicama."
|
812 |
-
|
813 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3469
|
814 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3535
|
815 |
-
#: sitemap-ui.php:1026
|
816 |
-
#: sitemap-ui.php:1083
|
817 |
-
#@ sitemap
|
818 |
-
msgid "Homepage"
|
819 |
-
msgstr "Početna"
|
820 |
-
|
821 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3475
|
822 |
-
#: sitemap-ui.php:1032
|
823 |
-
#@ sitemap
|
824 |
-
msgid "Posts"
|
825 |
-
msgstr "Postovi"
|
826 |
-
|
827 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3481
|
828 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3553
|
829 |
-
#: sitemap-ui.php:1038
|
830 |
-
#: sitemap-ui.php:1101
|
831 |
-
#@ sitemap
|
832 |
-
msgid "Static pages"
|
833 |
-
msgstr "Statične stranice"
|
834 |
-
|
835 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3487
|
836 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3559
|
837 |
-
#: sitemap-ui.php:1044
|
838 |
-
#: sitemap-ui.php:1107
|
839 |
-
#@ sitemap
|
840 |
-
msgid "Categories"
|
841 |
-
msgstr "Kategorije"
|
842 |
-
|
843 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3493
|
844 |
-
#: sitemap-ui.php:1050
|
845 |
-
#@ sitemap
|
846 |
-
msgid "The current archive of this month (Should be the same like your homepage)"
|
847 |
-
msgstr "Trenutna arhiva za ovaj mesec (Treba biti ista kao i vaša početna stranica)"
|
848 |
-
|
849 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3499
|
850 |
-
#: sitemap-ui.php:1056
|
851 |
-
#@ sitemap
|
852 |
-
msgid "Older archives (Changes only if you edit an old post)"
|
853 |
-
msgstr "Starije arhive (Menja se samo ako promenti stariji post)"
|
854 |
-
|
855 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3506
|
856 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3572
|
857 |
-
#: sitemap-ui.php:1063
|
858 |
-
#: sitemap-ui.php:1120
|
859 |
-
#@ sitemap
|
860 |
-
msgid "Tag pages"
|
861 |
-
msgstr "Tag stranice"
|
862 |
-
|
863 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3513
|
864 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3579
|
865 |
-
#: sitemap-ui.php:1070
|
866 |
-
#: sitemap-ui.php:1127
|
867 |
-
#@ sitemap
|
868 |
-
msgid "Author pages"
|
869 |
-
msgstr "Stranice autora"
|
870 |
-
|
871 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3527
|
872 |
-
#: sitemap-ui.php:1078
|
873 |
-
#@ sitemap
|
874 |
-
msgid "Priorities"
|
875 |
-
msgstr "Prioriteti"
|
876 |
-
|
877 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3541
|
878 |
-
#: sitemap-ui.php:1089
|
879 |
-
#@ sitemap
|
880 |
-
msgid "Posts (If auto calculation is disabled)"
|
881 |
-
msgstr "Postovi (ako je auto kalkulacija isključena)"
|
882 |
-
|
883 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3547
|
884 |
-
#: sitemap-ui.php:1095
|
885 |
-
#@ sitemap
|
886 |
-
msgid "Minimum post priority (Even if auto calculation is enabled)"
|
887 |
-
msgstr "Minimalni prioritet za postove (Čak iako je auto kalkulacija uključena)"
|
888 |
-
|
889 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3565
|
890 |
-
#: sitemap-ui.php:1113
|
891 |
-
#@ sitemap
|
892 |
-
msgid "Archives"
|
893 |
-
msgstr "Arhive"
|
894 |
-
|
895 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3590
|
896 |
-
#: sitemap-ui.php:1138
|
897 |
-
#@ sitemap
|
898 |
-
msgid "Update options"
|
899 |
-
msgstr "Opcije ažuriranja"
|
900 |
-
|
901 |
-
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3591
|
902 |
-
#: sitemap-ui.php:1139
|
903 |
-
#@ sitemap
|
904 |
-
msgid "Reset options"
|
905 |
-
msgstr "Opcije za resetovanje"
|
906 |
-
|
907 |
-
#: sitemap.php:82
|
908 |
-
#@ sitemap
|
909 |
-
msgid "Your WordPress version is too old for XML Sitemaps."
|
910 |
-
msgstr "Vaša verzija WordPress-a je previše stara za XML Sitemap."
|
911 |
-
|
912 |
-
#: sitemap.php:82
|
913 |
-
#, php-format
|
914 |
-
#@ sitemap
|
915 |
-
msgid "Unfortunately this release of Google XML Sitemaps requires at least WordPress %4$s. You are using Wordpress %2$s, which is out-dated and insecure. Please upgrade or go to <a href=\"%1$s\">active plugins</a> and deactivate the Google XML Sitemaps plugin to hide this message. You can download an older version of this plugin from the <a href=\"%3$s\">plugin website</a>."
|
916 |
-
msgstr "Nažalost ova verzija Google XML Sitemap-a zahteva barem WordPress verziju %4$s. Vi koristite WordPress verziju %2$s, koja je zastarela i nesigurna. Molimo vas da update-ujete ili odete na <a href=\"%1$s\">aktivne plugin-ove</a> i deaktivirate Google XML Sitemap plugin da bi ste sakrili ovu poruku. Možete skinuti stariju verziju ovog plugin-a sa <a href=\"%3$s\">našeg sajta</a>."
|
917 |
-
|
918 |
-
#: sitemap.php:92
|
919 |
-
#@ sitemap
|
920 |
-
msgid "Your PHP version is too old for XML Sitemaps."
|
921 |
-
msgstr "PHP verzija koju koristite je previše stara za XML sitemap."
|
922 |
-
|
923 |
-
#: sitemap.php:92
|
924 |
-
#, php-format
|
925 |
-
#@ sitemap
|
926 |
-
msgid "Unfortunately this release of Google XML Sitemaps requires at least PHP %4$s. You are using PHP %2$s, which is out-dated and insecure. Please ask your web host to update your PHP installation or go to <a href=\"%1$s\">active plugins</a> and deactivate the Google XML Sitemaps plugin to hide this message. You can download an older version of this plugin from the <a href=\"%3$s\">plugin website</a>."
|
927 |
-
msgstr "nažalost ova verzija Google XML Sitemap-a zahteva najmanje verziju PHP %4$s. Vi koristite PHP %2$s, koji je zastareo i nesiguran. Zamolite vaš hosting da ažuriraju verziju PHP instalacije ili idite na <a href=\"%1$s\">aktivne plugin-ove</a> i deaktivirajte Google XML Sitemap plugin da bi ste sakrili ovu poruku. Možete skinuti straiju verziju ovog plugin-a sa <a href=\"%3$s\">našeg sajta</a>."
|
928 |
-
|
929 |
-
#. translators: plugin header field 'Name'
|
930 |
-
#: sitemap.php:0
|
931 |
-
#@ sitemap
|
932 |
-
msgid "Google XML Sitemaps"
|
933 |
-
msgstr ""
|
934 |
-
|
935 |
-
#. translators: plugin header field 'PluginURI'
|
936 |
-
#: sitemap.php:0
|
937 |
-
#@ sitemap
|
938 |
-
msgid "http://www.arnebrachhold.de/redir/sitemap-home/"
|
939 |
-
msgstr ""
|
940 |
-
|
941 |
-
#. translators: plugin header field 'Description'
|
942 |
-
#: sitemap.php:0
|
943 |
-
#@ sitemap
|
944 |
-
msgid "This plugin will generate a special XML sitemap which will help search engines like Google, Yahoo, Bing and Ask.com to better index your blog."
|
945 |
-
msgstr ""
|
946 |
-
|
947 |
-
#. translators: plugin header field 'Author'
|
948 |
-
#: sitemap.php:0
|
949 |
-
#@ sitemap
|
950 |
-
msgid "Arne Brachhold"
|
951 |
-
msgstr ""
|
952 |
-
|
953 |
-
#. translators: plugin header field 'AuthorURI'
|
954 |
-
#: sitemap.php:0
|
955 |
-
#@ sitemap
|
956 |
-
msgid "http://www.arnebrachhold.de/"
|
957 |
-
msgstr ""
|
958 |
-
|
959 |
-
#. translators: plugin header field 'Version'
|
960 |
-
#: sitemap.php:0
|
961 |
-
#@ sitemap
|
962 |
-
msgid "4.0beta9"
|
963 |
-
msgstr ""
|
964 |
-
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Google XML Sitemaps v4.0beta9\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2012-05-05 20:24+0100\n"
|
6 |
+
"PO-Revision-Date: 2012-06-02 14:54:30+0000\n"
|
7 |
+
"Last-Translator: Arne Brachhold <himself-arnebrachhold-de>\n"
|
8 |
+
"Language-Team: \n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
13 |
+
"X-Poedit-Language: \n"
|
14 |
+
"X-Poedit-Country: \n"
|
15 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
16 |
+
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
|
17 |
+
"X-Poedit-Basepath: .\n"
|
18 |
+
"X-Poedit-Bookmarks: \n"
|
19 |
+
"X-Poedit-SearchPath-0: C:/Inetpub/wwwroot/wp_plugins/sitemap_beta\n"
|
20 |
+
"X-Textdomain-Support: yes"
|
21 |
+
|
22 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:846
|
23 |
+
#: sitemap-core.php:527
|
24 |
+
#@ sitemap
|
25 |
+
msgid "Comment Count"
|
26 |
+
msgstr "Broj Komentara"
|
27 |
+
|
28 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:858
|
29 |
+
#: sitemap-core.php:537
|
30 |
+
#@ sitemap
|
31 |
+
msgid "Uses the number of comments of the post to calculate the priority"
|
32 |
+
msgstr "Koristi broj komentara na postu za kalkulaciju prioriteta"
|
33 |
+
|
34 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:918
|
35 |
+
#: sitemap-core.php:590
|
36 |
+
#@ sitemap
|
37 |
+
msgid "Comment Average"
|
38 |
+
msgstr "Prosečan Broj Komentara"
|
39 |
+
|
40 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:930
|
41 |
+
#: sitemap-core.php:600
|
42 |
+
#@ sitemap
|
43 |
+
msgid "Uses the average comment count to calculate the priority"
|
44 |
+
msgstr "Koristi prosečan broj komentara za računanje prioriteta"
|
45 |
+
|
46 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:993
|
47 |
+
#: sitemap-core.php:661
|
48 |
+
#@ sitemap
|
49 |
+
msgid "Popularity Contest"
|
50 |
+
msgstr "Takmičenje Popularnosti"
|
51 |
+
|
52 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:1005
|
53 |
+
#: sitemap-core.php:671
|
54 |
+
#, php-format
|
55 |
+
#@ sitemap
|
56 |
+
msgid "Uses the activated <a href=\"%1\">Popularity Contest Plugin</a> from <a href=\"%2\">Alex King</a>. See <a href=\"%3\">Settings</a> and <a href=\"%4\">Most Popular Posts</a>"
|
57 |
+
msgstr "Koristi aktivirani <a href=\"%1\">Takmičenje Popularnosti plugin</a> od <a href=\"%2\">Alex King-a</a>. Proveri <a href=\"%3\">Podešavanja</a> i <a href=\"%4\">Najpopularnije Postove</a>"
|
58 |
+
|
59 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1118
|
60 |
+
#: sitemap-core.php:840
|
61 |
+
#@ sitemap
|
62 |
+
msgid "Always"
|
63 |
+
msgstr "Uvek"
|
64 |
+
|
65 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1119
|
66 |
+
#: sitemap-core.php:841
|
67 |
+
#@ sitemap
|
68 |
+
msgid "Hourly"
|
69 |
+
msgstr "Svakog sata"
|
70 |
+
|
71 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1120
|
72 |
+
#: sitemap-core.php:842
|
73 |
+
#@ sitemap
|
74 |
+
msgid "Daily"
|
75 |
+
msgstr "Dnevno"
|
76 |
+
|
77 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1121
|
78 |
+
#: sitemap-core.php:843
|
79 |
+
#@ sitemap
|
80 |
+
msgid "Weekly"
|
81 |
+
msgstr "Nedeljno"
|
82 |
+
|
83 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1122
|
84 |
+
#: sitemap-core.php:844
|
85 |
+
#@ sitemap
|
86 |
+
msgid "Monthly"
|
87 |
+
msgstr "Mesečno"
|
88 |
+
|
89 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1123
|
90 |
+
#: sitemap-core.php:845
|
91 |
+
#@ sitemap
|
92 |
+
msgid "Yearly"
|
93 |
+
msgstr "Godišnje"
|
94 |
+
|
95 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-core.php:1124
|
96 |
+
#: sitemap-core.php:846
|
97 |
+
#@ sitemap
|
98 |
+
msgid "Never"
|
99 |
+
msgstr "Nikad"
|
100 |
+
|
101 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2415
|
102 |
+
#: sitemap-loader.php:212
|
103 |
+
#@ sitemap
|
104 |
+
msgid "XML-Sitemap Generator"
|
105 |
+
msgstr "XML-Sitemap Generator"
|
106 |
+
|
107 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2415
|
108 |
+
#: sitemap-loader.php:212
|
109 |
+
#@ sitemap
|
110 |
+
msgid "XML-Sitemap"
|
111 |
+
msgstr "XML-Sitemap"
|
112 |
+
|
113 |
+
#: sitemap-loader.php:239
|
114 |
+
#@ sitemap
|
115 |
+
msgid "Settings"
|
116 |
+
msgstr "Podešavanja"
|
117 |
+
|
118 |
+
#: sitemap-loader.php:240
|
119 |
+
#@ sitemap
|
120 |
+
msgid "FAQ"
|
121 |
+
msgstr "FAQ"
|
122 |
+
|
123 |
+
#: sitemap-loader.php:241
|
124 |
+
#@ sitemap
|
125 |
+
msgid "Support"
|
126 |
+
msgstr "Podrška"
|
127 |
+
|
128 |
+
#: sitemap-loader.php:242
|
129 |
+
#@ sitemap
|
130 |
+
msgid "Donate"
|
131 |
+
msgstr "Donacije"
|
132 |
+
|
133 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2886
|
134 |
+
#: sitemap-loader.php:328
|
135 |
+
#: sitemap-ui.php:630
|
136 |
+
#@ sitemap
|
137 |
+
msgid "Plugin Homepage"
|
138 |
+
msgstr "Homepage Plugin-a"
|
139 |
+
|
140 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2905
|
141 |
+
#: sitemap-loader.php:329
|
142 |
+
#: sitemap-ui.php:652
|
143 |
+
#@ sitemap
|
144 |
+
msgid "My Sitemaps FAQ"
|
145 |
+
msgstr "Česta pitanja o Sitemap-ima"
|
146 |
+
|
147 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2635
|
148 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2835
|
149 |
+
#: sitemap-ui.php:198
|
150 |
+
#: sitemap-ui.php:585
|
151 |
+
#@ sitemap
|
152 |
+
msgid "XML Sitemap Generator for WordPress"
|
153 |
+
msgstr "XML Sitemap Generator za WordPress"
|
154 |
+
|
155 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2740
|
156 |
+
#: sitemap-ui.php:374
|
157 |
+
#@ sitemap
|
158 |
+
msgid "Configuration updated"
|
159 |
+
msgstr "Konfiguracije ažurirane"
|
160 |
+
|
161 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2741
|
162 |
+
#: sitemap-ui.php:375
|
163 |
+
#@ sitemap
|
164 |
+
msgid "Error while saving options"
|
165 |
+
msgstr "Greška prilikom snimanja opcija"
|
166 |
+
|
167 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2743
|
168 |
+
#: sitemap-ui.php:378
|
169 |
+
#@ sitemap
|
170 |
+
msgid "Pages saved"
|
171 |
+
msgstr "Stranice snimljene"
|
172 |
+
|
173 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2744
|
174 |
+
#: sitemap-ui.php:379
|
175 |
+
#@ sitemap
|
176 |
+
msgid "Error while saving pages"
|
177 |
+
msgstr "Greška za vreme snimanja stranica"
|
178 |
+
|
179 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2758
|
180 |
+
#: sitemap-ui.php:387
|
181 |
+
#@ sitemap
|
182 |
+
msgid "The default configuration was restored."
|
183 |
+
msgstr "Osnovna podešavanja su vraćena"
|
184 |
+
|
185 |
+
#: sitemap-ui.php:397
|
186 |
+
#@ sitemap
|
187 |
+
msgid "The old files could NOT be deleted. Please use an FTP program and delete them by yourself."
|
188 |
+
msgstr "Nismo mogli izbrisati stare fajlove. Molimo vas da koristite FTP program i obrišete ih lično."
|
189 |
+
|
190 |
+
#: sitemap-ui.php:399
|
191 |
+
#@ sitemap
|
192 |
+
msgid "The old files were successfully deleted."
|
193 |
+
msgstr "Stari fajlovi su uspešno obrisani."
|
194 |
+
|
195 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2600
|
196 |
+
#: sitemap-ui.php:439
|
197 |
+
#@ sitemap
|
198 |
+
msgid "Thank you very much for your donation. You help me to continue support and development of this plugin and other free software!"
|
199 |
+
msgstr "Hvala vam na donaciji. Pomažete mi da nastavim rad i razvoj ovog plugin-a i drugih besplatnih programa."
|
200 |
+
|
201 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2600
|
202 |
+
#: sitemap-ui.php:439
|
203 |
+
#@ sitemap
|
204 |
+
msgid "Hide this notice"
|
205 |
+
msgstr "Sakrijte ovo obaveštenje"
|
206 |
+
|
207 |
+
#: sitemap-ui.php:445
|
208 |
+
#, php-format
|
209 |
+
#@ sitemap
|
210 |
+
msgid "Thanks for using this plugin! You've installed this plugin over a month ago. If it works and you are satisfied with the results, isn't it worth at least a few dollar? <a href=\"%s\">Donations</a> help me to continue support and development of this <i>free</i> software! <a href=\"%s\">Sure, no problem!</a>"
|
211 |
+
msgstr "Hvala vam što koristite ovaj plugin. Instalirali ste plugin pre meseca dana. Ako plugin radi i zadovoljni ste rezultatima, nadam se da je vredno makar par dolara? <a href=\"%s\">Donacije</a> mi pomažu da nastavim rad na ovom <i>besplatnom</i> softveru! <a href=\"%s\">Naravno, nema problema!</a>"
|
212 |
+
|
213 |
+
#: sitemap-ui.php:445
|
214 |
+
#@ sitemap
|
215 |
+
msgid "Sure, but I already did!"
|
216 |
+
msgstr "Naravno, ali već sam donirao!"
|
217 |
+
|
218 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2657
|
219 |
+
#: sitemap-ui.php:445
|
220 |
+
#@ sitemap
|
221 |
+
msgid "No thanks, please don't bug me anymore!"
|
222 |
+
msgstr "Ne hvala, molim vas ne uznemiravajte me više!"
|
223 |
+
|
224 |
+
#: sitemap-ui.php:452
|
225 |
+
#, php-format
|
226 |
+
#@ sitemap
|
227 |
+
msgid "Thanks for using this plugin! You've installed this plugin some time ago. If it works and your are satisfied, why not <a href=\"%s\">rate it</a> and <a href=\"%s\">recommend it</a> to others? :-)"
|
228 |
+
msgstr "Hvala vam što koristite ovaj plugin! Instalirali ste ovaj plugin pre nekog vremena. Ako radi i zadovoljni ste, zašto ne biste <a href=\"%s\">dali ocenu</a> i <a href=\"%s\">preporučili ga</a> drugima? :-)"
|
229 |
+
|
230 |
+
#: sitemap-ui.php:452
|
231 |
+
#@ sitemap
|
232 |
+
msgid "Don't show this anymore"
|
233 |
+
msgstr "Ne pokazuj više"
|
234 |
+
|
235 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-ui.php:374
|
236 |
+
#: sitemap-ui.php:601
|
237 |
+
#, php-format
|
238 |
+
#@ default
|
239 |
+
msgid "There is a new version of %1$s available. <a href=\"%2$s\">Download version %3$s here</a>."
|
240 |
+
msgstr "Postoji nova verzija %1$s. <a href=\"%2$s\">Skinite verziju %3$s ovde</a>."
|
241 |
+
|
242 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-ui.php:376
|
243 |
+
#: sitemap-ui.php:603
|
244 |
+
#, php-format
|
245 |
+
#@ default
|
246 |
+
msgid "There is a new version of %1$s available. <a href=\"%2$s\">Download version %3$s here</a> <em>automatic upgrade unavailable for this plugin</em>."
|
247 |
+
msgstr "Postoji nova verzija %1$s. <a href=\"%2$s\">Skinite novu verziju %3$s ovde</a> <em>automatsko osvežavanje verzije nije dostupno za ovaj plugin</em>."
|
248 |
+
|
249 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-ui.php:378
|
250 |
+
#: sitemap-ui.php:605
|
251 |
+
#, php-format
|
252 |
+
#@ default
|
253 |
+
msgid "There is a new version of %1$s available. <a href=\"%2$s\">Download version %3$s here</a> or <a href=\"%4$s\">upgrade automatically</a>."
|
254 |
+
msgstr "Postoji nova verzija %1$s. <a href=\"%2$s\">Skinite verziju %3$s ovde</a> ili <a href=\"%4$s\">uradite update automatski</a>."
|
255 |
+
|
256 |
+
#: sitemap-ui.php:613
|
257 |
+
#, php-format
|
258 |
+
#@ sitemap
|
259 |
+
msgid "Your blog is currently blocking search engines! Visit the <a href=\"%s\">privacy settings</a> to change this."
|
260 |
+
msgstr "Vaš blog trenutno blokira pretraživače! Posetite <a href=\"%s\">podešavanja privatnosti</a> da bi ste promenili."
|
261 |
+
|
262 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2884
|
263 |
+
#: sitemap-ui.php:629
|
264 |
+
#@ sitemap
|
265 |
+
msgid "About this Plugin:"
|
266 |
+
msgstr "O ovom plugin-u:"
|
267 |
+
|
268 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-ui.php:421
|
269 |
+
#: sitemap-ui.php:631
|
270 |
+
#@ sitemap
|
271 |
+
msgid "Suggest a Feature"
|
272 |
+
msgstr "Predložite Funkciju"
|
273 |
+
|
274 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2887
|
275 |
+
#: sitemap-ui.php:632
|
276 |
+
#@ sitemap
|
277 |
+
msgid "Notify List"
|
278 |
+
msgstr "Lista Notifikacija"
|
279 |
+
|
280 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2888
|
281 |
+
#: sitemap-ui.php:633
|
282 |
+
#@ sitemap
|
283 |
+
msgid "Support Forum"
|
284 |
+
msgstr "Forum za Podršku"
|
285 |
+
|
286 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap-ui.php:424
|
287 |
+
#: sitemap-ui.php:634
|
288 |
+
#@ sitemap
|
289 |
+
msgid "Report a Bug"
|
290 |
+
msgstr "Prijavite Grešku"
|
291 |
+
|
292 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2889
|
293 |
+
#: sitemap-ui.php:636
|
294 |
+
#@ sitemap
|
295 |
+
msgid "Donate with PayPal"
|
296 |
+
msgstr "Donirajte putem PayPal-a"
|
297 |
+
|
298 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2890
|
299 |
+
#: sitemap-ui.php:637
|
300 |
+
#@ sitemap
|
301 |
+
msgid "My Amazon Wish List"
|
302 |
+
msgstr "Moje želje na Amazon-u"
|
303 |
+
|
304 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2891
|
305 |
+
#: sitemap-ui.php:638
|
306 |
+
#@ sitemap
|
307 |
+
msgid "translator_name"
|
308 |
+
msgstr "ime_prevodioca"
|
309 |
+
|
310 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2891
|
311 |
+
#: sitemap-ui.php:638
|
312 |
+
#@ sitemap
|
313 |
+
msgid "translator_url"
|
314 |
+
msgstr "url_prevodioca"
|
315 |
+
|
316 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2895
|
317 |
+
#: sitemap-ui.php:641
|
318 |
+
#@ sitemap
|
319 |
+
msgid "Sitemap Resources:"
|
320 |
+
msgstr "Više o Sitemap-u"
|
321 |
+
|
322 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2897
|
323 |
+
#: sitemap-ui.php:642
|
324 |
+
#: sitemap-ui.php:647
|
325 |
+
#@ sitemap
|
326 |
+
msgid "Webmaster Tools"
|
327 |
+
msgstr "Alatke za Webmastere"
|
328 |
+
|
329 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2898
|
330 |
+
#: sitemap-ui.php:643
|
331 |
+
#@ sitemap
|
332 |
+
msgid "Webmaster Blog"
|
333 |
+
msgstr "Webmaster Blog"
|
334 |
+
|
335 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2901
|
336 |
+
#: sitemap-ui.php:645
|
337 |
+
#@ sitemap
|
338 |
+
msgid "Search Blog"
|
339 |
+
msgstr "Pretražite Blog"
|
340 |
+
|
341 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3010
|
342 |
+
#: sitemap-ui.php:648
|
343 |
+
#@ sitemap
|
344 |
+
msgid "Webmaster Center Blog"
|
345 |
+
msgstr "Webmaster Central Blog"
|
346 |
+
|
347 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2903
|
348 |
+
#: sitemap-ui.php:650
|
349 |
+
#@ sitemap
|
350 |
+
msgid "Sitemaps Protocol"
|
351 |
+
msgstr "Sitemap Protokol"
|
352 |
+
|
353 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2904
|
354 |
+
#: sitemap-ui.php:651
|
355 |
+
#@ sitemap
|
356 |
+
msgid "Official Sitemaps FAQ"
|
357 |
+
msgstr "Oficijalni Sitemap FAW"
|
358 |
+
|
359 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2910
|
360 |
+
#: sitemap-ui.php:655
|
361 |
+
#@ sitemap
|
362 |
+
msgid "Recent Donations:"
|
363 |
+
msgstr "Zadnje Donacije:"
|
364 |
+
|
365 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2914
|
366 |
+
#: sitemap-ui.php:658
|
367 |
+
#@ sitemap
|
368 |
+
msgid "List of the donors"
|
369 |
+
msgstr "Lista Donatora"
|
370 |
+
|
371 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2916
|
372 |
+
#: sitemap-ui.php:660
|
373 |
+
#@ sitemap
|
374 |
+
msgid "Hide this list"
|
375 |
+
msgstr "Sakrijte listu"
|
376 |
+
|
377 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:2919
|
378 |
+
#: sitemap-ui.php:663
|
379 |
+
#@ sitemap
|
380 |
+
msgid "Thanks for your support!"
|
381 |
+
msgstr "Hvala vam na podršci!"
|
382 |
+
|
383 |
+
#: sitemap-ui.php:683
|
384 |
+
#@ sitemap
|
385 |
+
msgid "Search engines haven't been notified yet"
|
386 |
+
msgstr "Pretraživači još uvek nisu obavešteni"
|
387 |
+
|
388 |
+
#: sitemap-ui.php:687
|
389 |
+
#, php-format
|
390 |
+
#@ sitemap
|
391 |
+
msgid "Result of the last ping, started on %date%."
|
392 |
+
msgstr "Rezultati zadnjeg ping-a, započeto %date%."
|
393 |
+
|
394 |
+
#: sitemap-ui.php:702
|
395 |
+
#, php-format
|
396 |
+
#@ sitemap
|
397 |
+
msgid "There is still a sitemap.xml or sitemap.xml.gz file in your blog directory. Please delete them as no static files are used anymore or <a href=\"%s\">try to delete them automatically</a>."
|
398 |
+
msgstr "Još uvek postoji sitemap.xml ili sitemap.xml.gz fajl na vašem blog direktorijumu. Molimo vas da ih obrišete jer se više ne koristi ni jeda statični fajl ili <a href=\"%s\">pokušajte da ih obrišete automatski</a>."
|
399 |
+
|
400 |
+
#: sitemap-ui.php:705
|
401 |
+
#, php-format
|
402 |
+
#@ sitemap
|
403 |
+
msgid "The URL to your sitemap index file is: <a href=\"%s\">%s</a>."
|
404 |
+
msgstr "URL do vašeg sitemap index fajl-a je: <a href=\"%s\">%s</a>."
|
405 |
+
|
406 |
+
#: sitemap-ui.php:708
|
407 |
+
#@ sitemap
|
408 |
+
msgid "Search engines haven't been notified yet. Write a post to let them know about your sitemap."
|
409 |
+
msgstr "Pretraživači još uvek nisu obavešteni. Napišite post da bi ste ih obavestili o vašem sitemap-u."
|
410 |
+
|
411 |
+
#: sitemap-ui.php:717
|
412 |
+
#, php-format
|
413 |
+
#@ sitemap
|
414 |
+
msgid "%s was <b>successfully notified</b> about changes."
|
415 |
+
msgstr "%s je <b>uspešno obavešten</b> o promenama."
|
416 |
+
|
417 |
+
#: sitemap-ui.php:720
|
418 |
+
#, php-format
|
419 |
+
#@ sitemap
|
420 |
+
msgid "It took %time% seconds to notify %name%, maybe you want to disable this feature to reduce the building time."
|
421 |
+
msgstr "Trebalo je %time% sekundi da obavestimo %name%, možda želite da onesposobite ovu funkciju da bi ste smanjili vreme izgradnje."
|
422 |
+
|
423 |
+
#: sitemap-ui.php:723
|
424 |
+
#, php-format
|
425 |
+
#@ sitemap
|
426 |
+
msgid "There was a problem while notifying %name%. <a href=\"%s\">View result</a>"
|
427 |
+
msgstr "Imali smo problem sa obaveštavanjem %name%. <a href=\"%s\">Pogledajte rezultate</a>"
|
428 |
+
|
429 |
+
#: sitemap-ui.php:727
|
430 |
+
#, php-format
|
431 |
+
#@ sitemap
|
432 |
+
msgid "If you encounter any problems with your sitemap you can use the <a href=\"%d\">debug function</a> to get more information."
|
433 |
+
msgstr "Ako naiđete na neke probleme u vezi sa sitemap-om možete iskoristiti <a href=\"%d\">debug funkciju</a> da bi ste dobili više podataka."
|
434 |
+
|
435 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3040
|
436 |
+
#: sitemap-ui.php:735
|
437 |
+
#@ sitemap
|
438 |
+
msgid "Basic Options"
|
439 |
+
msgstr "Onsovne Opcije"
|
440 |
+
|
441 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3079
|
442 |
+
#: sitemap-ui.php:737
|
443 |
+
#@ sitemap
|
444 |
+
msgid "Update notification:"
|
445 |
+
msgstr "Ažurirajte notifikacije:"
|
446 |
+
|
447 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3044
|
448 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3059
|
449 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3079
|
450 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3104
|
451 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3121
|
452 |
+
#: sitemap-ui.php:737
|
453 |
+
#: sitemap-ui.php:765
|
454 |
+
#@ sitemap
|
455 |
+
msgid "Learn more"
|
456 |
+
msgstr "Saznajte više"
|
457 |
+
|
458 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3083
|
459 |
+
#: sitemap-ui.php:741
|
460 |
+
#@ sitemap
|
461 |
+
msgid "Notify Google about updates of your Blog"
|
462 |
+
msgstr "Obavestite Google o promenama na vašem Blogu"
|
463 |
+
|
464 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3084
|
465 |
+
#: sitemap-ui.php:742
|
466 |
+
#, php-format
|
467 |
+
#@ sitemap
|
468 |
+
msgid "No registration required, but you can join the <a href=\"%s\">Google Webmaster Tools</a> to check crawling statistics."
|
469 |
+
msgstr "Registracija nije potrebna, ali možete otovriti nalog na <a href=\"%s\">Google Webmaster Tools</a> da bi ste preverili statistiku."
|
470 |
+
|
471 |
+
#: sitemap-ui.php:746
|
472 |
+
#@ sitemap
|
473 |
+
msgid "Notify Bing (formerly MSN Live Search) about updates of your Blog"
|
474 |
+
msgstr "Obavestite Bing (bivši MSN Live Search) o promenama na vašem Blogu"
|
475 |
+
|
476 |
+
#: sitemap-ui.php:747
|
477 |
+
#, php-format
|
478 |
+
#@ sitemap
|
479 |
+
msgid "No registration required, but you can join the <a href=\"%s\">Bing Webmaster Tools</a> to check crawling statistics."
|
480 |
+
msgstr "Registracija nije potrebna, ali možete napraviti nalog na <a href=\"%s\">Bing Webmaster Tools</a> da proverite statistiku."
|
481 |
+
|
482 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3088
|
483 |
+
#: sitemap-ui.php:751
|
484 |
+
#@ sitemap
|
485 |
+
msgid "Notify Ask.com about updates of your Blog"
|
486 |
+
msgstr "Obavestite Ask.com o promenama na vašem Blogu"
|
487 |
+
|
488 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3089
|
489 |
+
#: sitemap-ui.php:752
|
490 |
+
#@ sitemap
|
491 |
+
msgid "No registration required."
|
492 |
+
msgstr "Registracija nije potrebna."
|
493 |
+
|
494 |
+
#: sitemap-ui.php:757
|
495 |
+
#@ sitemap
|
496 |
+
msgid "Add sitemap URL to the virtual robots.txt file."
|
497 |
+
msgstr "Dodajte URL vašeg sitemap-a u robots.txt fajl."
|
498 |
+
|
499 |
+
#: sitemap-ui.php:761
|
500 |
+
#@ sitemap
|
501 |
+
msgid "The virtual robots.txt generated by WordPress is used. A real robots.txt file must NOT exist in the blog directory!"
|
502 |
+
msgstr "Virtualni robots.txt fajl generisan od strane WordPress-a je iskorišćen. Pravi robots.txt fajl NE SME postojati u direktorijumu vašeg bloga!"
|
503 |
+
|
504 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3121
|
505 |
+
#: sitemap-ui.php:765
|
506 |
+
#@ sitemap
|
507 |
+
msgid "Advanced options:"
|
508 |
+
msgstr "Napredne opcija:"
|
509 |
+
|
510 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3127
|
511 |
+
#: sitemap-ui.php:768
|
512 |
+
#@ sitemap
|
513 |
+
msgid "Try to increase the memory limit to:"
|
514 |
+
msgstr "Pokušajte da povećate limit memorije na:"
|
515 |
+
|
516 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3127
|
517 |
+
#: sitemap-ui.php:768
|
518 |
+
#@ sitemap
|
519 |
+
msgid "e.g. \"4M\", \"16M\""
|
520 |
+
msgstr "npr. \"4M\", \"16M\""
|
521 |
+
|
522 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3130
|
523 |
+
#: sitemap-ui.php:771
|
524 |
+
#@ sitemap
|
525 |
+
msgid "Try to increase the execution time limit to:"
|
526 |
+
msgstr "Pokušajte da povećate vreme izvršenja na:"
|
527 |
+
|
528 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3130
|
529 |
+
#: sitemap-ui.php:771
|
530 |
+
#@ sitemap
|
531 |
+
msgid "in seconds, e.g. \"60\" or \"0\" for unlimited"
|
532 |
+
msgstr "u sekundama, npr. \"60\" or \"0\" za neograničeno"
|
533 |
+
|
534 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3133
|
535 |
+
#: sitemap-ui.php:775
|
536 |
+
#@ sitemap
|
537 |
+
msgid "Include a XSLT stylesheet:"
|
538 |
+
msgstr "Dodajte XSLT stylesheet:"
|
539 |
+
|
540 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3133
|
541 |
+
#: sitemap-ui.php:776
|
542 |
+
#@ sitemap
|
543 |
+
msgid "Full or relative URL to your .xsl file"
|
544 |
+
msgstr "Absolutni ili relativni URL do vasšeg .xsl fajla."
|
545 |
+
|
546 |
+
#: sitemap-ui.php:776
|
547 |
+
#@ sitemap
|
548 |
+
msgid "Use default"
|
549 |
+
msgstr "Koristite default-ni"
|
550 |
+
|
551 |
+
#: sitemap-ui.php:781
|
552 |
+
#@ sitemap
|
553 |
+
msgid "Include sitemap in HTML format"
|
554 |
+
msgstr "Dodajte sitemap u HTML formatu"
|
555 |
+
|
556 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3144
|
557 |
+
#: sitemap-ui.php:790
|
558 |
+
#@ sitemap
|
559 |
+
msgid "Additional pages"
|
560 |
+
msgstr "Dodatne stranice"
|
561 |
+
|
562 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3149
|
563 |
+
#: sitemap-ui.php:793
|
564 |
+
#@ sitemap
|
565 |
+
msgid "Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Blog/WordPress.<br />For example, if your domain is www.foo.com and your blog is located on www.foo.com/blog you might want to include your homepage at www.foo.com"
|
566 |
+
msgstr "Ovde možete specificirati fajlove ili URL-ove koje bi trebalo dodati u sitemap, ali ne pripadaju vašem Blog-u/WordPress-u. <br />Na primer, ako je vaš domen www.foo.com a vaš blog se nalazi na www.foo.com-blog mozda želite da dodate vašu početnu stranu www.foo.com"
|
567 |
+
|
568 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3151
|
569 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3462
|
570 |
+
#: sitemap-ui.php:795
|
571 |
+
#: sitemap-ui.php:999
|
572 |
+
#: sitemap-ui.php:1010
|
573 |
+
#: sitemap-ui.php:1019
|
574 |
+
#@ sitemap
|
575 |
+
msgid "Note"
|
576 |
+
msgstr "Opazite"
|
577 |
+
|
578 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3152
|
579 |
+
#: sitemap-ui.php:796
|
580 |
+
#@ sitemap
|
581 |
+
msgid "If your blog is in a subdirectory and you want to add pages which are NOT in the blog directory or beneath, you MUST place your sitemap file in the root directory (Look at the "Location of your sitemap file" section on this page)!"
|
582 |
+
msgstr "Ako se vaš blog nalazi u pod direktorijumu i ako želite da doddate stranice koje se ne nalaze u blog direktorijumu ili ispod, MORATE staviti sitemap fajl u korenu direktorijuma (Pogledajte "Lokaciju vašeg sitemap-a " sekciju na ovoj stranici)!"
|
583 |
+
|
584 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3154
|
585 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3300
|
586 |
+
#: sitemap-ui.php:798
|
587 |
+
#: sitemap-ui.php:837
|
588 |
+
#@ sitemap
|
589 |
+
msgid "URL to the page"
|
590 |
+
msgstr "URL do stranice"
|
591 |
+
|
592 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3155
|
593 |
+
#: sitemap-ui.php:799
|
594 |
+
#@ sitemap
|
595 |
+
msgid "Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home "
|
596 |
+
msgstr "Unesite URL do stranice. Primeri: http://www.foo.com/index.html ili www.foo.com/home "
|
597 |
+
|
598 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3157
|
599 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3301
|
600 |
+
#: sitemap-ui.php:801
|
601 |
+
#: sitemap-ui.php:838
|
602 |
+
#@ sitemap
|
603 |
+
msgid "Priority"
|
604 |
+
msgstr "Prioritet"
|
605 |
+
|
606 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3158
|
607 |
+
#: sitemap-ui.php:802
|
608 |
+
#@ sitemap
|
609 |
+
msgid "Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint."
|
610 |
+
msgstr "Izaberite prioritet stranice u odnosu na druge stranice. Na primer, vaša početna stranica može imati veći prioritet nego niće stranice."
|
611 |
+
|
612 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3160
|
613 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3303
|
614 |
+
#: sitemap-ui.php:804
|
615 |
+
#: sitemap-ui.php:840
|
616 |
+
#@ sitemap
|
617 |
+
msgid "Last Changed"
|
618 |
+
msgstr "Zadjne promene"
|
619 |
+
|
620 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3161
|
621 |
+
#: sitemap-ui.php:805
|
622 |
+
#@ sitemap
|
623 |
+
msgid "Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional)."
|
624 |
+
msgstr "Unesti datum zadnje prmene u formatu YYYY-MM-DD (2005-12-31 na primer) (opciono)."
|
625 |
+
|
626 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3302
|
627 |
+
#: sitemap-ui.php:839
|
628 |
+
#@ sitemap
|
629 |
+
msgid "Change Frequency"
|
630 |
+
msgstr "Promente Učestalost"
|
631 |
+
|
632 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3304
|
633 |
+
#: sitemap-ui.php:841
|
634 |
+
#@ sitemap
|
635 |
+
msgid "#"
|
636 |
+
msgstr "#"
|
637 |
+
|
638 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3309
|
639 |
+
#: sitemap-ui.php:846
|
640 |
+
#@ sitemap
|
641 |
+
msgid "No pages defined."
|
642 |
+
msgstr "Stranice nisu definisane."
|
643 |
+
|
644 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3314
|
645 |
+
#: sitemap-ui.php:851
|
646 |
+
#@ sitemap
|
647 |
+
msgid "Add new page"
|
648 |
+
msgstr "Dodajte novu stranicu"
|
649 |
+
|
650 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3325
|
651 |
+
#: sitemap-ui.php:857
|
652 |
+
#@ sitemap
|
653 |
+
msgid "Post Priority"
|
654 |
+
msgstr "Prioritet postova"
|
655 |
+
|
656 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3329
|
657 |
+
#: sitemap-ui.php:859
|
658 |
+
#@ sitemap
|
659 |
+
msgid "Please select how the priority of each post should be calculated:"
|
660 |
+
msgstr "Molimo vas izaberite kako se računa prioritet postova:"
|
661 |
+
|
662 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3331
|
663 |
+
#: sitemap-ui.php:861
|
664 |
+
#@ sitemap
|
665 |
+
msgid "Do not use automatic priority calculation"
|
666 |
+
msgstr "Ne koristi automatsku kalkulaciju prioriteta"
|
667 |
+
|
668 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3331
|
669 |
+
#: sitemap-ui.php:861
|
670 |
+
#@ sitemap
|
671 |
+
msgid "All posts will have the same priority which is defined in "Priorities""
|
672 |
+
msgstr "Svi postovi će imati isti prioritet koji je definisan u "Priorities""
|
673 |
+
|
674 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3397
|
675 |
+
#: sitemap-ui.php:872
|
676 |
+
#@ sitemap
|
677 |
+
msgid "Sitemap Content"
|
678 |
+
msgstr "Sadržaj sitemap-a"
|
679 |
+
|
680 |
+
#: sitemap-ui.php:873
|
681 |
+
#@ sitemap
|
682 |
+
msgid "WordPress standard content"
|
683 |
+
msgstr "WordPress standardni sadržaj"
|
684 |
+
|
685 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3405
|
686 |
+
#: sitemap-ui.php:878
|
687 |
+
#@ sitemap
|
688 |
+
msgid "Include homepage"
|
689 |
+
msgstr "Dodajte početnu "
|
690 |
+
|
691 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3411
|
692 |
+
#: sitemap-ui.php:884
|
693 |
+
#@ sitemap
|
694 |
+
msgid "Include posts"
|
695 |
+
msgstr "Dodajte postove"
|
696 |
+
|
697 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3417
|
698 |
+
#: sitemap-ui.php:890
|
699 |
+
#@ sitemap
|
700 |
+
msgid "Include static pages"
|
701 |
+
msgstr "Dodajte statičke stranice"
|
702 |
+
|
703 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3423
|
704 |
+
#: sitemap-ui.php:896
|
705 |
+
#@ sitemap
|
706 |
+
msgid "Include categories"
|
707 |
+
msgstr "Dodajte kategorije"
|
708 |
+
|
709 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3429
|
710 |
+
#: sitemap-ui.php:902
|
711 |
+
#@ sitemap
|
712 |
+
msgid "Include archives"
|
713 |
+
msgstr "Dodajte arhive"
|
714 |
+
|
715 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3443
|
716 |
+
#: sitemap-ui.php:908
|
717 |
+
#@ sitemap
|
718 |
+
msgid "Include author pages"
|
719 |
+
msgstr "Dodajte stranice autora"
|
720 |
+
|
721 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3436
|
722 |
+
#: sitemap-ui.php:915
|
723 |
+
#@ sitemap
|
724 |
+
msgid "Include tag pages"
|
725 |
+
msgstr "Dodajte tag stranice"
|
726 |
+
|
727 |
+
#: sitemap-ui.php:929
|
728 |
+
#@ sitemap
|
729 |
+
msgid "Custom taxonomies"
|
730 |
+
msgstr "Uobičajene taxonomije"
|
731 |
+
|
732 |
+
#: sitemap-ui.php:940
|
733 |
+
#, php-format
|
734 |
+
#@ sitemap
|
735 |
+
msgid "Include taxonomy pages for %s"
|
736 |
+
msgstr "Dodajte stranice taxonomije za %s"
|
737 |
+
|
738 |
+
#: sitemap-ui.php:958
|
739 |
+
#@ sitemap
|
740 |
+
msgid "Custom post types"
|
741 |
+
msgstr "Uobičajeni tipovi postova"
|
742 |
+
|
743 |
+
#: sitemap-ui.php:969
|
744 |
+
#, php-format
|
745 |
+
#@ sitemap
|
746 |
+
msgid "Include custom post type %s"
|
747 |
+
msgstr "Dodajte uobičajene tipove postova %s"
|
748 |
+
|
749 |
+
#: sitemap-ui.php:981
|
750 |
+
#@ sitemap
|
751 |
+
msgid "Further options"
|
752 |
+
msgstr "Još opcija"
|
753 |
+
|
754 |
+
#: sitemap-ui.php:986
|
755 |
+
#@ sitemap
|
756 |
+
msgid "Include the last modification time."
|
757 |
+
msgstr "Dodajte vreme zadnje modifikacije"
|
758 |
+
|
759 |
+
#: sitemap-ui.php:988
|
760 |
+
#@ sitemap
|
761 |
+
msgid "This is highly recommended and helps the search engines to know when your content has changed. This option affects <i>all</i> sitemap entries."
|
762 |
+
msgstr "Ovo je preporučljivo jer govori pretraživačima kada se vaš sadržaj promeni. Ova opcija utiče <i>sve</i> unose u sitemap."
|
763 |
+
|
764 |
+
#: sitemap-ui.php:995
|
765 |
+
#@ sitemap
|
766 |
+
msgid "Excluded items"
|
767 |
+
msgstr "Uklonite"
|
768 |
+
|
769 |
+
#: sitemap-ui.php:997
|
770 |
+
#@ sitemap
|
771 |
+
msgid "Excluded categories"
|
772 |
+
msgstr "Uklonite kategorije"
|
773 |
+
|
774 |
+
#: sitemap-ui.php:999
|
775 |
+
#@ sitemap
|
776 |
+
msgid "Using this feature will increase build time and memory usage!"
|
777 |
+
msgstr "Korišćenje ove funkcije će povećati vreme pravljenja i korišćenje memorije."
|
778 |
+
|
779 |
+
#: sitemap-ui.php:1006
|
780 |
+
#@ sitemap
|
781 |
+
msgid "Exclude posts"
|
782 |
+
msgstr "Uklonite postove"
|
783 |
+
|
784 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3206
|
785 |
+
#: sitemap-ui.php:1008
|
786 |
+
#@ sitemap
|
787 |
+
msgid "Exclude the following posts or pages:"
|
788 |
+
msgstr "Uklonite sledeće postove ili stranice:"
|
789 |
+
|
790 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3206
|
791 |
+
#: sitemap-ui.php:1008
|
792 |
+
#@ sitemap
|
793 |
+
msgid "List of IDs, separated by comma"
|
794 |
+
msgstr "Lista ID-a, odvojene zarezom"
|
795 |
+
|
796 |
+
#: sitemap-ui.php:1010
|
797 |
+
#@ sitemap
|
798 |
+
msgid "Child posts won't be excluded automatically!"
|
799 |
+
msgstr "Pod postovi neće biti uključeni automatski!"
|
800 |
+
|
801 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3457
|
802 |
+
#: sitemap-ui.php:1016
|
803 |
+
#@ sitemap
|
804 |
+
msgid "Change frequencies"
|
805 |
+
msgstr "Promenite učestalost"
|
806 |
+
|
807 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3463
|
808 |
+
#: sitemap-ui.php:1020
|
809 |
+
#@ sitemap
|
810 |
+
msgid "Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked \"hourly\" less frequently than that, and they may crawl pages marked \"yearly\" more frequently than that. It is also likely that crawlers will periodically crawl pages marked \"never\" so that they can handle unexpected changes to those pages."
|
811 |
+
msgstr "Molimo vas da zapamtite da vrednost ovog tag-a je koristi kao predlog a ne kao komanda. Iako pretraživači razmatraju ovu infomaciju kada donose odluke, možda će proći kroz stranice obeležene \"hourly\" ređe nego naznačeno, a možda će stranice naznačene \"yearly\" posećivati češće. Isto tako je verovatno da će s'vremena na vreme prolaziti kroz stranice naznačene sa \"never\" da bi mogli da reaguju na neočekivane promene na tim stranicama."
|
812 |
+
|
813 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3469
|
814 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3535
|
815 |
+
#: sitemap-ui.php:1026
|
816 |
+
#: sitemap-ui.php:1083
|
817 |
+
#@ sitemap
|
818 |
+
msgid "Homepage"
|
819 |
+
msgstr "Početna"
|
820 |
+
|
821 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3475
|
822 |
+
#: sitemap-ui.php:1032
|
823 |
+
#@ sitemap
|
824 |
+
msgid "Posts"
|
825 |
+
msgstr "Postovi"
|
826 |
+
|
827 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3481
|
828 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3553
|
829 |
+
#: sitemap-ui.php:1038
|
830 |
+
#: sitemap-ui.php:1101
|
831 |
+
#@ sitemap
|
832 |
+
msgid "Static pages"
|
833 |
+
msgstr "Statične stranice"
|
834 |
+
|
835 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3487
|
836 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3559
|
837 |
+
#: sitemap-ui.php:1044
|
838 |
+
#: sitemap-ui.php:1107
|
839 |
+
#@ sitemap
|
840 |
+
msgid "Categories"
|
841 |
+
msgstr "Kategorije"
|
842 |
+
|
843 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3493
|
844 |
+
#: sitemap-ui.php:1050
|
845 |
+
#@ sitemap
|
846 |
+
msgid "The current archive of this month (Should be the same like your homepage)"
|
847 |
+
msgstr "Trenutna arhiva za ovaj mesec (Treba biti ista kao i vaša početna stranica)"
|
848 |
+
|
849 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3499
|
850 |
+
#: sitemap-ui.php:1056
|
851 |
+
#@ sitemap
|
852 |
+
msgid "Older archives (Changes only if you edit an old post)"
|
853 |
+
msgstr "Starije arhive (Menja se samo ako promenti stariji post)"
|
854 |
+
|
855 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3506
|
856 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3572
|
857 |
+
#: sitemap-ui.php:1063
|
858 |
+
#: sitemap-ui.php:1120
|
859 |
+
#@ sitemap
|
860 |
+
msgid "Tag pages"
|
861 |
+
msgstr "Tag stranice"
|
862 |
+
|
863 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3513
|
864 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3579
|
865 |
+
#: sitemap-ui.php:1070
|
866 |
+
#: sitemap-ui.php:1127
|
867 |
+
#@ sitemap
|
868 |
+
msgid "Author pages"
|
869 |
+
msgstr "Stranice autora"
|
870 |
+
|
871 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3527
|
872 |
+
#: sitemap-ui.php:1078
|
873 |
+
#@ sitemap
|
874 |
+
msgid "Priorities"
|
875 |
+
msgstr "Prioriteti"
|
876 |
+
|
877 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3541
|
878 |
+
#: sitemap-ui.php:1089
|
879 |
+
#@ sitemap
|
880 |
+
msgid "Posts (If auto calculation is disabled)"
|
881 |
+
msgstr "Postovi (ako je auto kalkulacija isključena)"
|
882 |
+
|
883 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3547
|
884 |
+
#: sitemap-ui.php:1095
|
885 |
+
#@ sitemap
|
886 |
+
msgid "Minimum post priority (Even if auto calculation is enabled)"
|
887 |
+
msgstr "Minimalni prioritet za postove (Čak iako je auto kalkulacija uključena)"
|
888 |
+
|
889 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3565
|
890 |
+
#: sitemap-ui.php:1113
|
891 |
+
#@ sitemap
|
892 |
+
msgid "Archives"
|
893 |
+
msgstr "Arhive"
|
894 |
+
|
895 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3590
|
896 |
+
#: sitemap-ui.php:1138
|
897 |
+
#@ sitemap
|
898 |
+
msgid "Update options"
|
899 |
+
msgstr "Opcije ažuriranja"
|
900 |
+
|
901 |
+
# C:Inetpubwwwrootwpwp-contentpluginssitemap_beta/sitemap.php:3591
|
902 |
+
#: sitemap-ui.php:1139
|
903 |
+
#@ sitemap
|
904 |
+
msgid "Reset options"
|
905 |
+
msgstr "Opcije za resetovanje"
|
906 |
+
|
907 |
+
#: sitemap.php:82
|
908 |
+
#@ sitemap
|
909 |
+
msgid "Your WordPress version is too old for XML Sitemaps."
|
910 |
+
msgstr "Vaša verzija WordPress-a je previše stara za XML Sitemap."
|
911 |
+
|
912 |
+
#: sitemap.php:82
|
913 |
+
#, php-format
|
914 |
+
#@ sitemap
|
915 |
+
msgid "Unfortunately this release of Google XML Sitemaps requires at least WordPress %4$s. You are using Wordpress %2$s, which is out-dated and insecure. Please upgrade or go to <a href=\"%1$s\">active plugins</a> and deactivate the Google XML Sitemaps plugin to hide this message. You can download an older version of this plugin from the <a href=\"%3$s\">plugin website</a>."
|
916 |
+
msgstr "Nažalost ova verzija Google XML Sitemap-a zahteva barem WordPress verziju %4$s. Vi koristite WordPress verziju %2$s, koja je zastarela i nesigurna. Molimo vas da update-ujete ili odete na <a href=\"%1$s\">aktivne plugin-ove</a> i deaktivirate Google XML Sitemap plugin da bi ste sakrili ovu poruku. Možete skinuti stariju verziju ovog plugin-a sa <a href=\"%3$s\">našeg sajta</a>."
|
917 |
+
|
918 |
+
#: sitemap.php:92
|
919 |
+
#@ sitemap
|
920 |
+
msgid "Your PHP version is too old for XML Sitemaps."
|
921 |
+
msgstr "PHP verzija koju koristite je previše stara za XML sitemap."
|
922 |
+
|
923 |
+
#: sitemap.php:92
|
924 |
+
#, php-format
|
925 |
+
#@ sitemap
|
926 |
+
msgid "Unfortunately this release of Google XML Sitemaps requires at least PHP %4$s. You are using PHP %2$s, which is out-dated and insecure. Please ask your web host to update your PHP installation or go to <a href=\"%1$s\">active plugins</a> and deactivate the Google XML Sitemaps plugin to hide this message. You can download an older version of this plugin from the <a href=\"%3$s\">plugin website</a>."
|
927 |
+
msgstr "nažalost ova verzija Google XML Sitemap-a zahteva najmanje verziju PHP %4$s. Vi koristite PHP %2$s, koji je zastareo i nesiguran. Zamolite vaš hosting da ažuriraju verziju PHP instalacije ili idite na <a href=\"%1$s\">aktivne plugin-ove</a> i deaktivirajte Google XML Sitemap plugin da bi ste sakrili ovu poruku. Možete skinuti straiju verziju ovog plugin-a sa <a href=\"%3$s\">našeg sajta</a>."
|
928 |
+
|
929 |
+
#. translators: plugin header field 'Name'
|
930 |
+
#: sitemap.php:0
|
931 |
+
#@ sitemap
|
932 |
+
msgid "Google XML Sitemaps"
|
933 |
+
msgstr ""
|
934 |
+
|
935 |
+
#. translators: plugin header field 'PluginURI'
|
936 |
+
#: sitemap.php:0
|
937 |
+
#@ sitemap
|
938 |
+
msgid "http://www.arnebrachhold.de/redir/sitemap-home/"
|
939 |
+
msgstr ""
|
940 |
+
|
941 |
+
#. translators: plugin header field 'Description'
|
942 |
+
#: sitemap.php:0
|
943 |
+
#@ sitemap
|
944 |
+
msgid "This plugin will generate a special XML sitemap which will help search engines like Google, Yahoo, Bing and Ask.com to better index your blog."
|
945 |
+
msgstr ""
|
946 |
+
|
947 |
+
#. translators: plugin header field 'Author'
|
948 |
+
#: sitemap.php:0
|
949 |
+
#@ sitemap
|
950 |
+
msgid "Arne Brachhold"
|
951 |
+
msgstr ""
|
952 |
+
|
953 |
+
#. translators: plugin header field 'AuthorURI'
|
954 |
+
#: sitemap.php:0
|
955 |
+
#@ sitemap
|
956 |
+
msgid "http://www.arnebrachhold.de/"
|
957 |
+
msgstr ""
|
958 |
+
|
959 |
+
#. translators: plugin header field 'Version'
|
960 |
+
#: sitemap.php:0
|
961 |
+
#@ sitemap
|
962 |
+
msgid "4.0beta9"
|
963 |
+
msgstr ""
|
964 |
+
|
readme.txt
CHANGED
@@ -1,467 +1,487 @@
|
|
1 |
-
=== XML Sitemaps ===
|
2 |
-
Contributors:
|
3 |
-
Tags: seo, google, bing, yahoo, msn, ask, live, sitemaps, google sitemaps, xml sitemap, xml
|
4 |
-
Requires at least: 3.3
|
5 |
-
Tested up to: 5.
|
6 |
-
Stable tag: 4.1.
|
7 |
-
License: GPLv2
|
8 |
-
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
-
|
10 |
-
This plugin will improve SEO by helping search enginess better index your site using sitemaps.
|
11 |
-
|
12 |
-
== Description ==
|
13 |
-
|
14 |
-
Use this plugin to greatly improve SEO to create special XML sitemaps which will help search engines like Google, Bing, Yahoo and Ask.com to better index your site.
|
15 |
-
|
16 |
-
With such a sitemap, it's much easier for the crawlers to see the complete structure of your site and retrieve it more efficiently. The plugin supports all kinds of WordPress generated pages as well as custom URLs. Additionally it notifies all major search engines every time you create a post about the new content.
|
17 |
-
|
18 |
-
Supported since *over 9 years* and rated as the [best WordPress plugin](http://wordpress.org/plugins/browse/top-rated/), it will do exactly what it's supposed to do - providing a complete XML sitemap for search engines. It will not break your site, slow it down or annoy you. Guaranteed!
|
19 |
-
|
20 |
-
> If you like the plugin, feel free to rate it (on the right side of this page)! :)
|
21 |
-
|
22 |
-
Related Links:
|
23 |
-
|
24 |
-
* <a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/" title="XML Sitemaps Plugin for WordPress">Plugin Homepage</a>
|
25 |
-
* <a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/changelog/" title="Changelog of the XML Sitemaps Plugin for WordPress">Changelog</a>
|
26 |
-
* <a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/help/" title="Sitemaps FAQ">Plugin help and sitemaps FAQ</a>
|
27 |
-
* <a href="http://wordpress.org/support/topic/read-before-opening-a-new-support-topic">Support Forum</a>
|
28 |
-
|
29 |
-
== Installation ==
|
30 |
-
|
31 |
-
1. Install the plugin like you always install plugins, either by uploading it via FTP or by using the "Add Plugin" function of WordPress.
|
32 |
-
2. Activate the plugin at the plugin administration page
|
33 |
-
3. If you want: Open the plugin configuration page, which is located under Settings -> XML-Sitemap and customize settings like priorities and change frequencies.
|
34 |
-
4. The plugin will automatically update your sitemap of you publish a post, so there is nothing more to do :)
|
35 |
-
|
36 |
-
== Frequently Asked Questions ==
|
37 |
-
|
38 |
-
= Where can I find the options page of the plugin? =
|
39 |
-
|
40 |
-
It is under Settings > XML Sitemap. I know nowadays many plugins add top-level menu items, but in most of the cases it is just not necessary. I've seen WP installations which looked like an Internet Explorer ten years ago with 20 toolbars installed. ;-)
|
41 |
-
|
42 |
-
= Do I have to create a sitemap.xml and sitemap.xml.gz by myself? =
|
43 |
-
|
44 |
-
Not anymore. Since version 4, these files are dynamically generated. *There must be no sitemap.xml or sitemap.xml.gz in your site directory anymore!* The plugin will try to rename them to sitemap.xml.bak if they still exists.
|
45 |
-
|
46 |
-
= Does this plugin use static files or "I can't find the sitemap.xml file!" =
|
47 |
-
|
48 |
-
Not anymore. Since version 4, these files are dynamically generated just like any other WordPress content.
|
49 |
-
|
50 |
-
= There are no comments yet (or I've disabled them) and all my postings have a priority of zero! =
|
51 |
-
|
52 |
-
Please disable automatic priority calculation and define a static priority for posts.
|
53 |
-
|
54 |
-
= So many configuration options... Do I need to change them? =
|
55 |
-
|
56 |
-
No, only if you want to. Default values are ok for most sites.
|
57 |
-
|
58 |
-
= Does this plugin work with all WordPress versions? =
|
59 |
-
|
60 |
-
This version works with WordPress 3.3 and better. If you're using an older version, please check the [Sitemaps Plugin Homepage](http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/ "XML Sitemap Generator Plugin Homepage") for the legacy releases. There is a working release for every WordPress version since 1.5, but you really should consider updating your WordPress installation!
|
61 |
-
|
62 |
-
= My question isn't answered here =
|
63 |
-
|
64 |
-
Most of the plugin options are described at the [plugin homepage](http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/) as well as the dedicated [Sitemaps FAQ](http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/help/ "List of common questions / problems regarding XML Sitemaps").
|
65 |
-
|
66 |
-
= My question isn't even answered there =
|
67 |
-
|
68 |
-
Please post your question at the [WordPress support forum](http://wordpress.org/support/topic/read-before-opening-a-new-support-topic) and tag your post with "google-sitemap-generator".
|
69 |
-
|
70 |
-
= What's new in the latest version? =
|
71 |
-
|
72 |
-
The changelog is maintained [here](http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/changelog/ "XML Sitemap Generator Plugin Changelog")
|
73 |
-
|
74 |
-
= Why is the changelog on a separate page and not here? =
|
75 |
-
|
76 |
-
The WordPress.org repository is just another place to download this plugin. I don't want to maintain too many pages with the same content. Thank you for your understanding!
|
77 |
-
|
78 |
-
== Changelog ==
|
79 |
-
|
80 |
-
= 4.1.
|
81 |
-
* Fixed security issue related to
|
82 |
-
|
83 |
-
|
84 |
-
*
|
85 |
-
*
|
86 |
-
|
87 |
-
|
88 |
-
*
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
*
|
95 |
-
|
96 |
-
|
97 |
-
*
|
98 |
-
*
|
99 |
-
*
|
100 |
-
*
|
101 |
-
*
|
102 |
-
|
103 |
-
= 4.0
|
104 |
-
*
|
105 |
-
* Fixed
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
* Fixed
|
112 |
-
|
113 |
-
|
114 |
-
*
|
115 |
-
|
116 |
-
|
117 |
-
* Better
|
118 |
-
*
|
119 |
-
*
|
120 |
-
*
|
121 |
-
*
|
122 |
-
|
123 |
-
|
124 |
-
* Added
|
125 |
-
*
|
126 |
-
*
|
127 |
-
|
128 |
-
= 4.0.
|
129 |
-
*
|
130 |
-
*
|
131 |
-
*
|
132 |
-
*
|
133 |
-
*
|
134 |
-
*
|
135 |
-
|
136 |
-
|
137 |
-
*
|
138 |
-
*
|
139 |
-
*
|
140 |
-
*
|
141 |
-
*
|
142 |
-
|
143 |
-
|
144 |
-
*
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
*
|
152 |
-
*
|
153 |
-
*
|
154 |
-
*
|
155 |
-
|
156 |
-
|
157 |
-
*
|
158 |
-
*
|
159 |
-
|
160 |
-
|
161 |
-
*
|
162 |
-
|
163 |
-
=
|
164 |
-
* Fixed
|
165 |
-
|
166 |
-
=
|
167 |
-
* Fixed
|
168 |
-
*
|
169 |
-
|
170 |
-
=
|
171 |
-
*
|
172 |
-
|
173 |
-
|
174 |
-
*
|
175 |
-
*
|
176 |
-
*
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
*
|
185 |
-
|
186 |
-
= 3.
|
187 |
-
*
|
188 |
-
*
|
189 |
-
|
190 |
-
= 3.2.
|
191 |
-
*
|
192 |
-
|
193 |
-
|
194 |
-
*
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
*
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
*
|
205 |
-
|
206 |
-
|
207 |
-
*
|
208 |
-
*
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
*
|
213 |
-
*
|
214 |
-
*
|
215 |
-
|
216 |
-
|
217 |
-
*
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
* Fixed
|
222 |
-
|
223 |
-
= 3.1
|
224 |
-
*
|
225 |
-
*
|
226 |
-
*
|
227 |
-
*
|
228 |
-
*
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
* Fixed
|
235 |
-
*
|
236 |
-
*
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
*
|
242 |
-
|
243 |
-
|
244 |
-
* Improved
|
245 |
-
|
246 |
-
|
247 |
-
*
|
248 |
-
*
|
249 |
-
|
250 |
-
|
251 |
-
* Added
|
252 |
-
|
253 |
-
= 3.1.
|
254 |
-
*
|
255 |
-
*
|
256 |
-
*
|
257 |
-
|
258 |
-
|
259 |
-
*
|
260 |
-
*
|
261 |
-
|
262 |
-
|
263 |
-
*
|
264 |
-
*
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
*
|
270 |
-
*
|
271 |
-
*
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
*
|
277 |
-
*
|
278 |
-
*
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
*
|
285 |
-
*
|
286 |
-
*
|
287 |
-
|
288 |
-
= 3.
|
289 |
-
* Fixed
|
290 |
-
*
|
291 |
-
|
292 |
-
|
293 |
-
*
|
294 |
-
|
295 |
-
|
296 |
-
*
|
297 |
-
*
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
*
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
*
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
*
|
316 |
-
*
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
*
|
321 |
-
*
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
*
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
*
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
*
|
336 |
-
*
|
337 |
-
|
338 |
-
= 3.
|
339 |
-
*
|
340 |
-
*
|
341 |
-
*
|
342 |
-
|
343 |
-
= 3.
|
344 |
-
*
|
345 |
-
*
|
346 |
-
*
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
*
|
351 |
-
*
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
*
|
357 |
-
|
358 |
-
|
359 |
-
* Added
|
360 |
-
* Fixed
|
361 |
-
*
|
362 |
-
|
363 |
-
= 3.
|
364 |
-
*
|
365 |
-
*
|
366 |
-
*
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
*
|
371 |
-
*
|
372 |
-
*
|
373 |
-
*
|
374 |
-
|
375 |
-
|
376 |
-
*
|
377 |
-
|
378 |
-
|
379 |
-
*
|
380 |
-
*
|
381 |
-
*
|
382 |
-
|
383 |
-
= 3.
|
384 |
-
*
|
385 |
-
|
386 |
-
|
387 |
-
*
|
388 |
-
|
389 |
-
|
390 |
-
*
|
391 |
-
*
|
392 |
-
*
|
393 |
-
*
|
394 |
-
*
|
395 |
-
* Improved
|
396 |
-
*
|
397 |
-
|
398 |
-
|
399 |
-
*
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
*
|
409 |
-
* Added
|
410 |
-
|
411 |
-
|
412 |
-
*
|
413 |
-
|
414 |
-
|
415 |
-
*
|
416 |
-
*
|
417 |
-
*
|
418 |
-
*
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
*
|
423 |
-
|
424 |
-
|
425 |
-
*
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
*
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
* Fixed
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
*
|
442 |
-
*
|
443 |
-
*
|
444 |
-
|
445 |
-
|
446 |
-
*
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
2.
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
=== XML Sitemaps ===
|
2 |
+
Contributors: arnee
|
3 |
+
Tags: seo, google, bing, yahoo, msn, ask, live, sitemaps, google sitemaps, xml sitemap, xml
|
4 |
+
Requires at least: 3.3
|
5 |
+
Tested up to: 5.9.3
|
6 |
+
Stable tag: 4.1.2
|
7 |
+
License: GPLv2
|
8 |
+
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
+
|
10 |
+
This plugin will improve SEO by helping search enginess better index your site using sitemaps.
|
11 |
+
|
12 |
+
== Description ==
|
13 |
+
|
14 |
+
Use this plugin to greatly improve SEO to create special XML sitemaps which will help search engines like Google, Bing, Yahoo and Ask.com to better index your site.
|
15 |
+
|
16 |
+
With such a sitemap, it's much easier for the crawlers to see the complete structure of your site and retrieve it more efficiently. The plugin supports all kinds of WordPress generated pages as well as custom URLs. Additionally it notifies all major search engines every time you create a post about the new content.
|
17 |
+
|
18 |
+
Supported since *over 9 years* and rated as the [best WordPress plugin](http://wordpress.org/plugins/browse/top-rated/), it will do exactly what it's supposed to do - providing a complete XML sitemap for search engines. It will not break your site, slow it down or annoy you. Guaranteed!
|
19 |
+
|
20 |
+
> If you like the plugin, feel free to rate it (on the right side of this page)! :)
|
21 |
+
|
22 |
+
Related Links:
|
23 |
+
|
24 |
+
* <a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/" title="XML Sitemaps Plugin for WordPress">Plugin Homepage</a>
|
25 |
+
* <a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/changelog/" title="Changelog of the XML Sitemaps Plugin for WordPress">Changelog</a>
|
26 |
+
* <a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/help/" title="Sitemaps FAQ">Plugin help and sitemaps FAQ</a>
|
27 |
+
* <a href="http://wordpress.org/support/topic/read-before-opening-a-new-support-topic">Support Forum</a>
|
28 |
+
|
29 |
+
== Installation ==
|
30 |
+
|
31 |
+
1. Install the plugin like you always install plugins, either by uploading it via FTP or by using the "Add Plugin" function of WordPress.
|
32 |
+
2. Activate the plugin at the plugin administration page
|
33 |
+
3. If you want: Open the plugin configuration page, which is located under Settings -> XML-Sitemap and customize settings like priorities and change frequencies.
|
34 |
+
4. The plugin will automatically update your sitemap of you publish a post, so there is nothing more to do :)
|
35 |
+
|
36 |
+
== Frequently Asked Questions ==
|
37 |
+
|
38 |
+
= Where can I find the options page of the plugin? =
|
39 |
+
|
40 |
+
It is under Settings > XML Sitemap. I know nowadays many plugins add top-level menu items, but in most of the cases it is just not necessary. I've seen WP installations which looked like an Internet Explorer ten years ago with 20 toolbars installed. ;-)
|
41 |
+
|
42 |
+
= Do I have to create a sitemap.xml and sitemap.xml.gz by myself? =
|
43 |
+
|
44 |
+
Not anymore. Since version 4, these files are dynamically generated. *There must be no sitemap.xml or sitemap.xml.gz in your site directory anymore!* The plugin will try to rename them to sitemap.xml.bak if they still exists.
|
45 |
+
|
46 |
+
= Does this plugin use static files or "I can't find the sitemap.xml file!" =
|
47 |
+
|
48 |
+
Not anymore. Since version 4, these files are dynamically generated just like any other WordPress content.
|
49 |
+
|
50 |
+
= There are no comments yet (or I've disabled them) and all my postings have a priority of zero! =
|
51 |
+
|
52 |
+
Please disable automatic priority calculation and define a static priority for posts.
|
53 |
+
|
54 |
+
= So many configuration options... Do I need to change them? =
|
55 |
+
|
56 |
+
No, only if you want to. Default values are ok for most sites.
|
57 |
+
|
58 |
+
= Does this plugin work with all WordPress versions? =
|
59 |
+
|
60 |
+
This version works with WordPress 3.3 and better. If you're using an older version, please check the [Sitemaps Plugin Homepage](http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/ "XML Sitemap Generator Plugin Homepage") for the legacy releases. There is a working release for every WordPress version since 1.5, but you really should consider updating your WordPress installation!
|
61 |
+
|
62 |
+
= My question isn't answered here =
|
63 |
+
|
64 |
+
Most of the plugin options are described at the [plugin homepage](http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/) as well as the dedicated [Sitemaps FAQ](http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/help/ "List of common questions / problems regarding XML Sitemaps").
|
65 |
+
|
66 |
+
= My question isn't even answered there =
|
67 |
+
|
68 |
+
Please post your question at the [WordPress support forum](http://wordpress.org/support/topic/read-before-opening-a-new-support-topic) and tag your post with "google-sitemap-generator".
|
69 |
+
|
70 |
+
= What's new in the latest version? =
|
71 |
+
|
72 |
+
The changelog is maintained [here](http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/changelog/ "XML Sitemap Generator Plugin Changelog")
|
73 |
+
|
74 |
+
= Why is the changelog on a separate page and not here? =
|
75 |
+
|
76 |
+
The WordPress.org repository is just another place to download this plugin. I don't want to maintain too many pages with the same content. Thank you for your understanding!
|
77 |
+
|
78 |
+
== Changelog ==
|
79 |
+
|
80 |
+
= 4.1.2 (2022-04-15) =
|
81 |
+
* Fixed security issue related to Cross-Site Scripting attacks on debug page
|
82 |
+
* Fixed HTTP error while generating sitemap (because of conflict of www and now www site)
|
83 |
+
* Fixed handling WordPress core sitemap entry from robots.txt
|
84 |
+
* Added option to flush database rewrite on plugin deactivation
|
85 |
+
* Added option to split the custom categories into multiple sitemaps by custom taxonomy
|
86 |
+
* Added option to omit the posts specified as disallow in robots.txt
|
87 |
+
* Added option to set links per page for tags and categories
|
88 |
+
* Added option to set a custom filename for the sitemap
|
89 |
+
* Added option to list custom post in the archive sitemap
|
90 |
+
|
91 |
+
= 4.1.1 (2022-04-07) =
|
92 |
+
* fix security issue related to Cross-Site Scripting attacks on debug page
|
93 |
+
* fix HTTP error while generating sitemap (because of conflict of www and now www site)
|
94 |
+
* fix handles the removal of Wordpress native sitemap entry from robots.txt
|
95 |
+
* added option for flush database rewrite on deactivate plugin
|
96 |
+
* added options for split the custom categories into multiple sitemap by custom taxonomy
|
97 |
+
* added options to omit the posts which added in robots.txt to disallow
|
98 |
+
* added option to set links per page for tags and categories
|
99 |
+
* added option for provide the custom name for the sitemap.xml file
|
100 |
+
* added option for custom post type's list into the archive sitemap
|
101 |
+
* added support of manage priorities and frequencies for products category
|
102 |
+
|
103 |
+
= 4.1.0 (2018-12-18) =
|
104 |
+
* Fixed security issue related to escaping external URLs
|
105 |
+
* Fixed security issue related to option tags in forms
|
106 |
+
|
107 |
+
= 4.0.9 (2017-07-24) =
|
108 |
+
* Fixed security issue related to donation functionality.
|
109 |
+
|
110 |
+
= 4.0.8 (2014-11-15) =
|
111 |
+
* Fixed bug regarding the exclude categories feature, thanks to Claus Schöffel!
|
112 |
+
|
113 |
+
= 4.0.7.1 (2014-09-02) =
|
114 |
+
* Sorry, no new features this time… This release only updates the Compatibility-Tag to WordPress 4.0. Unfortunately there is no way to do this anymore without a new version
|
115 |
+
|
116 |
+
= 4.0.7 (2014-06-23) =
|
117 |
+
* Better compatibility with GoDaddy managed WP hosting
|
118 |
+
* Better compatibility with QuickCache
|
119 |
+
* Removed WordPress version from the sitemap
|
120 |
+
* Corrected link to WordPress privacy settings (if search engines are blocked)
|
121 |
+
* Changed hook which is being used for sitemap pings to avoid pings on draft edit
|
122 |
+
|
123 |
+
= 4.0.6 (2014-06-03) =
|
124 |
+
* Added option to disable automatic gzipping
|
125 |
+
* Fixed bug with duplicated external sitemap entries
|
126 |
+
* Don’t gzip if behind Varnish since Varnish can do that
|
127 |
+
|
128 |
+
= 4.0.5 (2014-05-18) =
|
129 |
+
* Added function to manually start ping for main-sitemap or all sub-sitemaps
|
130 |
+
* Added support for changing the base of the sitemap URL to another URL (for WP installations in sub-folders)
|
131 |
+
* Fixed issue with empty post sitemaps (related to GMT/local time offset)
|
132 |
+
* Fixed some timing issues in archives
|
133 |
+
* Improved check for possible problems before gzipping
|
134 |
+
* Fixed empty archives and author sitemaps in case there were no posts
|
135 |
+
* Fixed bug which caused the Priority Provider to disappear in recent PHP versions
|
136 |
+
* Plugin will also ping with the corresponding sub-sitemap in case a post was modified
|
137 |
+
* Better checking for empty external urls
|
138 |
+
* Changed text in XSL template to be more clear about sitemap-index and sub-sitemaps
|
139 |
+
* Changed content type to text/xml to improve compatibility with caching plugins
|
140 |
+
* Changed query parameters to is_feed=true to improve compatibility with caching plugins
|
141 |
+
* Switched from using WP_Query to load posts to a custom SQL statement to avoid problems with other plugin filters
|
142 |
+
* Added caching of some SQL statements
|
143 |
+
* Added support feed for more help topics
|
144 |
+
* Added link to new help page
|
145 |
+
* Cleaned up code and renamed variables to be more readable
|
146 |
+
* Updated Japanese Translation, thanks to Daisuke Takahashi
|
147 |
+
|
148 |
+
= 4.0.4 (2014-04-19) =
|
149 |
+
* Removed deprecated get_page call
|
150 |
+
* Changed last modification time of sub-sitemaps to the last modification date of the posts instead of the publish date
|
151 |
+
* Removed information window if the statistic option has not been activated
|
152 |
+
* Added link regarding new sitemap format
|
153 |
+
* Updated Portuguese translation, thanks to Pedro Martinho
|
154 |
+
* Updated German translation
|
155 |
+
|
156 |
+
= 4.0.3 (2014-04-13) =
|
157 |
+
* Fixed compression if an gzlib handler was already active
|
158 |
+
* Help regarding permalinks for Nginx users
|
159 |
+
* Fix with gzip compression in case there was other output before already
|
160 |
+
* Return 404 for HTML sitemaps if the option has been disabled
|
161 |
+
* Updated translations
|
162 |
+
|
163 |
+
= 4.0.2 (2014-04-01) =
|
164 |
+
* Fixed warning if an gzip handler is already active
|
165 |
+
|
166 |
+
= 4.0.1 (2014-03-31) =
|
167 |
+
* Fixed bug with custom post types including a "-"
|
168 |
+
* Fixed some 404 Not Found Errors
|
169 |
+
|
170 |
+
= 4.0 (2014-03-30) =
|
171 |
+
* No static files anymore, sitemap is created on the fly!
|
172 |
+
* Sitemap is split-up into sub-sitemaps by month, allowing up to 50.000 posts per month! [More information](http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/google-xml-sitemap-generator-new-sitemap-format/)
|
173 |
+
* Support for custom post types and custom taxonomis!
|
174 |
+
* 100% Multisite compatible, including by-blog and network activation.
|
175 |
+
* Reduced server resource usage due to less content per request.
|
176 |
+
* New API allows other plugins to add their own, separate sitemaps.
|
177 |
+
* Note: PHP 5.1 and WordPress 3.3 is required! The plugin will not work with lower versions!
|
178 |
+
* Note: This version will try to rename your old sitemap files to *-old.xml. If that doesn’t work, please delete them manually since no static files are needed anymore!
|
179 |
+
|
180 |
+
= 3.4.1 (2014-04-10) =
|
181 |
+
* Compatibility with mysqli
|
182 |
+
|
183 |
+
= Version 3.4 (2013-11-24) =
|
184 |
+
* Fixed deprecation warnings in PHP 5.4, thanks to Dion Hulse!
|
185 |
+
|
186 |
+
= 3.3 (2013-09-28) =
|
187 |
+
* Fixed problem with file permission checking
|
188 |
+
* Filter out hashs (#) in URLs
|
189 |
+
|
190 |
+
= 3.2.9 (2013-01-11) =
|
191 |
+
* Fixed security issue with change frequencies and filename of sitemap file. Exploit was only possible with admin account.
|
192 |
+
|
193 |
+
= 3.2.8 (2012-08-08) =
|
194 |
+
* Fixed wrong custom taxonomy URLs, thanks to ramon fincken of the wordpress.org forum!
|
195 |
+
* Removed ASK ping since they shut down their service.
|
196 |
+
* Exclude post_format taxonomy from custom taxonomy list
|
197 |
+
|
198 |
+
= 3.2.7 (2012-04-24) =
|
199 |
+
* Fixed custom post types, thanks to clearsite of the wordpress.org forum!
|
200 |
+
* Fixed broken admin layout on WP 3.4
|
201 |
+
|
202 |
+
= 3.2.6 (2011-09-19) =
|
203 |
+
* Removed YAHOO ping since YAHOO uses bing now
|
204 |
+
* Removed deprecated function call
|
205 |
+
|
206 |
+
= 3.2.5 (2011-07-11) =
|
207 |
+
* Backported Bing ping success fix from beta
|
208 |
+
* Added friendly hint to try out the new beta
|
209 |
+
|
210 |
+
= 3.2.4 (2010-05-29) =
|
211 |
+
* Added (GMT) to date column in sitemap xslt template to avoid confusion with different time zones
|
212 |
+
* Fixed wrong SQL statement for author pages, thanks to twoenoug
|
213 |
+
* Fixed several deprecated function calls
|
214 |
+
* Note: This release does not support the new multisite feature of WordPress yet and will not be active when multisite is enabled.
|
215 |
+
|
216 |
+
= 3.2.3 (2010-04-02) =
|
217 |
+
* Fixed that all pages were missing in the sitemap if the “Uncategorized” category was excluded
|
218 |
+
|
219 |
+
= 3.2.2 (2009-12-19) =
|
220 |
+
* Updated compatibility tag to WordPress 2.9
|
221 |
+
* Fixed PHP4 problems
|
222 |
+
|
223 |
+
= 3.2.1 (2009-12-16) =
|
224 |
+
* Notes and update messages at the top of the admin page could interfere with the manual build function
|
225 |
+
* Help links in the WP contextual help were not shown anymore since the last update
|
226 |
+
* IE 7 sometimes displayed a cached admin page
|
227 |
+
* Removed invalid link to config page from the plugin description (The link lead to a "Not enough permission error")
|
228 |
+
* Improved performance of getting the current plugin version by caching
|
229 |
+
* Updated Spanish language files
|
230 |
+
|
231 |
+
= 3.2 (2009-11-23) =
|
232 |
+
* Added function to show the actual results of a ping instead of only linking to the url
|
233 |
+
* Added new hook (sm_rebuild) for third party plugins to start building the sitemap
|
234 |
+
* Fixed bug which showed the wrong URL for the latest Google ping result
|
235 |
+
* Added some missing documentation
|
236 |
+
* Removed hardcoded php name for sitemap file in admin urls
|
237 |
+
* Uses KSES for showing ping test results
|
238 |
+
* Ping test fixed for WP < 2.3
|
239 |
+
|
240 |
+
= 3.1.9 (2009-11-13) =
|
241 |
+
* Fixed MySQL Error if author pages were included
|
242 |
+
|
243 |
+
= 3.1.8 (2009-11-07) =
|
244 |
+
* Improved custom taxonomy handling and fixed wrong last modification date
|
245 |
+
* Fixed fatal error in WordPress versions lower than 2.3
|
246 |
+
* Fixed Update Notice for WordPress 2.8 and higher
|
247 |
+
* Added warning if blog privacy is activated
|
248 |
+
* Fixed priorities of additional pages were shown as 0 instead of 1
|
249 |
+
|
250 |
+
= 3.1.7 (2009-10-21) =
|
251 |
+
* Added support for custom taxonomies. Thanks to Lee!
|
252 |
+
|
253 |
+
= 3.1.6 (2009-08-31) =
|
254 |
+
* Fixed PHP error “Only variables can be passed by reference”
|
255 |
+
* Fixed wrong URLS of multi-page posts (Thanks artstorm!)
|
256 |
+
* Updated many language files
|
257 |
+
|
258 |
+
= 3.1.5 (2009-08-24) =
|
259 |
+
* Added option to completely disable the last modification time
|
260 |
+
* Fixed problem with HTTPS url for the XSL stylesheet if the sitemap was build via the admin panel
|
261 |
+
* Improved handling of homepage entry if a single page was set for it
|
262 |
+
* Fixed mktime warning which appeared sometimes
|
263 |
+
* Fixed bug which caused inf. reloads after rebuilding the sitemap via the admin panel
|
264 |
+
* Improved handling of missing sitemaps files if WP was moved to another location
|
265 |
+
|
266 |
+
= 3.1.4 (2009-06-22) =
|
267 |
+
* Fixed bug which broke all pings in WP older than 2.7
|
268 |
+
* Added more output in debug mode if pings fail
|
269 |
+
* Moved global post variable so other plugins can use it in get_permalink()
|
270 |
+
* Added small icon for ozh admin menu
|
271 |
+
* Added more help links in UI
|
272 |
+
|
273 |
+
= 3.1.3 (2009-06-07) =
|
274 |
+
* Changed MSN Live Search to Bing
|
275 |
+
* Exclude categories also now exludes the category itself and not only the posts
|
276 |
+
* Pings now use the new WordPress HTTP API instead of Snoopy
|
277 |
+
* Fixed bug that in localized WP installations priorities could not be saved
|
278 |
+
* The sitemap cron job is now cleared after a manual rebuild or after changing the config
|
279 |
+
* Adjusted style of admin area for WP 2.8 and refreshed icons
|
280 |
+
* Disabled the “Exclude categories” feature for WP 2.5.1, since it doesn’t have the required functions yet
|
281 |
+
|
282 |
+
= 3.1.2 (2008-12-26) =
|
283 |
+
* Changed the way the stylesheet is saved (default / custom stylesheet)
|
284 |
+
* Sitemap is now rebuild when a page is published
|
285 |
+
* Removed support for static robots.txt files, this is now handled via WordPress functions
|
286 |
+
* Added compat. exceptions for WP 2.0 and WP 2.1
|
287 |
+
|
288 |
+
= 3.1.1 (2008-12-21) =
|
289 |
+
* Fixed redirect issue if wp-admin is rewritten via mod_rewrite, thanks to macjoost
|
290 |
+
* Fixed wrong path to assets, thanks PozHonks
|
291 |
+
* Fixed wrong plugin URL if wp-content was renamed / redirected, thanks to wnorris
|
292 |
+
* Updated WP User Interface for 2.7
|
293 |
+
* Various other small things
|
294 |
+
|
295 |
+
= 3.1.0.1 (2008-05-27) =
|
296 |
+
* Extracted UI JS to external file
|
297 |
+
* Enabled the option to include following pages of multi-page posts
|
298 |
+
* Script tries to raise memory and time limit if active
|
299 |
+
|
300 |
+
= 3.1 (2008-05-22) =
|
301 |
+
* Marked as stable
|
302 |
+
|
303 |
+
= 3.1b3 (2008-05-19) =
|
304 |
+
* Cleaned up plugin directory and moved img files to subfolders
|
305 |
+
* Fixed background building bug in WP 2.1
|
306 |
+
* Removed auto-update plugin link for WP < 2.5
|
307 |
+
|
308 |
+
= 3.1b2 (2008-05-18) =
|
309 |
+
* Fixed critical bug with the build in background option
|
310 |
+
* Added notification if a build is scheduled
|
311 |
+
|
312 |
+
= 3.1b1 (2008-05-08) =
|
313 |
+
* Splitted plugin in loader, generator and user interface to save memory
|
314 |
+
* Generator and UI will only be loaded when needed
|
315 |
+
* Secured all admin actions with nonces
|
316 |
+
* Improved WP 2.5 handling
|
317 |
+
* New "Suggest a Feature" link
|
318 |
+
|
319 |
+
= 3.0.3.3 (2008-04-29) =
|
320 |
+
* Fixed author pages
|
321 |
+
* Enhanced background building and increased delay to 15 seconds
|
322 |
+
* Enabled background building by default
|
323 |
+
|
324 |
+
= 3.0.3.2 (2008-04-28) =
|
325 |
+
* Improved WP 2.5 handling (fixes blank screens and timeouts)
|
326 |
+
|
327 |
+
= 3.0.3.1 (2008-03-30) =
|
328 |
+
* Added compatibility CSS for WP 2.5
|
329 |
+
|
330 |
+
= 3.0.3 (2007-12-30) =
|
331 |
+
* Added option to ping MSN Live Search
|
332 |
+
* Removed some WordPress hooks (the sitemap isn’t updates with every comment anymore)
|
333 |
+
|
334 |
+
= 3.0.2.1 (2007-11-28) =
|
335 |
+
* Fixed wrong XML Schema Location (Thanks to Emanuele Tessore)
|
336 |
+
* Added Russian Language files by Sergey http://ryvkin.ru
|
337 |
+
|
338 |
+
= 3.0.2 (2007-11-25) =
|
339 |
+
* Fixed bug which caused that some settings were not saved correctly
|
340 |
+
* Added option to exclude pages or post by ID
|
341 |
+
* Restored YAHOO ping service with API key since the other one is to unreliable
|
342 |
+
|
343 |
+
= 3.0.1 (2007-11-03) =
|
344 |
+
* Changed HTTP client for ping requests to Snoopy
|
345 |
+
* Added "safemode" for SQL which doesn’t use unbuffered results
|
346 |
+
* Added option to run the building process in background using wp-cron
|
347 |
+
* Added links to test the ping if it failed
|
348 |
+
|
349 |
+
= 3.0 final (2007-09-24) =
|
350 |
+
* Marked as stable
|
351 |
+
* Removed useless functions
|
352 |
+
|
353 |
+
= 3.0b11 (2007-09-23) =
|
354 |
+
* Changed mysql queries to unbuffered queries
|
355 |
+
* Uses MUCH less memory
|
356 |
+
* Option to limit the number of posts
|
357 |
+
|
358 |
+
= 3.0b10 (2007-09-04) =
|
359 |
+
* Added category support for WordPress 2.3
|
360 |
+
* Fixed bug with empty URLs in sitemap
|
361 |
+
* Repaired GET building
|
362 |
+
|
363 |
+
= 3.0b9 (2007-09-02) =
|
364 |
+
* Added tag support for WordPress 2.3
|
365 |
+
* Fixed archive bug with static pages (Thanks to Peter Claus Lamprecht)
|
366 |
+
* Fixed some missing translation strings, thanks to Kirin Lin
|
367 |
+
|
368 |
+
= 3.0b8 (2007-07-22) =
|
369 |
+
* Fixed bug with empty categories
|
370 |
+
* Fixed bug with translation plugins
|
371 |
+
* Added support for robots.txt
|
372 |
+
* Switched YAHOO ping API from YAHOO Web Services to the “normal” ping service
|
373 |
+
* Search engines will only be pinged if the sitemap file has changed
|
374 |
+
|
375 |
+
= 3.0b7 (2007-05-17) =
|
376 |
+
* Added Ask.com notification
|
377 |
+
* Added option to include the author pages like /author/john
|
378 |
+
* Fixed WP 2.1 / Pre 2.1 post / pages database changes
|
379 |
+
* Added check to not build the sitemap if importing posts
|
380 |
+
* Fixed wrong XSLT location (Thanks froosh)
|
381 |
+
* Small enhancements and bug fixes
|
382 |
+
|
383 |
+
= 3.0b6 (2007-01-23) =
|
384 |
+
* sitemap.xml.gz was not compressed
|
385 |
+
* YAHOO update-notification was PHP5 only (Thanks to Joseph Abboud!)
|
386 |
+
* More WP 2.1 optimizations
|
387 |
+
* Reduced memory usage with PHP5
|
388 |
+
|
389 |
+
= 3.0b5 (2007-01-19) =
|
390 |
+
* WordPress 2 Design
|
391 |
+
* YAHOO update notification
|
392 |
+
* New status report, removed ugly logfiles
|
393 |
+
* Added option to define a XSLT stylesheet and added a default one
|
394 |
+
* Fixed bug with sub-pages, thanks to [Mike](http://baptiste.us/), [Peter](http://fastagent.de/) and [Glenn](http://publicityship.com.au/)
|
395 |
+
* Improved file handling, thanks to [VJTD3](http://www.vjtd3.com/)
|
396 |
+
* WP 2.1 improvements
|
397 |
+
|
398 |
+
= 3.0b4 (2006-11-16) =
|
399 |
+
* Fixed some smaller bugs
|
400 |
+
* Decreased memory usage which should solve timeout and memory problems
|
401 |
+
* Updated namespace to support YAHOO and MSN
|
402 |
+
|
403 |
+
= 3.0b2 (2006-01-14) =
|
404 |
+
* Fixed several bugs reported by users
|
405 |
+
|
406 |
+
= 3.0b (2005-11-25) =
|
407 |
+
* WordPress 2.0 (Beta, RC1) compatible
|
408 |
+
* Added different priority calculation modes and introduced an API to create custom ones (Some people didn’t like the way to calculate the post priority based on the count of user comments. This will give you the possibility to develop custom priority providers which fit your needs.)
|
409 |
+
* Added support to use the [Popularity Contest](http://www.alexking.org/blog/2005/07/27/popularity-contest-11/) plugin by [Alex King](http://www.alexking.org/) to calculate post priority (If you are already using the Popularity Contest plugin, this will be the best way to determine the priority of the posts. Uses to new priority API noted above.)
|
410 |
+
* Added option to exclude password protected posts (This was one of the most requested features.)
|
411 |
+
* Posts and pages marked for publish with a date in the future won’t be included
|
412 |
+
* Added function to start sitemap creation via GET and a secret key (If you are using external software which directly writes into the database without using the WordPress API, you can rebuild the sitemap with a simple HTTP Request. This can be made with a cron job for example.)
|
413 |
+
* Improved compatibility with other plugins (There should no longer be problems with other plugins now which checked for existence of a specified function to determine if you are in the control panel or not.)
|
414 |
+
* Recoded plugin architecture which is now fully OOP (The code is now cleaner and better to understand which makes it easier to modify. This should also avoid namespace problems.)
|
415 |
+
* Improved speed and optimized settings handling (Settings and pages are only loaded if the sitemap generation process starts and not every time a page loads. This saves one MySQL Query on every request.)
|
416 |
+
* Added Button to restore default configuration (Messed up the config? You’ll need just one click to restore all settings.)
|
417 |
+
* Added log file to check everything is running (In the new log window you can see when your sitemap was rebuilt or if there was any error.)
|
418 |
+
* Improved user-interface
|
419 |
+
* Added several links to homepage and support (This includes the Notify List about new releases and the WordPress support forum.)
|
420 |
+
|
421 |
+
= 2.7 (2005-11-25) =
|
422 |
+
* Added Polish Translation by [kuba](http://kubazwolinski.com/)
|
423 |
+
|
424 |
+
= 2.7 (2005-11-01) =
|
425 |
+
* Added French Translation by [Thierry Lanfranchi](http://www.chezthierry.info/)
|
426 |
+
|
427 |
+
= 2.7 (2005-07-21) =
|
428 |
+
* Fixed bug with incorrect date in additional pages (wrong format)
|
429 |
+
* Added Swedish Translation by [Tobias Bergius](http://tobiasbergius.se/)
|
430 |
+
|
431 |
+
= 2.6 (2005-07-16) =
|
432 |
+
* Included Chinese (Simplified) language files by [june6](http://www.june6.cn/)
|
433 |
+
|
434 |
+
= 2.6 (2005-07-04) =
|
435 |
+
* Added support to store the files at a custom location
|
436 |
+
* Changed the home URL to have a slash at the end
|
437 |
+
* Fixed errors with wp-mail
|
438 |
+
* Added support for other plugins to add content to the sitemap
|
439 |
+
|
440 |
+
= 2.5 (2005-06-15) =
|
441 |
+
* You can include now external pages which aren’t generated by WordPress or are not recognized by this plugin
|
442 |
+
* You can define a minimum post priority, which will overrride the calculated value if it’s too low
|
443 |
+
* The plugin will automatically ping Google whenever the sitemap gets regenerated
|
444 |
+
* Update 1: Included Spanish translations by [Cesar Gomez Martin](http://www.cesargomez.org/)
|
445 |
+
* Update 2: Included Italian translations by [Stefano Aglietti](http://wordpress-it.it/)
|
446 |
+
* Update 3: Included Traditional Chinese translations by [Kirin Lin](http://kirin-lin.idv.tw/)
|
447 |
+
|
448 |
+
= 2.2 (2005-06-08) =
|
449 |
+
* Language file support: [Hiromasa](http://hiromasa.zone.ne.jp/) from [http://hiromasa.zone.ne.jp](http://hiromasa.zone.ne.jp/) sent me a japanese version of the user interface and modified the script to support it! Thanks for this! Check [the WordPress Codex](http://codex.wordpress.org/WordPress_Localization) how to set the language in WordPress.
|
450 |
+
* Added Japanese user interface by [Hiromasa](http://hiromasa.zone.ne.jp/)
|
451 |
+
* Added German user interface by me
|
452 |
+
|
453 |
+
= 2.12 (2005-06-07) =
|
454 |
+
* Changed SQL Statement for categories that it also works on MySQL 3
|
455 |
+
|
456 |
+
= 2.11 (2005-06-07) =
|
457 |
+
* Fixed a hardcoded tablename which made a SQL error
|
458 |
+
|
459 |
+
= 2.1 (2005-06-07) =
|
460 |
+
* Can also generate a gzipped version of the xml file (sitemap.xml.gz)
|
461 |
+
* Uses correct last modification dates for categories and archives. (Thanks to thx [Rodney Shupe](http://www.shupe.ca/) for the SQL)
|
462 |
+
* Supports now different WordPress / Blog directories
|
463 |
+
* Fixed bug which ignored different post/page priorities (Reported by [Brad](http://h3h.net/))
|
464 |
+
|
465 |
+
= 2.01 (2005-06-07) =
|
466 |
+
* Fixed compatibility for PHP installations which are not configured to use short open tags
|
467 |
+
* Changed Line 147 from _e($i); to _e(strval($i));
|
468 |
+
* Thanks to [Christian Aust](http://publicvoidblog.de/) for reporting this!
|
469 |
+
|
470 |
+
== Screenshots ==
|
471 |
+
|
472 |
+
1. Plugin options page
|
473 |
+
2. Sample XML sitemap (with a stylesheet for making it readable)
|
474 |
+
3. Sample XML sitemap (without stylesheet)
|
475 |
+
|
476 |
+
== License ==
|
477 |
+
|
478 |
+
Good news, this plugin is free for everyone! Since it's released under the GPL, you can use it free of charge on your personal or commercial site.
|
479 |
+
|
480 |
+
== Translations ==
|
481 |
+
|
482 |
+
The plugin comes with various translations, please refer to the [WordPress Codex](http://codex.wordpress.org/Installing_WordPress_in_Your_Language "Installing WordPress in Your Language") for more information about activating the translation. If you want to help to translate the plugin to your language, please have a look at the sitemap.pot file which contains all definitions and may be used with a [gettext](http://www.gnu.org/software/gettext/) editor like [Poedit](http://www.poedit.net/) (Windows).
|
483 |
+
|
484 |
+
== Upgrade Notice ==
|
485 |
+
|
486 |
+
= 4.0.9 =
|
487 |
+
Thanks for using XML Sitemaps! This release includes an important security fix that has been reported.
|
screenshot-1.png
CHANGED
Binary file
|
sitemap-builder.php
DELETED
@@ -1,567 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
|
4 |
-
$Id: sitemap-builder.php 1026247 2014-11-15 16:47:36Z arnee $
|
5 |
-
|
6 |
-
*/
|
7 |
-
/**
|
8 |
-
* Default sitemap builder
|
9 |
-
*
|
10 |
-
* @author Arne Brachhold
|
11 |
-
* @package sitemap
|
12 |
-
* @since 4.0
|
13 |
-
*/
|
14 |
-
class GoogleSitemapGeneratorStandardBuilder {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Creates a new GoogleSitemapGeneratorStandardBuilder instance
|
18 |
-
*/
|
19 |
-
public function __construct() {
|
20 |
-
add_action("sm_build_index", array($this, "Index"), 10, 1);
|
21 |
-
add_action("sm_build_content", array($this, "Content"), 10, 3);
|
22 |
-
|
23 |
-
add_filter("sm_sitemap_for_post", array($this, "GetSitemapUrlForPost"), 10, 3);
|
24 |
-
}
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Generates the content of the requested sitemap
|
28 |
-
*
|
29 |
-
* @param $gsg GoogleSitemapGenerator
|
30 |
-
* @param $type String The type of the sitemap
|
31 |
-
* @param $params String Parameters for the sitemap
|
32 |
-
*/
|
33 |
-
public function Content($gsg, $type, $params) {
|
34 |
-
|
35 |
-
switch($type) {
|
36 |
-
case "pt":
|
37 |
-
$this->BuildPosts($gsg, $params);
|
38 |
-
break;
|
39 |
-
case "archives":
|
40 |
-
$this->BuildArchives($gsg);
|
41 |
-
break;
|
42 |
-
case "authors":
|
43 |
-
$this->BuildAuthors($gsg);
|
44 |
-
break;
|
45 |
-
case "tax":
|
46 |
-
$this->BuildTaxonomies($gsg, $params);
|
47 |
-
break;
|
48 |
-
case "externals":
|
49 |
-
$this->BuildExternals($gsg);
|
50 |
-
break;
|
51 |
-
case "misc":
|
52 |
-
$this->BuildMisc($gsg);
|
53 |
-
break;
|
54 |
-
}
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* Generates the content for the post sitemap
|
59 |
-
*
|
60 |
-
* @param $gsg GoogleSitemapGenerator
|
61 |
-
* @param $params string
|
62 |
-
*/
|
63 |
-
public function BuildPosts($gsg, $params) {
|
64 |
-
|
65 |
-
if(!$pts = strrpos($params, "-")) return;
|
66 |
-
|
67 |
-
$pts = strrpos($params, "-", $pts - strlen($params) - 1);
|
68 |
-
|
69 |
-
$postType = substr($params, 0, $pts);
|
70 |
-
|
71 |
-
if(!$postType || !in_array($postType, $gsg->GetActivePostTypes())) return;
|
72 |
-
|
73 |
-
$params = substr($params, $pts + 1);
|
74 |
-
|
75 |
-
/**@var $wpdb wpdb */
|
76 |
-
global $wpdb;
|
77 |
-
|
78 |
-
if(preg_match('/^([0-9]{4})\-([0-9]{2})$/', $params, $matches)) {
|
79 |
-
$year = $matches[1];
|
80 |
-
$month = $matches[2];
|
81 |
-
|
82 |
-
//Excluded posts by ID
|
83 |
-
$excludedPostIDs = $gsg->GetExcludedPostIDs($gsg);
|
84 |
-
$exPostSQL = "";
|
85 |
-
if(count($excludedPostIDs) > 0) {
|
86 |
-
$exPostSQL = "AND p.ID NOT IN (" . implode(",", $excludedPostIDs) . ")";
|
87 |
-
}
|
88 |
-
|
89 |
-
//Excluded categories by taxonomy ID
|
90 |
-
$excludedCategoryIDs = $gsg->GetExcludedCategoryIDs($gsg);
|
91 |
-
$exCatSQL = "";
|
92 |
-
if(count($excludedCategoryIDs) > 0) {
|
93 |
-
$exCatSQL = "AND ( p.ID NOT IN ( SELECT object_id FROM {$wpdb->term_relationships} WHERE term_taxonomy_id IN ( SELECT term_taxonomy_id FROM {$wpdb->term_taxonomy} WHERE term_id IN ( " . implode(",", $excludedCategoryIDs) . "))))";
|
94 |
-
}
|
95 |
-
|
96 |
-
//Statement to query the actual posts for this post type
|
97 |
-
$qs = "
|
98 |
-
SELECT
|
99 |
-
p.ID,
|
100 |
-
p.post_author,
|
101 |
-
p.post_status,
|
102 |
-
p.post_name,
|
103 |
-
p.post_parent,
|
104 |
-
p.post_type,
|
105 |
-
p.post_date,
|
106 |
-
p.post_date_gmt,
|
107 |
-
p.post_modified,
|
108 |
-
p.post_modified_gmt,
|
109 |
-
p.comment_count
|
110 |
-
FROM
|
111 |
-
{$wpdb->posts} p
|
112 |
-
WHERE
|
113 |
-
p.post_password = ''
|
114 |
-
AND p.post_type = '%s'
|
115 |
-
AND p.post_status = 'publish'
|
116 |
-
AND YEAR(p.post_date_gmt) = %d
|
117 |
-
AND MONTH(p.post_date_gmt) = %d
|
118 |
-
{$exPostSQL}
|
119 |
-
{$exCatSQL}
|
120 |
-
ORDER BY
|
121 |
-
p.post_date_gmt DESC
|
122 |
-
";
|
123 |
-
|
124 |
-
//Query for counting all relevant posts for this post type
|
125 |
-
$qsc = "
|
126 |
-
SELECT
|
127 |
-
COUNT(*)
|
128 |
-
FROM
|
129 |
-
{$wpdb->posts} p
|
130 |
-
WHERE
|
131 |
-
p.post_password = ''
|
132 |
-
AND p.post_type = '%s'
|
133 |
-
AND p.post_status = 'publish'
|
134 |
-
{$exPostSQL}
|
135 |
-
{$exCatSQL}
|
136 |
-
";
|
137 |
-
|
138 |
-
$q = $wpdb->prepare($qs, $postType, $year, $month);
|
139 |
-
|
140 |
-
$posts = $wpdb->get_results($q);
|
141 |
-
|
142 |
-
if(($postCount = count($posts)) > 0) {
|
143 |
-
/** @var $priorityProvider GoogleSitemapGeneratorPrioProviderBase */
|
144 |
-
$priorityProvider = NULL;
|
145 |
-
|
146 |
-
if($gsg->GetOption("b_prio_provider") != '') {
|
147 |
-
|
148 |
-
//Number of comments for all posts
|
149 |
-
$cacheKey = __CLASS__ . "::commentCount";
|
150 |
-
$commentCount = wp_cache_get($cacheKey,'sitemap');
|
151 |
-
if ($commentCount == false) {
|
152 |
-
$commentCount = $wpdb->get_var("SELECT COUNT(*) as `comment_count` FROM {$wpdb->comments} WHERE `comment_approved`='1'");
|
153 |
-
wp_cache_set($cacheKey, $commentCount, 'sitemap', 20);
|
154 |
-
}
|
155 |
-
|
156 |
-
//Number of all posts matching our criteria
|
157 |
-
$cacheKey = __CLASS__ . "::totalPostCount::$postType";
|
158 |
-
$totalPostCount = wp_cache_get($cacheKey,'sitemap');
|
159 |
-
if($totalPostCount === false) {
|
160 |
-
$totalPostCount = $wpdb->get_var($wpdb->prepare($qsc,$postType));
|
161 |
-
wp_cache_add($cacheKey,$totalPostCount, 'sitemap', 20);
|
162 |
-
}
|
163 |
-
|
164 |
-
//Initialize a new priority provider
|
165 |
-
$providerClass = $gsg->GetOption('b_prio_provider');
|
166 |
-
$priorityProvider = new $providerClass($commentCount, $totalPostCount);
|
167 |
-
}
|
168 |
-
|
169 |
-
//Default priorities
|
170 |
-
$defaultPriorityForPosts = $gsg->GetOption('pr_posts');
|
171 |
-
$defaultPriorityForPages = $gsg->GetOption('pr_pages');
|
172 |
-
|
173 |
-
//Minimum priority
|
174 |
-
$minimumPriority = $gsg->GetOption('pr_posts_min');
|
175 |
-
|
176 |
-
//Change frequencies
|
177 |
-
$changeFrequencyForPosts = $gsg->GetOption('cf_posts');
|
178 |
-
$changeFrequencyForPages = $gsg->GetOption('cf_pages');
|
179 |
-
|
180 |
-
//Page as home handling
|
181 |
-
$homePid = 0;
|
182 |
-
$home = get_home_url();
|
183 |
-
if('page' == get_option('show_on_front') && get_option('page_on_front')) {
|
184 |
-
$pageOnFront = get_option('page_on_front');
|
185 |
-
$p = get_post($pageOnFront);
|
186 |
-
if($p) $homePid = $p->ID;
|
187 |
-
}
|
188 |
-
|
189 |
-
foreach($posts AS $post) {
|
190 |
-
|
191 |
-
//Fill the cache with our DB result. Since it's incomplete (no text-content for example), we will clean it later.
|
192 |
-
//This is required since the permalink function will do a query for every post otherwise.
|
193 |
-
//wp_cache_add($post->ID, $post, 'posts');
|
194 |
-
|
195 |
-
//Full URL to the post
|
196 |
-
$permalink = get_permalink($post);
|
197 |
-
|
198 |
-
//Exclude the home page and placeholder items by some plugins. Also include only internal links.
|
199 |
-
if(
|
200 |
-
!empty($permalink)
|
201 |
-
&& $permalink != $home
|
202 |
-
&& $post->ID != $homePid
|
203 |
-
&& strpos( $permalink, $home) !== false
|
204 |
-
) {
|
205 |
-
|
206 |
-
//Default Priority if auto calc is disabled
|
207 |
-
$priority = ($postType == 'page' ? $defaultPriorityForPages : $defaultPriorityForPosts);
|
208 |
-
|
209 |
-
//If priority calc. is enabled, calculate (but only for posts, not pages)!
|
210 |
-
if($priorityProvider !== null && $postType == 'post') {
|
211 |
-
$priority = $priorityProvider->GetPostPriority($post->ID, $post->comment_count, $post);
|
212 |
-
}
|
213 |
-
|
214 |
-
//Ensure the minimum priority
|
215 |
-
if($postType == 'post' && $minimumPriority > 0 && $priority < $minimumPriority) $priority = $minimumPriority;
|
216 |
-
|
217 |
-
//ADdd the URL to the sitemap
|
218 |
-
$gsg->AddUrl(
|
219 |
-
$permalink,
|
220 |
-
$gsg->GetTimestampFromMySql($post->post_modified_gmt && $post->post_modified_gmt != '0000-00-00 00:00:00'? $post->post_modified_gmt : $post->post_date_gmt),
|
221 |
-
($postType == 'page' ? $changeFrequencyForPages : $changeFrequencyForPosts),
|
222 |
-
$priority, $post->ID);
|
223 |
-
}
|
224 |
-
|
225 |
-
//Why not use clean_post_cache? Because some plugin will go crazy then (lots of database queries)
|
226 |
-
//The post cache was not populated in a clean way, so we also won't delete it using the API.
|
227 |
-
//wp_cache_delete( $post->ID, 'posts' );
|
228 |
-
unset($post);
|
229 |
-
}
|
230 |
-
}
|
231 |
-
|
232 |
-
unset($posts);
|
233 |
-
}
|
234 |
-
}
|
235 |
-
|
236 |
-
/**
|
237 |
-
* Generates the content for the archives sitemap
|
238 |
-
*
|
239 |
-
* @param $gsg GoogleSitemapGenerator
|
240 |
-
*/
|
241 |
-
public function BuildArchives($gsg) {
|
242 |
-
/** @var $wpdb wpdb */
|
243 |
-
global $wpdb;
|
244 |
-
$now = current_time('mysql', true);
|
245 |
-
|
246 |
-
$archives = $wpdb->get_results("
|
247 |
-
SELECT DISTINCT
|
248 |
-
YEAR(post_date_gmt) AS `year`,
|
249 |
-
MONTH(post_date_gmt) AS `month`,
|
250 |
-
MAX(post_date_gmt) AS last_mod,
|
251 |
-
count(ID) AS posts
|
252 |
-
FROM
|
253 |
-
$wpdb->posts
|
254 |
-
WHERE
|
255 |
-
post_date_gmt < '$now'
|
256 |
-
AND post_status = 'publish'
|
257 |
-
AND post_type = 'post'
|
258 |
-
GROUP BY
|
259 |
-
YEAR(post_date_gmt),
|
260 |
-
MONTH(post_date_gmt)
|
261 |
-
ORDER BY
|
262 |
-
post_date_gmt DESC
|
263 |
-
");
|
264 |
-
|
265 |
-
if($archives) {
|
266 |
-
foreach($archives as $archive) {
|
267 |
-
|
268 |
-
$url = get_month_link($archive->year, $archive->month);
|
269 |
-
|
270 |
-
//Archive is the current one
|
271 |
-
if($archive->month == date("n") && $archive->year == date("Y")) {
|
272 |
-
$changeFreq = $gsg->GetOption("cf_arch_curr");
|
273 |
-
} else { // Archive is older
|
274 |
-
$changeFreq = $gsg->GetOption("cf_arch_old");
|
275 |
-
}
|
276 |
-
|
277 |
-
$gsg->AddUrl($url, $gsg->GetTimestampFromMySql($archive->last_mod), $changeFreq, $gsg->GetOption("pr_arch"));
|
278 |
-
}
|
279 |
-
}
|
280 |
-
}
|
281 |
-
|
282 |
-
/**
|
283 |
-
* Generates the misc sitemap
|
284 |
-
*
|
285 |
-
* @param $gsg GoogleSitemapGenerator
|
286 |
-
*/
|
287 |
-
public function BuildMisc($gsg) {
|
288 |
-
|
289 |
-
$lm = get_lastpostmodified('gmt');
|
290 |
-
|
291 |
-
if($gsg->GetOption("in_home")) {
|
292 |
-
$home = get_bloginfo('url');
|
293 |
-
|
294 |
-
//Add the home page (WITH a slash!)
|
295 |
-
if($gsg->GetOption("in_home")) {
|
296 |
-
if('page' == get_option('show_on_front') && get_option('page_on_front')) {
|
297 |
-
$pageOnFront = get_option('page_on_front');
|
298 |
-
$p = get_post($pageOnFront);
|
299 |
-
if($p) {
|
300 |
-
$gsg->AddUrl(trailingslashit($home), $gsg->GetTimestampFromMySql(($p->post_modified_gmt && $p->post_modified_gmt != '0000-00-00 00:00:00'
|
301 |
-
? $p->post_modified_gmt
|
302 |
-
: $p->post_date_gmt)), $gsg->GetOption("cf_home"), $gsg->GetOption("pr_home"));
|
303 |
-
}
|
304 |
-
} else {
|
305 |
-
$gsg->AddUrl(trailingslashit($home), ($lm ? $gsg->GetTimestampFromMySql($lm)
|
306 |
-
: time()), $gsg->GetOption("cf_home"), $gsg->GetOption("pr_home"));
|
307 |
-
}
|
308 |
-
}
|
309 |
-
}
|
310 |
-
|
311 |
-
if($gsg->IsXslEnabled() && $gsg->GetOption("b_html") === true) {
|
312 |
-
$gsg->AddUrl($gsg->GetXmlUrl("", "", array("html" => true)), ($lm ? $gsg->GetTimestampFromMySql($lm)
|
313 |
-
: time()));
|
314 |
-
}
|
315 |
-
|
316 |
-
do_action('sm_buildmap');
|
317 |
-
}
|
318 |
-
|
319 |
-
/**
|
320 |
-
* Generates the author sitemap
|
321 |
-
*
|
322 |
-
* @param $gsg GoogleSitemapGenerator
|
323 |
-
*/
|
324 |
-
public function BuildAuthors($gsg) {
|
325 |
-
/** @var $wpdb wpdb */
|
326 |
-
global $wpdb;
|
327 |
-
|
328 |
-
//Unfortunately there is no API function to get all authors, so we have to do it the dirty way...
|
329 |
-
//We retrieve only users with published and not password protected enabled post types
|
330 |
-
|
331 |
-
$enabledPostTypes = $gsg->GetActivePostTypes();
|
332 |
-
|
333 |
-
//Ensure we count at least the posts...
|
334 |
-
if(count($enabledPostTypes) == 0) $enabledPostTypes[] = "post";
|
335 |
-
|
336 |
-
$sql = "SELECT DISTINCT
|
337 |
-
u.ID,
|
338 |
-
u.user_nicename,
|
339 |
-
MAX(p.post_modified_gmt) AS last_post
|
340 |
-
FROM
|
341 |
-
{$wpdb->users} u,
|
342 |
-
{$wpdb->posts} p
|
343 |
-
WHERE
|
344 |
-
p.post_author = u.ID
|
345 |
-
AND p.post_status = 'publish'
|
346 |
-
AND p.post_type IN('" . implode("','", array_map('esc_sql', $enabledPostTypes)) . "')
|
347 |
-
AND p.post_password = ''
|
348 |
-
GROUP BY
|
349 |
-
u.ID,
|
350 |
-
u.user_nicename";
|
351 |
-
|
352 |
-
$authors = $wpdb->get_results($sql);
|
353 |
-
|
354 |
-
if($authors && is_array($authors)) {
|
355 |
-
foreach($authors as $author) {
|
356 |
-
$url = get_author_posts_url($author->ID, $author->user_nicename);
|
357 |
-
$gsg->AddUrl($url, $gsg->GetTimestampFromMySql($author->last_post), $gsg->GetOption("cf_auth"), $gsg->GetOption("pr_auth"));
|
358 |
-
}
|
359 |
-
}
|
360 |
-
}
|
361 |
-
|
362 |
-
/**
|
363 |
-
* Filters the terms query to only include published posts
|
364 |
-
*
|
365 |
-
* @param $selects string[]
|
366 |
-
* @return string[]
|
367 |
-
*/
|
368 |
-
public function FilterTermsQuery($selects) {
|
369 |
-
/** @var $wpdb wpdb */
|
370 |
-
global $wpdb;
|
371 |
-
$selects[] = "
|
372 |
-
( /* ADDED BY XML SITEMAPS */
|
373 |
-
SELECT
|
374 |
-
UNIX_TIMESTAMP(MAX(p.post_date_gmt)) as _mod_date
|
375 |
-
FROM
|
376 |
-
{$wpdb->posts} p,
|
377 |
-
{$wpdb->term_relationships} r
|
378 |
-
WHERE
|
379 |
-
p.ID = r.object_id
|
380 |
-
AND p.post_status = 'publish'
|
381 |
-
AND p.post_password = ''
|
382 |
-
AND r.term_taxonomy_id = tt.term_taxonomy_id
|
383 |
-
) as _mod_date
|
384 |
-
/* END ADDED BY XML SITEMAPS */
|
385 |
-
";
|
386 |
-
|
387 |
-
return $selects;
|
388 |
-
}
|
389 |
-
|
390 |
-
/**
|
391 |
-
* Generates the taxonomies sitemap
|
392 |
-
*
|
393 |
-
* @param $gsg GoogleSitemapGenerator
|
394 |
-
* @param $taxonomy string The Taxonomy
|
395 |
-
*/
|
396 |
-
public function BuildTaxonomies($gsg, $taxonomy) {
|
397 |
-
|
398 |
-
$enabledTaxonomies = $this->GetEnabledTaxonomies($gsg);
|
399 |
-
if(in_array($taxonomy, $enabledTaxonomies)) {
|
400 |
-
|
401 |
-
$excludes = array();
|
402 |
-
|
403 |
-
if($taxonomy == "category") {
|
404 |
-
$exclCats = $gsg->GetOption("b_exclude_cats"); // Excluded cats
|
405 |
-
if($exclCats) $excludes = $exclCats;
|
406 |
-
}
|
407 |
-
|
408 |
-
add_filter("get_terms_fields", array($this, "FilterTermsQuery"), 20, 2);
|
409 |
-
$terms = get_terms($taxonomy, array("hide_empty" => true, "hierarchical" => false, "exclude" => $excludes));
|
410 |
-
remove_filter("get_terms_fields", array($this, "FilterTermsQuery"), 20, 2);
|
411 |
-
|
412 |
-
foreach($terms AS $term) {
|
413 |
-
$gsg->AddUrl(get_term_link($term, $term->taxonomy), $term->_mod_date, $gsg->GetOption("cf_tags"), $gsg->GetOption("pr_tags"));
|
414 |
-
}
|
415 |
-
}
|
416 |
-
}
|
417 |
-
|
418 |
-
/**
|
419 |
-
* Returns the enabled taxonomies. Only taxonomies with posts are returned.
|
420 |
-
*
|
421 |
-
* @param GoogleSitemapGenerator $gsg
|
422 |
-
* @return array
|
423 |
-
*/
|
424 |
-
public function GetEnabledTaxonomies(GoogleSitemapGenerator $gsg) {
|
425 |
-
|
426 |
-
$enabledTaxonomies = $gsg->GetOption("in_tax");
|
427 |
-
if($gsg->GetOption("in_tags")) $enabledTaxonomies[] = "post_tag";
|
428 |
-
if($gsg->GetOption("in_cats")) $enabledTaxonomies[] = "category";
|
429 |
-
|
430 |
-
$taxList = array();
|
431 |
-
foreach($enabledTaxonomies as $taxName) {
|
432 |
-
$taxonomy = get_taxonomy($taxName);
|
433 |
-
if($taxonomy && wp_count_terms($taxonomy->name, array('hide_empty' => true)) > 0) $taxList[] = $taxonomy->name;
|
434 |
-
}
|
435 |
-
return $taxList;
|
436 |
-
}
|
437 |
-
|
438 |
-
/**
|
439 |
-
* Generates the external sitemap
|
440 |
-
*
|
441 |
-
* @param $gsg GoogleSitemapGenerator
|
442 |
-
*/
|
443 |
-
public function BuildExternals($gsg) {
|
444 |
-
$pages = $gsg->GetPages();
|
445 |
-
if($pages && is_array($pages) && count($pages) > 0) {
|
446 |
-
foreach($pages AS $page) {
|
447 |
-
/** @var $page GoogleSitemapGeneratorPage */
|
448 |
-
$gsg->AddUrl($page->GetUrl(), $page->getLastMod(), $page->getChangeFreq(), $page->getPriority());
|
449 |
-
}
|
450 |
-
}
|
451 |
-
}
|
452 |
-
|
453 |
-
/**
|
454 |
-
* Generates the sitemap index
|
455 |
-
*
|
456 |
-
* @param $gsg GoogleSitemapGenerator
|
457 |
-
*/
|
458 |
-
public function Index($gsg) {
|
459 |
-
/**
|
460 |
-
* @var $wpdb wpdb
|
461 |
-
*/
|
462 |
-
global $wpdb;
|
463 |
-
|
464 |
-
$blogUpdate = strtotime(get_lastpostmodified('gmt'));
|
465 |
-
|
466 |
-
$gsg->AddSitemap("misc", null, $blogUpdate);
|
467 |
-
|
468 |
-
|
469 |
-
$taxonomies = $this->GetEnabledTaxonomies($gsg);
|
470 |
-
foreach($taxonomies AS $tax) {
|
471 |
-
$gsg->AddSitemap("tax", $tax, $blogUpdate);
|
472 |
-
}
|
473 |
-
|
474 |
-
$pages = $gsg->GetPages();
|
475 |
-
if(count($pages) > 0) {
|
476 |
-
foreach($pages AS $page) {
|
477 |
-
if($page instanceof GoogleSitemapGeneratorPage && $page->GetUrl()) {
|
478 |
-
$gsg->AddSitemap("externals", null, $blogUpdate);
|
479 |
-
break;
|
480 |
-
}
|
481 |
-
}
|
482 |
-
}
|
483 |
-
|
484 |
-
$enabledPostTypes = $gsg->GetActivePostTypes();
|
485 |
-
|
486 |
-
$hasEnabledPostTypesPosts = false;
|
487 |
-
$hasPosts = false;
|
488 |
-
|
489 |
-
if(count($enabledPostTypes) > 0) {
|
490 |
-
|
491 |
-
$excludedPostIDs = $gsg->GetExcludedPostIDs($gsg);
|
492 |
-
$exPostSQL = "";
|
493 |
-
if(count($excludedPostIDs) > 0) {
|
494 |
-
$exPostSQL = "AND p.ID NOT IN (" . implode(",", $excludedPostIDs) . ")";
|
495 |
-
}
|
496 |
-
|
497 |
-
$excludedCategoryIDs = $gsg->GetExcludedCategoryIDs($gsg);
|
498 |
-
$exCatSQL = "";
|
499 |
-
if(count($excludedCategoryIDs) > 0) {
|
500 |
-
$exCatSQL = "AND ( p.ID NOT IN ( SELECT object_id FROM {$wpdb->term_relationships} WHERE term_taxonomy_id IN (" . implode(",", $excludedCategoryIDs) . ")))";
|
501 |
-
}
|
502 |
-
|
503 |
-
foreach($enabledPostTypes AS $postType) {
|
504 |
-
$q = "
|
505 |
-
SELECT
|
506 |
-
YEAR(p.post_date_gmt) AS `year`,
|
507 |
-
MONTH(p.post_date_gmt) AS `month`,
|
508 |
-
COUNT(p.ID) AS `numposts`,
|
509 |
-
MAX(p.post_modified_gmt) as `last_mod`
|
510 |
-
FROM
|
511 |
-
{$wpdb->posts} p
|
512 |
-
WHERE
|
513 |
-
p.post_password = ''
|
514 |
-
AND p.post_type = '" . esc_sql($postType) . "'
|
515 |
-
AND p.post_status = 'publish'
|
516 |
-
$exPostSQL
|
517 |
-
$exCatSQL
|
518 |
-
GROUP BY
|
519 |
-
YEAR(p.post_date_gmt),
|
520 |
-
MONTH(p.post_date_gmt)
|
521 |
-
ORDER BY
|
522 |
-
p.post_date_gmt DESC";
|
523 |
-
|
524 |
-
$posts = $wpdb->get_results($q);
|
525 |
-
|
526 |
-
if($posts) {
|
527 |
-
if($postType=="post") $hasPosts = true;
|
528 |
-
|
529 |
-
$hasEnabledPostTypesPosts = true;
|
530 |
-
|
531 |
-
foreach($posts as $post) {
|
532 |
-
$gsg->AddSitemap("pt", $postType . "-" . sprintf("%04d-%02d", $post->year, $post->month), $gsg->GetTimestampFromMySql($post->last_mod));
|
533 |
-
}
|
534 |
-
}
|
535 |
-
}
|
536 |
-
}
|
537 |
-
|
538 |
-
//Only include authors if there is a public post with a enabled post type
|
539 |
-
if($gsg->GetOption("in_auth") && $hasEnabledPostTypesPosts) $gsg->AddSitemap("authors", null, $blogUpdate);
|
540 |
-
|
541 |
-
//Only include archived if there are posts with postType post
|
542 |
-
if($gsg->GetOption("in_arch") && $hasPosts) $gsg->AddSitemap("archives", null, $blogUpdate);
|
543 |
-
}
|
544 |
-
|
545 |
-
/**
|
546 |
-
* Return the URL to the sitemap related to a specific post
|
547 |
-
*
|
548 |
-
* @param array $urls
|
549 |
-
* @param $gsg GoogleSitemapGenerator
|
550 |
-
* @param $postID int The post ID
|
551 |
-
*
|
552 |
-
* @return string[]
|
553 |
-
*/
|
554 |
-
public function GetSitemapUrlForPost(array $urls, $gsg, $postID) {
|
555 |
-
$post = get_post($postID);
|
556 |
-
if($post) {
|
557 |
-
$lastModified = $gsg->GetTimestampFromMySql($post->post_modified_gmt);
|
558 |
-
|
559 |
-
$url = $gsg->GetXmlUrl("pt", $post->post_type . "-" . date("Y-m", $lastModified));
|
560 |
-
$urls[] = $url;
|
561 |
-
}
|
562 |
-
|
563 |
-
return $urls;
|
564 |
-
}
|
565 |
-
}
|
566 |
-
|
567 |
-
if(defined("WPINC")) new GoogleSitemapGeneratorStandardBuilder();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sitemap-core.php
CHANGED
@@ -1,2272 +1,2771 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
*
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
*
|
61 |
-
*/
|
62 |
-
public function
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
}
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
*
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
*
|
167 |
-
*
|
168 |
-
* @
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
*
|
178 |
-
*
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
*
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
*
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
*
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
*
|
237 |
-
*
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
*
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
/**
|
257 |
-
* Sets the
|
258 |
-
*
|
259 |
-
* @
|
260 |
-
*/
|
261 |
-
public
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
*
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
*
|
276 |
-
*
|
277 |
-
* @param
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
return $
|
349 |
-
}
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
*
|
467 |
-
* @
|
468 |
-
* @
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
*
|
475 |
-
*
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
*
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
*
|
533 |
-
*/
|
534 |
-
public function
|
535 |
-
|
536 |
-
$this->
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
return
|
548 |
-
}
|
549 |
-
|
550 |
-
/**
|
551 |
-
*
|
552 |
-
*
|
553 |
-
* @
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
/**
|
587 |
-
*
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
* @
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
*
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
/**
|
622 |
-
*
|
623 |
-
*
|
624 |
-
* @
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
*
|
642 |
-
*
|
643 |
-
* @since 3.0
|
644 |
-
* @return
|
645 |
-
*/
|
646 |
-
public function
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
*
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
*
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
*
|
721 |
-
* @
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
*
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
}
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
*
|
813 |
-
*
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
*
|
821 |
-
*
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
*
|
834 |
-
*
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
/**
|
841 |
-
*
|
842 |
-
*
|
843 |
-
* @
|
844 |
-
|
845 |
-
|
846 |
-
|
847 |
-
|
848 |
-
|
849 |
-
|
850 |
-
|
851 |
-
|
852 |
-
|
853 |
-
|
854 |
-
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
-
|
868 |
-
|
869 |
-
*
|
870 |
-
* @
|
871 |
-
*/
|
872 |
-
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
*
|
878 |
-
* @since
|
879 |
-
* @return
|
880 |
-
*/
|
881 |
-
public function
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
*
|
947 |
-
*
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
*
|
957 |
-
*
|
958 |
-
* @
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
*
|
967 |
-
*
|
968 |
-
* @
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
return $
|
974 |
-
}
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
*
|
979 |
-
*
|
980 |
-
* @
|
981 |
-
* @return
|
982 |
-
*/
|
983 |
-
public function
|
984 |
-
|
985 |
-
|
986 |
-
$
|
987 |
-
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
*
|
1096 |
-
*
|
1097 |
-
* @
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
*
|
1119 |
-
*
|
1120 |
-
* @
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
$
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
$this->
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
$
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
*
|
1225 |
-
*
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
*
|
1245 |
-
*
|
1246 |
-
* @
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
$
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
|
1282 |
-
|
1283 |
-
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
*
|
1288 |
-
*
|
1289 |
-
|
1290 |
-
|
1291 |
-
|
1292 |
-
|
1293 |
-
|
1294 |
-
$
|
1295 |
-
|
1296 |
-
$
|
1297 |
-
|
1298 |
-
//
|
1299 |
-
|
1300 |
-
|
1301 |
-
$
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
-
|
1306 |
-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
$
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
|
1339 |
-
|
1340 |
-
|
1341 |
-
|
1342 |
-
$
|
1343 |
-
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
$
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
$
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
|
1368 |
-
|
1369 |
-
|
1370 |
-
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
$
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
|
1404 |
-
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
$
|
1411 |
-
|
1412 |
-
//
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
|
1433 |
-
|
1434 |
-
|
1435 |
-
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
1443 |
-
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
return $
|
1449 |
-
}
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
*
|
1456 |
-
*
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
$this->
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
-
*
|
1483 |
-
*
|
1484 |
-
* @
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
1489 |
-
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
}
|
1500 |
-
|
1501 |
-
/**
|
1502 |
-
*
|
1503 |
-
*
|
1504 |
-
* @
|
1505 |
-
|
1506 |
-
|
1507 |
-
|
1508 |
-
|
1509 |
-
|
1510 |
-
|
1511 |
-
|
1512 |
-
|
1513 |
-
|
1514 |
-
|
1515 |
-
|
1516 |
-
|
1517 |
-
|
1518 |
-
|
1519 |
-
|
1520 |
-
|
1521 |
-
|
1522 |
-
|
1523 |
-
|
1524 |
-
|
1525 |
-
|
1526 |
-
|
1527 |
-
|
1528 |
-
|
1529 |
-
|
1530 |
-
|
1531 |
-
|
1532 |
-
|
1533 |
-
|
1534 |
-
|
1535 |
-
|
1536 |
-
|
1537 |
-
|
1538 |
-
|
1539 |
-
|
1540 |
-
|
1541 |
-
|
1542 |
-
|
1543 |
-
|
1544 |
-
|
1545 |
-
|
1546 |
-
|
1547 |
-
|
1548 |
-
|
1549 |
-
|
1550 |
-
|
1551 |
-
|
1552 |
-
|
1553 |
-
|
1554 |
-
|
1555 |
-
|
1556 |
-
|
1557 |
-
|
1558 |
-
|
1559 |
-
|
1560 |
-
|
1561 |
-
|
1562 |
-
|
1563 |
-
|
1564 |
-
|
1565 |
-
|
1566 |
-
|
1567 |
-
|
1568 |
-
|
1569 |
-
|
1570 |
-
|
1571 |
-
|
1572 |
-
|
1573 |
-
|
1574 |
-
|
1575 |
-
|
1576 |
-
|
1577 |
-
|
1578 |
-
|
1579 |
-
|
1580 |
-
|
1581 |
-
|
1582 |
-
|
1583 |
-
|
1584 |
-
|
1585 |
-
|
1586 |
-
|
1587 |
-
|
1588 |
-
|
1589 |
-
|
1590 |
-
|
1591 |
-
|
1592 |
-
|
1593 |
-
|
1594 |
-
|
1595 |
-
|
1596 |
-
|
1597 |
-
|
1598 |
-
|
1599 |
-
|
1600 |
-
|
1601 |
-
|
1602 |
-
|
1603 |
-
|
1604 |
-
|
1605 |
-
|
1606 |
-
$
|
1607 |
-
|
1608 |
-
|
1609 |
-
|
1610 |
-
|
1611 |
-
|
1612 |
-
|
1613 |
-
|
1614 |
-
|
1615 |
-
|
1616 |
-
|
1617 |
-
|
1618 |
-
|
1619 |
-
|
1620 |
-
|
1621 |
-
|
1622 |
-
|
1623 |
-
|
1624 |
-
|
1625 |
-
$
|
1626 |
-
$
|
1627 |
-
|
1628 |
-
|
1629 |
-
|
1630 |
-
|
1631 |
-
|
1632 |
-
|
1633 |
-
|
1634 |
-
|
1635 |
-
|
1636 |
-
|
1637 |
-
|
1638 |
-
|
1639 |
-
|
1640 |
-
|
1641 |
-
|
1642 |
-
|
1643 |
-
|
1644 |
-
|
1645 |
-
|
1646 |
-
|
1647 |
-
|
1648 |
-
|
1649 |
-
|
1650 |
-
|
1651 |
-
|
1652 |
-
|
1653 |
-
|
1654 |
-
|
1655 |
-
|
1656 |
-
|
1657 |
-
|
1658 |
-
|
1659 |
-
|
1660 |
-
|
1661 |
-
|
1662 |
-
$
|
1663 |
-
|
1664 |
-
|
1665 |
-
|
1666 |
-
|
1667 |
-
|
1668 |
-
|
1669 |
-
|
1670 |
-
|
1671 |
-
|
1672 |
-
|
1673 |
-
|
1674 |
-
|
1675 |
-
|
1676 |
-
*
|
1677 |
-
*
|
1678 |
-
|
1679 |
-
|
1680 |
-
|
1681 |
-
|
1682 |
-
|
1683 |
-
|
1684 |
-
|
1685 |
-
|
1686 |
-
|
1687 |
-
|
1688 |
-
|
1689 |
-
|
1690 |
-
|
1691 |
-
|
1692 |
-
|
1693 |
-
|
1694 |
-
|
1695 |
-
|
1696 |
-
|
1697 |
-
|
1698 |
-
|
1699 |
-
|
1700 |
-
|
1701 |
-
|
1702 |
-
|
1703 |
-
|
1704 |
-
|
1705 |
-
|
1706 |
-
|
1707 |
-
|
1708 |
-
|
1709 |
-
|
1710 |
-
|
1711 |
-
|
1712 |
-
|
1713 |
-
|
1714 |
-
|
1715 |
-
|
1716 |
-
|
1717 |
-
|
1718 |
-
|
1719 |
-
|
1720 |
-
|
1721 |
-
|
1722 |
-
|
1723 |
-
|
1724 |
-
|
1725 |
-
|
1726 |
-
|
1727 |
-
|
1728 |
-
*
|
1729 |
-
*
|
1730 |
-
*
|
1731 |
-
*/
|
1732 |
-
|
1733 |
-
|
1734 |
-
|
1735 |
-
|
1736 |
-
|
1737 |
-
|
1738 |
-
|
1739 |
-
|
1740 |
-
|
1741 |
-
|
1742 |
-
|
1743 |
-
|
1744 |
-
|
1745 |
-
|
1746 |
-
|
1747 |
-
|
1748 |
-
|
1749 |
-
|
1750 |
-
|
1751 |
-
|
1752 |
-
|
1753 |
-
$
|
1754 |
-
|
1755 |
-
|
1756 |
-
|
1757 |
-
|
1758 |
-
|
1759 |
-
|
1760 |
-
|
1761 |
-
|
1762 |
-
|
1763 |
-
|
1764 |
-
|
1765 |
-
|
1766 |
-
|
1767 |
-
|
1768 |
-
|
1769 |
-
|
1770 |
-
|
1771 |
-
|
1772 |
-
|
1773 |
-
|
1774 |
-
|
1775 |
-
|
1776 |
-
|
1777 |
-
|
1778 |
-
|
1779 |
-
|
1780 |
-
|
1781 |
-
|
1782 |
-
|
1783 |
-
|
1784 |
-
|
1785 |
-
|
1786 |
-
|
1787 |
-
|
1788 |
-
|
1789 |
-
|
1790 |
-
*
|
1791 |
-
*
|
1792 |
-
* @
|
1793 |
-
* @
|
1794 |
-
* @param $
|
1795 |
-
* @param $
|
1796 |
-
* @
|
1797 |
-
|
1798 |
-
|
1799 |
-
|
1800 |
-
|
1801 |
-
|
1802 |
-
|
1803 |
-
|
1804 |
-
|
1805 |
-
|
1806 |
-
|
1807 |
-
|
1808 |
-
|
1809 |
-
|
1810 |
-
|
1811 |
-
|
1812 |
-
|
1813 |
-
|
1814 |
-
|
1815 |
-
|
1816 |
-
|
1817 |
-
|
1818 |
-
|
1819 |
-
*
|
1820 |
-
|
1821 |
-
|
1822 |
-
|
1823 |
-
|
1824 |
-
|
1825 |
-
|
1826 |
-
$
|
1827 |
-
|
1828 |
-
|
1829 |
-
|
1830 |
-
|
1831 |
-
|
1832 |
-
|
1833 |
-
|
1834 |
-
|
1835 |
-
|
1836 |
-
|
1837 |
-
|
1838 |
-
|
1839 |
-
|
1840 |
-
|
1841 |
-
|
1842 |
-
|
1843 |
-
|
1844 |
-
|
1845 |
-
|
1846 |
-
|
1847 |
-
|
1848 |
-
|
1849 |
-
|
1850 |
-
|
1851 |
-
|
1852 |
-
|
1853 |
-
|
1854 |
-
|
1855 |
-
|
1856 |
-
|
1857 |
-
|
1858 |
-
|
1859 |
-
|
1860 |
-
|
1861 |
-
|
1862 |
-
|
1863 |
-
|
1864 |
-
|
1865 |
-
|
1866 |
-
|
1867 |
-
|
1868 |
-
|
1869 |
-
|
1870 |
-
|
1871 |
-
|
1872 |
-
|
1873 |
-
|
1874 |
-
|
1875 |
-
|
1876 |
-
|
1877 |
-
|
1878 |
-
|
1879 |
-
|
1880 |
-
|
1881 |
-
|
1882 |
-
|
1883 |
-
|
1884 |
-
|
1885 |
-
|
1886 |
-
|
1887 |
-
|
1888 |
-
|
1889 |
-
|
1890 |
-
|
1891 |
-
|
1892 |
-
|
1893 |
-
|
1894 |
-
|
1895 |
-
|
1896 |
-
|
1897 |
-
|
1898 |
-
|
1899 |
-
|
1900 |
-
|
1901 |
-
|
1902 |
-
|
1903 |
-
|
1904 |
-
|
1905 |
-
|
1906 |
-
|
1907 |
-
|
1908 |
-
|
1909 |
-
|
1910 |
-
|
1911 |
-
|
1912 |
-
|
1913 |
-
|
1914 |
-
|
1915 |
-
|
1916 |
-
|
1917 |
-
|
1918 |
-
|
1919 |
-
|
1920 |
-
|
1921 |
-
|
1922 |
-
|
1923 |
-
|
1924 |
-
|
1925 |
-
|
1926 |
-
|
1927 |
-
|
1928 |
-
|
1929 |
-
|
1930 |
-
|
1931 |
-
|
1932 |
-
|
1933 |
-
|
1934 |
-
|
1935 |
-
|
1936 |
-
|
1937 |
-
|
1938 |
-
|
1939 |
-
|
1940 |
-
|
1941 |
-
|
1942 |
-
|
1943 |
-
|
1944 |
-
|
1945 |
-
|
1946 |
-
|
1947 |
-
$
|
1948 |
-
|
1949 |
-
|
1950 |
-
|
1951 |
-
|
1952 |
-
|
1953 |
-
|
1954 |
-
|
1955 |
-
|
1956 |
-
|
1957 |
-
|
1958 |
-
|
1959 |
-
|
1960 |
-
|
1961 |
-
|
1962 |
-
|
1963 |
-
|
1964 |
-
|
1965 |
-
|
1966 |
-
|
1967 |
-
|
1968 |
-
|
1969 |
-
|
1970 |
-
|
1971 |
-
|
1972 |
-
|
1973 |
-
|
1974 |
-
|
1975 |
-
|
1976 |
-
|
1977 |
-
|
1978 |
-
|
1979 |
-
|
1980 |
-
|
1981 |
-
|
1982 |
-
|
1983 |
-
|
1984 |
-
|
1985 |
-
|
1986 |
-
|
1987 |
-
|
1988 |
-
|
1989 |
-
|
1990 |
-
|
1991 |
-
|
1992 |
-
|
1993 |
-
|
1994 |
-
|
1995 |
-
|
1996 |
-
|
1997 |
-
|
1998 |
-
|
1999 |
-
|
2000 |
-
|
2001 |
-
|
2002 |
-
|
2003 |
-
|
2004 |
-
|
2005 |
-
|
2006 |
-
|
2007 |
-
|
2008 |
-
|
2009 |
-
|
2010 |
-
|
2011 |
-
|
2012 |
-
|
2013 |
-
|
2014 |
-
|
2015 |
-
|
2016 |
-
|
2017 |
-
|
2018 |
-
|
2019 |
-
|
2020 |
-
|
2021 |
-
|
2022 |
-
|
2023 |
-
|
2024 |
-
|
2025 |
-
|
2026 |
-
|
2027 |
-
|
2028 |
-
|
2029 |
-
|
2030 |
-
|
2031 |
-
|
2032 |
-
|
2033 |
-
|
2034 |
-
|
2035 |
-
|
2036 |
-
|
2037 |
-
|
2038 |
-
|
2039 |
-
|
2040 |
-
|
2041 |
-
|
2042 |
-
$
|
2043 |
-
|
2044 |
-
$
|
2045 |
-
|
2046 |
-
|
2047 |
-
|
2048 |
-
$
|
2049 |
-
$
|
2050 |
-
|
2051 |
-
|
2052 |
-
|
2053 |
-
|
2054 |
-
|
2055 |
-
|
2056 |
-
|
2057 |
-
|
2058 |
-
|
2059 |
-
|
2060 |
-
|
2061 |
-
|
2062 |
-
|
2063 |
-
|
2064 |
-
|
2065 |
-
|
2066 |
-
|
2067 |
-
|
2068 |
-
|
2069 |
-
|
2070 |
-
|
2071 |
-
|
2072 |
-
|
2073 |
-
|
2074 |
-
|
2075 |
-
$
|
2076 |
-
|
2077 |
-
|
2078 |
-
|
2079 |
-
|
2080 |
-
|
2081 |
-
|
2082 |
-
|
2083 |
-
|
2084 |
-
|
2085 |
-
|
2086 |
-
|
2087 |
-
|
2088 |
-
|
2089 |
-
|
2090 |
-
|
2091 |
-
|
2092 |
-
}
|
2093 |
-
|
2094 |
-
/**
|
2095 |
-
*
|
2096 |
-
*
|
2097 |
-
* @
|
2098 |
-
|
2099 |
-
|
2100 |
-
|
2101 |
-
|
2102 |
-
|
2103 |
-
|
2104 |
-
|
2105 |
-
|
2106 |
-
|
2107 |
-
|
2108 |
-
|
2109 |
-
|
2110 |
-
|
2111 |
-
|
2112 |
-
|
2113 |
-
|
2114 |
-
|
2115 |
-
|
2116 |
-
|
2117 |
-
|
2118 |
-
|
2119 |
-
|
2120 |
-
|
2121 |
-
|
2122 |
-
|
2123 |
-
|
2124 |
-
|
2125 |
-
|
2126 |
-
|
2127 |
-
|
2128 |
-
|
2129 |
-
|
2130 |
-
|
2131 |
-
|
2132 |
-
|
2133 |
-
|
2134 |
-
|
2135 |
-
|
2136 |
-
|
2137 |
-
|
2138 |
-
|
2139 |
-
|
2140 |
-
|
2141 |
-
|
2142 |
-
|
2143 |
-
|
2144 |
-
|
2145 |
-
|
2146 |
-
|
2147 |
-
|
2148 |
-
|
2149 |
-
|
2150 |
-
|
2151 |
-
|
2152 |
-
|
2153 |
-
|
2154 |
-
|
2155 |
-
|
2156 |
-
|
2157 |
-
|
2158 |
-
|
2159 |
-
|
2160 |
-
|
2161 |
-
|
2162 |
-
|
2163 |
-
|
2164 |
-
|
2165 |
-
|
2166 |
-
|
2167 |
-
|
2168 |
-
|
2169 |
-
|
2170 |
-
|
2171 |
-
|
2172 |
-
|
2173 |
-
|
2174 |
-
|
2175 |
-
|
2176 |
-
|
2177 |
-
|
2178 |
-
|
2179 |
-
|
2180 |
-
|
2181 |
-
|
2182 |
-
|
2183 |
-
|
2184 |
-
|
2185 |
-
|
2186 |
-
|
2187 |
-
*
|
2188 |
-
*
|
2189 |
-
* @
|
2190 |
-
* @
|
2191 |
-
* @
|
2192 |
-
|
2193 |
-
|
2194 |
-
|
2195 |
-
|
2196 |
-
if($
|
2197 |
-
$
|
2198 |
-
|
2199 |
-
|
2200 |
-
|
2201 |
-
|
2202 |
-
|
2203 |
-
|
2204 |
-
|
2205 |
-
|
2206 |
-
|
2207 |
-
|
2208 |
-
|
2209 |
-
|
2210 |
-
|
2211 |
-
|
2212 |
-
|
2213 |
-
|
2214 |
-
|
2215 |
-
|
2216 |
-
|
2217 |
-
|
2218 |
-
*
|
2219 |
-
*
|
2220 |
-
* @param
|
2221 |
-
*
|
2222 |
-
|
2223 |
-
|
2224 |
-
|
2225 |
-
|
2226 |
-
|
2227 |
-
|
2228 |
-
|
2229 |
-
|
2230 |
-
|
2231 |
-
|
2232 |
-
|
2233 |
-
|
2234 |
-
|
2235 |
-
|
2236 |
-
|
2237 |
-
|
2238 |
-
|
2239 |
-
|
2240 |
-
|
2241 |
-
|
2242 |
-
|
2243 |
-
|
2244 |
-
|
2245 |
-
|
2246 |
-
|
2247 |
-
|
2248 |
-
|
2249 |
-
|
2250 |
-
|
2251 |
-
|
2252 |
-
|
2253 |
-
|
2254 |
-
|
2255 |
-
|
2256 |
-
|
2257 |
-
|
2258 |
-
|
2259 |
-
|
2260 |
-
|
2261 |
-
|
2262 |
-
|
2263 |
-
|
2264 |
-
|
2265 |
-
|
2266 |
-
|
2267 |
-
|
2268 |
-
|
2269 |
-
|
2270 |
-
|
2271 |
-
|
2272 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Default sitemap core class
|
4 |
+
*
|
5 |
+
* @package Sitemap
|
6 |
+
* @author Arne Brachhold
|
7 |
+
* @since 4.0
|
8 |
+
*/
|
9 |
+
|
10 |
+
use function Bhittani\StarRating\functions\sanitize;
|
11 |
+
/**
|
12 |
+
* $Id: sitemap-core.php 935247 2014-06-19 17:13:03Z arnee $
|
13 |
+
*/
|
14 |
+
|
15 |
+
// Enable for dev! Good code doesn't generate any notices...
|
16 |
+
// error_reporting(E_ALL);
|
17 |
+
// ini_set('display_errors', 1); .
|
18 |
+
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Represents the status (successes and failures) of a ping process
|
22 |
+
*
|
23 |
+
* @author Arne Brachhold
|
24 |
+
* @package sitemap
|
25 |
+
* @since 3.0b5
|
26 |
+
*/
|
27 |
+
class GoogleSitemapGeneratorStatus {
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Var start time of building process .
|
31 |
+
*
|
32 |
+
* @var float $_start_time The start time of the building process .
|
33 |
+
*/
|
34 |
+
private $start_time = 0;
|
35 |
+
|
36 |
+
/**
|
37 |
+
* The end time of the building process.
|
38 |
+
*
|
39 |
+
* @var float $_end_time The end time of the building process
|
40 |
+
*/
|
41 |
+
private $end_time = 0;
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Holding an array with the results and information of the last ping .
|
45 |
+
*
|
46 |
+
* @var array Holding an array with the results and information of the last ping
|
47 |
+
*/
|
48 |
+
private $ping_results = array();
|
49 |
+
|
50 |
+
/**
|
51 |
+
* If the status should be saved to the database automatically .
|
52 |
+
*
|
53 |
+
* @var bool If the status should be saved to the database automatically
|
54 |
+
*/
|
55 |
+
private $auto_save = true;
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Constructs a new status ued for saving the ping results
|
59 |
+
*
|
60 |
+
* @param string $auto_save .
|
61 |
+
*/
|
62 |
+
public function __construct( $auto_save = true ) {
|
63 |
+
$this->start_time = microtime( true );
|
64 |
+
|
65 |
+
$this->auto_save = $auto_save;
|
66 |
+
|
67 |
+
if ( $auto_save ) {
|
68 |
+
|
69 |
+
$exists = get_option( 'sm_status' );
|
70 |
+
|
71 |
+
if ( false === $exists ) {
|
72 |
+
add_option( 'sm_status', '', '', 'no' );
|
73 |
+
}
|
74 |
+
$this->save();
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Saves the status back to the database
|
80 |
+
*/
|
81 |
+
public function save() {
|
82 |
+
update_option( 'sm_status', $this );
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Returns the last saved status object or null
|
87 |
+
*
|
88 |
+
* @return GoogleSitemapGeneratorStatus
|
89 |
+
*/
|
90 |
+
public static function load() {
|
91 |
+
$status = get_option( 'sm_status' );
|
92 |
+
if ( is_a( $status, 'GoogleSitemapGeneratorStatus' ) ) {
|
93 |
+
return $status;
|
94 |
+
} else {
|
95 |
+
return null;
|
96 |
+
}
|
97 |
+
}
|
98 |
+
|
99 |
+
/**
|
100 |
+
* Ends the ping process
|
101 |
+
*/
|
102 |
+
public function end() {
|
103 |
+
$this->end_time = microtime( true );
|
104 |
+
if ( $this->auto_save ) {
|
105 |
+
$this->save();
|
106 |
+
}
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Returns the duration of the ping process
|
111 |
+
*
|
112 |
+
* @return int
|
113 |
+
*/
|
114 |
+
public function get_duration() {
|
115 |
+
return round( $this->end_time - $this->start_time, 2 );
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Returns the time when the pings were started
|
120 |
+
*
|
121 |
+
* @return int
|
122 |
+
*/
|
123 |
+
public function get_start_time() {
|
124 |
+
return round( $this->start_time, 2 );
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* Start ping .
|
129 |
+
*
|
130 |
+
* @param string $service string The internal name of the ping service .
|
131 |
+
* @param string $url string The URL to ping .
|
132 |
+
* @param string $name string The display name of the service .
|
133 |
+
* @return void
|
134 |
+
*/
|
135 |
+
public function start_ping( $service, $url, $name = null ) {
|
136 |
+
$this->ping_results[ $service ] = array(
|
137 |
+
'start_time' => microtime( true ),
|
138 |
+
'end_time' => 0,
|
139 |
+
'success' => false,
|
140 |
+
'url' => $url,
|
141 |
+
'name' => $name ? $name : $service,
|
142 |
+
);
|
143 |
+
|
144 |
+
if ( $this->auto_save ) {
|
145 |
+
$this->save();
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* End ping .
|
151 |
+
*
|
152 |
+
* @param string $service string The internal name of the ping service .
|
153 |
+
* @param string $success boolean If the ping was successful .
|
154 |
+
* @return void
|
155 |
+
*/
|
156 |
+
public function end_ping( $service, $success ) {
|
157 |
+
$this->ping_results[ $service ]['end_time'] = microtime( true );
|
158 |
+
$this->ping_results[ $service ]['success'] = $success;
|
159 |
+
|
160 |
+
if ( $this->auto_save ) {
|
161 |
+
$this->save();
|
162 |
+
}
|
163 |
+
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* Returns the duration of the last ping of a specific ping service
|
167 |
+
*
|
168 |
+
* @param string $service string The internal name of the ping service .
|
169 |
+
* @return float
|
170 |
+
*/
|
171 |
+
public function get_ping_duration( $service ) {
|
172 |
+
$res = $this->ping_results[ $service ];
|
173 |
+
return round( $res['end_time'] - $res['start_time'], 2 );
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Returns the last result for a specific ping service
|
178 |
+
*
|
179 |
+
* @param string $service string The internal name of the ping service .
|
180 |
+
* @return array
|
181 |
+
*/
|
182 |
+
public function get_ping_result( $service ) {
|
183 |
+
return $this->ping_results[ $service ]['success'];
|
184 |
+
}
|
185 |
+
|
186 |
+
/**
|
187 |
+
* Returns the URL for a specific ping service
|
188 |
+
*
|
189 |
+
* @param string $service string The internal name of the ping service .
|
190 |
+
* @return array
|
191 |
+
*/
|
192 |
+
public function get_ping_url( $service ) {
|
193 |
+
return $this->ping_results[ $service ]['url'];
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Returns the name for a specific ping service
|
198 |
+
*
|
199 |
+
* @param string $service string The internal name of the ping service .
|
200 |
+
* @return array
|
201 |
+
*/
|
202 |
+
public function get_service_name( $service ) {
|
203 |
+
return $this->ping_results[ $service ]['name'];
|
204 |
+
}
|
205 |
+
|
206 |
+
/**
|
207 |
+
* Returns if a service was used in the last ping
|
208 |
+
*
|
209 |
+
* @param string $service string The internal name of the ping service .
|
210 |
+
* @return bool
|
211 |
+
*/
|
212 |
+
public function used_ping_service( $service ) {
|
213 |
+
return array_key_exists( $service, $this->ping_results );
|
214 |
+
}
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Returns the services which were used in the last ping
|
218 |
+
*
|
219 |
+
* @return array
|
220 |
+
*/
|
221 |
+
public function get_used_ping_services() {
|
222 |
+
return array_keys( $this->ping_results );
|
223 |
+
}
|
224 |
+
}
|
225 |
+
|
226 |
+
/**
|
227 |
+
* Represents an item in the page list
|
228 |
+
*
|
229 |
+
* @author Arne Brachhold
|
230 |
+
* @package sitemap
|
231 |
+
* @since 3.0
|
232 |
+
*/
|
233 |
+
class GoogleSitemapGeneratorPage {
|
234 |
+
|
235 |
+
/**
|
236 |
+
* Sets the URL or the relative path to the site dir of the page .
|
237 |
+
*
|
238 |
+
* @var string $_url Sets the URL or the relative path to the site dir of the page
|
239 |
+
*/
|
240 |
+
public $url;
|
241 |
+
|
242 |
+
/**
|
243 |
+
* Sets the priority of this page .
|
244 |
+
*
|
245 |
+
* @var float $_priority Sets the priority of this page
|
246 |
+
*/
|
247 |
+
public $priority;
|
248 |
+
|
249 |
+
/**
|
250 |
+
* Sets the chanfe frequency of the page. I want Enums! .
|
251 |
+
*
|
252 |
+
* @var string $_change_freq Sets the chanfe frequency of the page. I want Enums!
|
253 |
+
*/
|
254 |
+
public $change_freq;
|
255 |
+
|
256 |
+
/**
|
257 |
+
* Sets the last_mod date as a UNIX timestamp. .
|
258 |
+
*
|
259 |
+
* @var int $_last_mod Sets the last_mod date as a UNIX timestamp.
|
260 |
+
*/
|
261 |
+
public $last_mod;
|
262 |
+
|
263 |
+
/**
|
264 |
+
* Sets the post ID in case this item is a WordPress post or page .
|
265 |
+
*
|
266 |
+
* @var int $_post_id Sets the post ID in case this item is a WordPress post or page
|
267 |
+
*/
|
268 |
+
public $post_id;
|
269 |
+
|
270 |
+
/**
|
271 |
+
* Initialize a new page object
|
272 |
+
*
|
273 |
+
* @since 3.0
|
274 |
+
* @param string $url The URL or path of the file .
|
275 |
+
* @param float $priority The Priority of the page 0.0 to 1.0 .
|
276 |
+
* @param string $change_freq The change frequency like daily, hourly, weekly .
|
277 |
+
* @param int $last_mod The last mod date as a unix timestamp .
|
278 |
+
* @param int $post_id The post ID of this page .
|
279 |
+
*/
|
280 |
+
public function __construct( $url = '', $priority = 0.0, $change_freq = 'never', $last_mod = 0, $post_id = 0 ) {
|
281 |
+
$this->set_url( $url );
|
282 |
+
$this->set_priority( $priority );
|
283 |
+
$this->set_change_freq( $change_freq );
|
284 |
+
$this->set_last_mod( $last_mod );
|
285 |
+
$this->set_post_id( $post_id );
|
286 |
+
}
|
287 |
+
|
288 |
+
/**
|
289 |
+
* Returns the URL of the page
|
290 |
+
*
|
291 |
+
* @return string The URL
|
292 |
+
*/
|
293 |
+
public function get_url() {
|
294 |
+
return $this->url;
|
295 |
+
}
|
296 |
+
|
297 |
+
/**
|
298 |
+
* Sets the URL of the page
|
299 |
+
*
|
300 |
+
* @param string $url The new URL .
|
301 |
+
*/
|
302 |
+
public function set_url( $url ) {
|
303 |
+
$this->url = (string) $url;
|
304 |
+
}
|
305 |
+
|
306 |
+
/**
|
307 |
+
* Returns the priority of this page
|
308 |
+
*
|
309 |
+
* @return float the priority, from 0.0 to 1.0
|
310 |
+
*/
|
311 |
+
public function get_priority() {
|
312 |
+
return $this->priority;
|
313 |
+
}
|
314 |
+
|
315 |
+
/**
|
316 |
+
* Sets the priority of the page
|
317 |
+
*
|
318 |
+
* @param float $priority The new priority from 0.1 to 1.0 .
|
319 |
+
*/
|
320 |
+
public function set_priority( $priority ) {
|
321 |
+
$this->priority = floatval( $priority );
|
322 |
+
}
|
323 |
+
|
324 |
+
/**
|
325 |
+
* Returns the change frequency of the page
|
326 |
+
*
|
327 |
+
* @return string The change frequncy like hourly, weekly, monthly etc.
|
328 |
+
*/
|
329 |
+
public function get_change_freq() {
|
330 |
+
return $this->change_freq;
|
331 |
+
}
|
332 |
+
|
333 |
+
/**
|
334 |
+
* Sets the change frequency of the page
|
335 |
+
*
|
336 |
+
* @param string $change_freq The new change frequency .
|
337 |
+
*/
|
338 |
+
public function set_change_freq( $change_freq ) {
|
339 |
+
$this->change_freq = (string) $change_freq;
|
340 |
+
}
|
341 |
+
|
342 |
+
/**
|
343 |
+
* Returns the last mod of the page
|
344 |
+
*
|
345 |
+
* @return int The lastmod value in seconds
|
346 |
+
*/
|
347 |
+
public function get_last_mod() {
|
348 |
+
return $this->last_mod;
|
349 |
+
}
|
350 |
+
|
351 |
+
/**
|
352 |
+
* Sets the last mod of the page
|
353 |
+
*
|
354 |
+
* @param int $last_mod The lastmod of the page .
|
355 |
+
*/
|
356 |
+
public function set_last_mod( $last_mod ) {
|
357 |
+
$this->last_mod = intval( $last_mod );
|
358 |
+
}
|
359 |
+
|
360 |
+
/**
|
361 |
+
* Returns the ID of the post
|
362 |
+
*
|
363 |
+
* @return int The post ID
|
364 |
+
*/
|
365 |
+
public function get_post_id() {
|
366 |
+
return $this->post_id;
|
367 |
+
}
|
368 |
+
|
369 |
+
/**
|
370 |
+
* Sets the ID of the post
|
371 |
+
*
|
372 |
+
* @param int $post_id The new ID .
|
373 |
+
*/
|
374 |
+
public function set_post_id( $post_id ) {
|
375 |
+
$this->post_id = intval( $post_id );
|
376 |
+
}
|
377 |
+
|
378 |
+
/**
|
379 |
+
* Render method .
|
380 |
+
*/
|
381 |
+
public function render() {
|
382 |
+
|
383 |
+
if ( '/' === $this->url || empty( $this->url ) ) {
|
384 |
+
return '';
|
385 |
+
}
|
386 |
+
|
387 |
+
$r = '';
|
388 |
+
$r .= '\\t<url>\\n';
|
389 |
+
$r .= '\\t\\t<loc>' . $this->escape_xml( esc_url_raw( $this->url ) ) . '</loc>\\n';
|
390 |
+
if ( $this->last_mod > 0 ) {
|
391 |
+
$r .= '\\t\\t<lastmod>' . gmdate( 'Y-m-d\TH:i:s+00:00', $this->last_mod ) . '</lastmod>\\n';
|
392 |
+
}
|
393 |
+
if ( ! empty( $this->change_freq ) ) {
|
394 |
+
$r .= '\\t\\t<changefreq>' . $this->change_freq . '</changefreq>\\n';
|
395 |
+
}
|
396 |
+
if ( false !== $this->priority && '' !== $this->priority ) {
|
397 |
+
$r .= '\\t\\t<priority>' . number_format( $this->priority, 1 ) . '</priority>\\n';
|
398 |
+
}
|
399 |
+
$r .= '\\t</url>\\n';
|
400 |
+
return $r;
|
401 |
+
}
|
402 |
+
|
403 |
+
/**
|
404 |
+
* Escape xml .
|
405 |
+
*
|
406 |
+
* @param string $string .
|
407 |
+
*/
|
408 |
+
protected function escape_xml( $string ) {
|
409 |
+
return str_replace( array( '&', '"', '\'', '<', '>' ), array( '&', '"', ''', '<', '>' ), $string );
|
410 |
+
}
|
411 |
+
}
|
412 |
+
|
413 |
+
/**
|
414 |
+
* Represents an XML entry, like definitions
|
415 |
+
*
|
416 |
+
* @author Arne Brachhold
|
417 |
+
* @package sitemap
|
418 |
+
* @since 3.0
|
419 |
+
*/
|
420 |
+
class GoogleSitemapGeneratorXmlEntry {
|
421 |
+
|
422 |
+
/**
|
423 |
+
* Xml
|
424 |
+
*
|
425 |
+
* @var string $_xml .
|
426 |
+
*/
|
427 |
+
protected $xml;
|
428 |
+
|
429 |
+
/**
|
430 |
+
* Constructor function
|
431 |
+
*
|
432 |
+
* @param string $xml .
|
433 |
+
*/
|
434 |
+
public function __construct( $xml ) {
|
435 |
+
$this->xml = $xml;
|
436 |
+
}
|
437 |
+
|
438 |
+
/**
|
439 |
+
* Render function
|
440 |
+
*/
|
441 |
+
public function render() {
|
442 |
+
return $this->xml;
|
443 |
+
}
|
444 |
+
}
|
445 |
+
|
446 |
+
/**
|
447 |
+
* Represents an comment
|
448 |
+
*
|
449 |
+
* @author Arne Brachhold
|
450 |
+
* @package sitemap
|
451 |
+
* @since 3.0
|
452 |
+
* @uses GoogleSitemapGeneratorXmlEntry
|
453 |
+
*/
|
454 |
+
class GoogleSitemapGeneratorDebugEntry extends GoogleSitemapGeneratorXmlEntry {
|
455 |
+
/**
|
456 |
+
* Render function
|
457 |
+
*/
|
458 |
+
public function render() {
|
459 |
+
return '<!-- ' . $this->xml . " -->\n";
|
460 |
+
}
|
461 |
+
}
|
462 |
+
|
463 |
+
/**
|
464 |
+
* Represents an item in the sitemap
|
465 |
+
*
|
466 |
+
* @author Arne Brachhold
|
467 |
+
* @package sitemap
|
468 |
+
* @since 3.0
|
469 |
+
*/
|
470 |
+
class GoogleSitemapGeneratorSitemapEntry {
|
471 |
+
|
472 |
+
/**
|
473 |
+
* Sets the URL or the relative path to the site dir of the page .
|
474 |
+
*
|
475 |
+
* @var string $_url Sets the URL or the relative path to the site dir of the page
|
476 |
+
*/
|
477 |
+
protected $url;
|
478 |
+
|
479 |
+
/**
|
480 |
+
* Sets the last_mod date as a UNIX timestamp. .
|
481 |
+
*
|
482 |
+
* @var int $_last_mod Sets the last_mod date as a UNIX timestamp.
|
483 |
+
*/
|
484 |
+
protected $last_mod;
|
485 |
+
|
486 |
+
/**
|
487 |
+
* Returns the URL of the page
|
488 |
+
*
|
489 |
+
* @return string The URL
|
490 |
+
*/
|
491 |
+
public function get_url() {
|
492 |
+
return $this->url;
|
493 |
+
}
|
494 |
+
|
495 |
+
/**
|
496 |
+
* Sets the URL of the page
|
497 |
+
*
|
498 |
+
* @param string $url The new URL .
|
499 |
+
*/
|
500 |
+
public function set_url( $url ) {
|
501 |
+
$this->url = (string) $url;
|
502 |
+
}
|
503 |
+
|
504 |
+
/**
|
505 |
+
* Returns the last mod of the page
|
506 |
+
*
|
507 |
+
* @return int The lastmod value in seconds
|
508 |
+
*/
|
509 |
+
public function get_last_mod() {
|
510 |
+
return $this->last_mod;
|
511 |
+
}
|
512 |
+
|
513 |
+
/**
|
514 |
+
* Sets the last mod of the page
|
515 |
+
*
|
516 |
+
* @param int $last_mod The lastmod of the page .
|
517 |
+
*/
|
518 |
+
public function set_last_mod( $last_mod ) {
|
519 |
+
$this->last_mod = intval( $last_mod );
|
520 |
+
}
|
521 |
+
/**
|
522 |
+
* Constructor
|
523 |
+
*
|
524 |
+
* @param string $url .
|
525 |
+
* @param int $last_mod .
|
526 |
+
*/
|
527 |
+
public function __construct( $url = '', $last_mod = 0 ) {
|
528 |
+
$this->set_url( $url );
|
529 |
+
$this->set_last_mod( $last_mod );
|
530 |
+
}
|
531 |
+
/**
|
532 |
+
* Render function
|
533 |
+
*/
|
534 |
+
public function render() {
|
535 |
+
|
536 |
+
if ( '/' === $this->url || empty( $this->url ) ) {
|
537 |
+
return '';
|
538 |
+
}
|
539 |
+
|
540 |
+
$r = '';
|
541 |
+
$r .= '\\t<sitemap>\\n';
|
542 |
+
$r .= '\\t\\t<loc>' . $this->escape_xml( esc_url_raw( $this->url ) ) . '</loc>\\n';
|
543 |
+
if ( $this->last_mod > 0 ) {
|
544 |
+
$r .= '\\t\\t<lastmod>' . gmdate( 'Y-m-d\TH:i:s+00:00', $this->last_mod ) . '</lastmod>\\n';
|
545 |
+
}
|
546 |
+
$r .= '\\t</sitemap>\\n';
|
547 |
+
return $r;
|
548 |
+
}
|
549 |
+
|
550 |
+
/**
|
551 |
+
* Escape_xml function .
|
552 |
+
*
|
553 |
+
* @param string $string .
|
554 |
+
*/
|
555 |
+
protected function escape_xml( $string ) {
|
556 |
+
return str_replace( array( '&', '\'', '\'', '<', '>' ), array( '&', '"', ''', '<', '>' ), $string );
|
557 |
+
}
|
558 |
+
}
|
559 |
+
|
560 |
+
/**
|
561 |
+
* Interface for all priority providers
|
562 |
+
*
|
563 |
+
* @author Arne Brachhold
|
564 |
+
* @package sitemap
|
565 |
+
* @since 3.0
|
566 |
+
*/
|
567 |
+
interface Google_Sitemap_Generator_Prio_Provider_Base {
|
568 |
+
|
569 |
+
/**
|
570 |
+
* Initializes a new priority provider
|
571 |
+
*
|
572 |
+
* @param int $total_comments int The total number of comments of all posts .
|
573 |
+
* @param int $total_posts int The total number of posts .
|
574 |
+
* @since 3.0
|
575 |
+
*/
|
576 |
+
public function __construct( $total_comments, $total_posts );
|
577 |
+
|
578 |
+
/**
|
579 |
+
* Returns the (translated) name of this priority provider
|
580 |
+
*
|
581 |
+
* @since 3.0
|
582 |
+
* @return string The translated name
|
583 |
+
*/
|
584 |
+
public static function get_name();
|
585 |
+
|
586 |
+
/**
|
587 |
+
* Returns the (translated) description of this priority provider
|
588 |
+
*
|
589 |
+
* @since 3.0
|
590 |
+
* @return string The translated description
|
591 |
+
*/
|
592 |
+
public static function get_description();
|
593 |
+
|
594 |
+
/**
|
595 |
+
* Returns the priority for a specified post
|
596 |
+
*
|
597 |
+
* @param int $post_id int The ID of the post .
|
598 |
+
* @param int $comment_count int The number of comments for this post .
|
599 |
+
* @since 3.0
|
600 |
+
* @return int The calculated priority
|
601 |
+
*/
|
602 |
+
public function get_post_priority( $post_id, $comment_count );
|
603 |
+
}
|
604 |
+
|
605 |
+
/**
|
606 |
+
* Priority Provider which calculates the priority based on the number of comments
|
607 |
+
*
|
608 |
+
* @author Arne Brachhold
|
609 |
+
* @package sitemap
|
610 |
+
* @since 3.0
|
611 |
+
*/
|
612 |
+
class GoogleSitemapGeneratorPrioByCountProvider implements Google_Sitemap_Generator_Prio_Provider_Base {
|
613 |
+
|
614 |
+
/**
|
615 |
+
* The total number of comments of all posts .
|
616 |
+
*
|
617 |
+
* @var int $total_comments The total number of comments of all posts
|
618 |
+
*/
|
619 |
+
protected $total_comments = 0;
|
620 |
+
|
621 |
+
/**
|
622 |
+
* The total number of posts .
|
623 |
+
*
|
624 |
+
* @var int $total_posts The total number of posts
|
625 |
+
*/
|
626 |
+
protected $total_posts = 0;
|
627 |
+
|
628 |
+
/**
|
629 |
+
* Initializes a new priority provider
|
630 |
+
*
|
631 |
+
* @param int $total_comments int The total number of comments of all posts .
|
632 |
+
* @param int $total_posts int The total number of posts .
|
633 |
+
* @since 3.0
|
634 |
+
*/
|
635 |
+
public function __construct( $total_comments, $total_posts ) {
|
636 |
+
$this->total_comments = $total_comments;
|
637 |
+
$this->total_posts = $total_posts;
|
638 |
+
}
|
639 |
+
|
640 |
+
/**
|
641 |
+
* Returns the (translated) name of this priority provider
|
642 |
+
*
|
643 |
+
* @since 3.0
|
644 |
+
* @return string The translated name
|
645 |
+
*/
|
646 |
+
public static function get_name() {
|
647 |
+
return __( 'Comment Count', 'sitemap' );
|
648 |
+
}
|
649 |
+
|
650 |
+
/**
|
651 |
+
* Returns the (translated) description of this priority provider
|
652 |
+
*
|
653 |
+
* @since 3.0
|
654 |
+
* @return string The translated description
|
655 |
+
*/
|
656 |
+
public static function get_description() {
|
657 |
+
return __( 'Uses the number of comments of the post to calculate the priority', 'sitemap' );
|
658 |
+
}
|
659 |
+
|
660 |
+
/**
|
661 |
+
* Returns the priority for a specified post
|
662 |
+
*
|
663 |
+
* @param int $post_id int The ID of the post .
|
664 |
+
* @param int $comment_count int The number of comments for this post .
|
665 |
+
* @since 3.0
|
666 |
+
* @return int The calculated priority
|
667 |
+
*/
|
668 |
+
public function get_post_priority( $post_id, $comment_count ) {
|
669 |
+
if ( $this->total_comments > 0 && $comment_count > 0 ) {
|
670 |
+
return round( ( $comment_count * 100 / $this->total_comments ) / 100, 1 );
|
671 |
+
} else {
|
672 |
+
return 0;
|
673 |
+
}
|
674 |
+
}
|
675 |
+
}
|
676 |
+
|
677 |
+
/**
|
678 |
+
* Priority Provider which calculates the priority based on the average number of comments
|
679 |
+
*
|
680 |
+
* @author Arne Brachhold
|
681 |
+
* @package sitemap
|
682 |
+
* @since 3.0
|
683 |
+
*/
|
684 |
+
class GoogleSitemapGeneratorPrioByAverageProvider implements Google_Sitemap_Generator_Prio_Provider_Base {
|
685 |
+
|
686 |
+
|
687 |
+
/**
|
688 |
+
* The total number of comments of all posts .
|
689 |
+
*
|
690 |
+
* @var int $total_comments The total number of comments of all posts
|
691 |
+
*/
|
692 |
+
protected $total_comments = 0;
|
693 |
+
|
694 |
+
/**
|
695 |
+
* The total number of posts .
|
696 |
+
*
|
697 |
+
* @var int $total_comments The total number of posts
|
698 |
+
*/
|
699 |
+
protected $total_posts = 0;
|
700 |
+
|
701 |
+
/**
|
702 |
+
* The average number of comments per post .
|
703 |
+
*
|
704 |
+
* @var int $average The average number of comments per post
|
705 |
+
*/
|
706 |
+
protected $average = 0.0;
|
707 |
+
|
708 |
+
/**
|
709 |
+
* Returns the (translated) name of this priority provider
|
710 |
+
*
|
711 |
+
* @since 3.0
|
712 |
+
* @return string The translated name
|
713 |
+
*/
|
714 |
+
public static function get_name() {
|
715 |
+
return __( 'Comment Average', 'sitemap' );
|
716 |
+
}
|
717 |
+
|
718 |
+
/**
|
719 |
+
* Returns the (translated) description of this priority provider
|
720 |
+
*
|
721 |
+
* @since 3.0
|
722 |
+
* @return string The translated description
|
723 |
+
*/
|
724 |
+
public static function get_description() {
|
725 |
+
return __( 'Uses the average comment count to calculate the priority', 'sitemap' );
|
726 |
+
}
|
727 |
+
|
728 |
+
/**
|
729 |
+
* Initializes a new priority provider which calculates the post priority based on the average number of comments
|
730 |
+
*
|
731 |
+
* @param int $total_comments int The total number of comments of all posts .
|
732 |
+
* @param int $total_posts int The total number of posts .
|
733 |
+
* @since 3.0
|
734 |
+
*/
|
735 |
+
public function __construct( $total_comments, $total_posts ) {
|
736 |
+
|
737 |
+
$this->total_comments = $total_comments;
|
738 |
+
$this->total_posts = $total_posts;
|
739 |
+
|
740 |
+
if ( $this->total_comments > 0 && $this->total_posts > 0 ) {
|
741 |
+
$this->average = (float) $this->total_comments / $this->total_posts;
|
742 |
+
}
|
743 |
+
}
|
744 |
+
|
745 |
+
/**
|
746 |
+
* Returns the priority for a specified post
|
747 |
+
*
|
748 |
+
* @param int $post_id int The ID of the post .
|
749 |
+
* @param int $comment_count int The number of comments for this post .
|
750 |
+
* @since 3.0
|
751 |
+
* @return int The calculated priority
|
752 |
+
*/
|
753 |
+
public function get_post_priority( $post_id, $comment_count ) {
|
754 |
+
|
755 |
+
// Do not divide by zero !
|
756 |
+
if ( 0 === $this->average ) {
|
757 |
+
if ( $comment_count > 0 ) {
|
758 |
+
$priority = 1;
|
759 |
+
} else {
|
760 |
+
$priority = 0;
|
761 |
+
}
|
762 |
+
} else {
|
763 |
+
$priority = $comment_count / $this->average;
|
764 |
+
if ( $priority > 1 ) {
|
765 |
+
$priority = 1;
|
766 |
+
} elseif ( $priority < 0 ) {
|
767 |
+
$priority = 0;
|
768 |
+
}
|
769 |
+
}
|
770 |
+
|
771 |
+
return round( $priority, 1 );
|
772 |
+
}
|
773 |
+
}
|
774 |
+
|
775 |
+
/**
|
776 |
+
* Class to generate a sitemaps.org Sitemaps compliant sitemap of a WordPress site.
|
777 |
+
*
|
778 |
+
* @package sitemap
|
779 |
+
* @author Arne Brachhold
|
780 |
+
* @since 3.0
|
781 |
+
*/
|
782 |
+
final class GoogleSitemapGenerator {
|
783 |
+
/**
|
784 |
+
* The unserialized array with the stored options .
|
785 |
+
*
|
786 |
+
* @var array The unserialized array with the stored options
|
787 |
+
*/
|
788 |
+
private $options = array();
|
789 |
+
|
790 |
+
/**
|
791 |
+
* The saved additional pages .
|
792 |
+
*
|
793 |
+
* @var array The saved additional pages
|
794 |
+
*/
|
795 |
+
private $pages = array();
|
796 |
+
|
797 |
+
/**
|
798 |
+
* The values and names of the change frequencies .
|
799 |
+
*
|
800 |
+
* @var array The values and names of the change frequencies
|
801 |
+
*/
|
802 |
+
private $freq_names = array();
|
803 |
+
|
804 |
+
/**
|
805 |
+
* A list of class names which my be called for priority calculation .
|
806 |
+
*
|
807 |
+
* @var array A list of class names which my be called for priority calculation
|
808 |
+
*/
|
809 |
+
private $prio_providers = array();
|
810 |
+
|
811 |
+
/**
|
812 |
+
* True if init complete (options loaded etc) .
|
813 |
+
*
|
814 |
+
* @var bool True if init complete (options loaded etc)
|
815 |
+
*/
|
816 |
+
private $is_initiated = false;
|
817 |
+
|
818 |
+
/**
|
819 |
+
* Defines if the sitemap building process is active at the moment .
|
820 |
+
*
|
821 |
+
* @var bool Defines if the sitemap building process is active at the moment
|
822 |
+
*/
|
823 |
+
private $is_active = false;
|
824 |
+
|
825 |
+
/**
|
826 |
+
* Holds options like output format and compression for the current request .
|
827 |
+
*
|
828 |
+
* @var array Holds options like output format and compression for the current request
|
829 |
+
*/
|
830 |
+
private $build_options = array();
|
831 |
+
|
832 |
+
/**
|
833 |
+
* Holds the user interface object
|
834 |
+
*
|
835 |
+
* @since 3.1.1
|
836 |
+
* @var GoogleSitemapGeneratorUI
|
837 |
+
*/
|
838 |
+
private $ui = null;
|
839 |
+
|
840 |
+
/**
|
841 |
+
* Defines if the simulation mode is on. In this case, data is not echoed but saved instead.
|
842 |
+
*
|
843 |
+
* @var boolean
|
844 |
+
*/
|
845 |
+
private $sim_mode = false;
|
846 |
+
|
847 |
+
/**
|
848 |
+
* Holds the data if simulation mode is on
|
849 |
+
*
|
850 |
+
* @var array
|
851 |
+
*/
|
852 |
+
private $sim_data = array(
|
853 |
+
'sitemaps' => array(),
|
854 |
+
'content' => array(),
|
855 |
+
);
|
856 |
+
|
857 |
+
/**
|
858 |
+
* Defines if the options have been loaded.
|
859 |
+
*
|
860 |
+
* @var bool Defines if the options have been loaded
|
861 |
+
*/
|
862 |
+
private $options_loaded = false;
|
863 |
+
|
864 |
+
|
865 |
+
/*************************************** CONSTRUCTION AND INITIALIZING ***************************************/
|
866 |
+
|
867 |
+
/**
|
868 |
+
* Initializes a new Google Sitemap Generator
|
869 |
+
*
|
870 |
+
* @since 4.0
|
871 |
+
*/
|
872 |
+
private function __construct() {
|
873 |
+
}
|
874 |
+
|
875 |
+
/**
|
876 |
+
* Returns the instance of the Sitemap Generator
|
877 |
+
*
|
878 |
+
* @since 3.0
|
879 |
+
* @return GoogleSitemapGenerator The instance or null if not available.
|
880 |
+
*/
|
881 |
+
public static function get_instance() {
|
882 |
+
if ( isset( $GLOBALS['sm_instance'] ) ) {
|
883 |
+
return $GLOBALS['sm_instance'];
|
884 |
+
} else {
|
885 |
+
return null;
|
886 |
+
}
|
887 |
+
}
|
888 |
+
|
889 |
+
/**
|
890 |
+
* Enables the Google Sitemap Generator and registers the WordPress hooks
|
891 |
+
*
|
892 |
+
* @since 3.0
|
893 |
+
*/
|
894 |
+
public static function enable() {
|
895 |
+
if ( ! isset( $GLOBALS['sm_instance'] ) ) {
|
896 |
+
$GLOBALS['sm_instance'] = new GoogleSitemapGenerator();
|
897 |
+
}
|
898 |
+
}
|
899 |
+
|
900 |
+
/**
|
901 |
+
* Loads up the configuration and validates the prioity providers
|
902 |
+
*
|
903 |
+
* This method is only called if the sitemaps needs to be build or the admin page is displayed.
|
904 |
+
*
|
905 |
+
* @since 3.0
|
906 |
+
*/
|
907 |
+
public function initate() {
|
908 |
+
if ( ! $this->is_initiated ) {
|
909 |
+
|
910 |
+
load_plugin_textdomain( 'sitemap', false, dirname( plugin_basename( __FILE__ ) ) . '/lang' );
|
911 |
+
|
912 |
+
$this->freq_names = array(
|
913 |
+
'always' => __( 'Always', 'sitemap' ),
|
914 |
+
'hourly' => __( 'Hourly', 'sitemap' ),
|
915 |
+
'daily' => __( 'Daily', 'sitemap' ),
|
916 |
+
'weekly' => __( 'Weekly', 'sitemap' ),
|
917 |
+
'monthly' => __( 'Monthly', 'sitemap' ),
|
918 |
+
'yearly' => __( 'Yearly', 'sitemap' ),
|
919 |
+
'never' => __( 'Never', 'sitemap' ),
|
920 |
+
);
|
921 |
+
|
922 |
+
$this->load_options();
|
923 |
+
$this->load_pages();
|
924 |
+
|
925 |
+
// Register our own priority providers.
|
926 |
+
add_filter( 'sm_add_prio_provider', array( $this, 'add_default_prio_providers' ) );
|
927 |
+
|
928 |
+
// Let other plugins register their providers.
|
929 |
+
$r = apply_filters( 'sm_add_prio_provider', $this->prio_providers );
|
930 |
+
|
931 |
+
// Check if no plugin return null.
|
932 |
+
if ( null !== $r ) {
|
933 |
+
$this->prio_providers = $r;
|
934 |
+
}
|
935 |
+
|
936 |
+
$this->validate_prio_providers();
|
937 |
+
|
938 |
+
$this->is_initiated = true;
|
939 |
+
}
|
940 |
+
}
|
941 |
+
|
942 |
+
|
943 |
+
/*************************************** VERSION AND LINK HELPERS ***************************************/
|
944 |
+
|
945 |
+
/**
|
946 |
+
* Returns the version of the generator
|
947 |
+
*
|
948 |
+
* @since 3.0
|
949 |
+
* @return int The version
|
950 |
+
*/
|
951 |
+
public static function get_version() {
|
952 |
+
return GoogleSitemapGeneratorLoader::get_version();
|
953 |
+
}
|
954 |
+
|
955 |
+
/**
|
956 |
+
* Returns the SVN version of the generator
|
957 |
+
*
|
958 |
+
* @since 4.0
|
959 |
+
* @return string The SVN version string
|
960 |
+
*/
|
961 |
+
public static function get_svn_version() {
|
962 |
+
return GoogleSitemapGeneratorLoader::get_svn_version();
|
963 |
+
}
|
964 |
+
|
965 |
+
/**
|
966 |
+
* Returns a link pointing to a specific page of the authors website
|
967 |
+
*
|
968 |
+
* @since 3.0
|
969 |
+
* @param string $redir string The to link to .
|
970 |
+
* @return string The full url
|
971 |
+
*/
|
972 |
+
public static function get_redirect_link( $redir ) {
|
973 |
+
return trailingslashit( 'http://url.auctollo.com/' . $redir );
|
974 |
+
}
|
975 |
+
|
976 |
+
/**
|
977 |
+
* Returns a link pointing back to the plugin page in WordPress
|
978 |
+
*
|
979 |
+
* @since 3.0
|
980 |
+
* @param string $extra .
|
981 |
+
* @return string The full url
|
982 |
+
*/
|
983 |
+
public static function get_back_link( $extra = '' ) {
|
984 |
+
global $wp_version;
|
985 |
+
$url = admin_url( 'options-general.php?page=' . GoogleSitemapGeneratorLoader::get_base_name() . $extra );
|
986 |
+
return $url;
|
987 |
+
}
|
988 |
+
|
989 |
+
/**
|
990 |
+
* Converts a mysql datetime value into a unix timestamp
|
991 |
+
*
|
992 |
+
* @param string $mysql_date_time string The timestamp in the mysql datetime format .
|
993 |
+
* @return int The time in seconds
|
994 |
+
*/
|
995 |
+
public static function get_timestamp_from_my_sql( $mysql_date_time ) {
|
996 |
+
list( $date, $hours) = explode( ' ', $mysql_date_time );
|
997 |
+
list( $year, $month, $day) = explode( '-', $date );
|
998 |
+
list( $hour, $min, $sec) = explode( ':', $hours );
|
999 |
+
return mktime( intval( $hour ), intval( $min ), intval( $sec ), intval( $month ), intval( $day ), intval( $year ) );
|
1000 |
+
}
|
1001 |
+
|
1002 |
+
|
1003 |
+
/*************************************** SIMPLE GETTERS ***************************************/
|
1004 |
+
|
1005 |
+
/**
|
1006 |
+
* Returns the names for the frequency values
|
1007 |
+
*
|
1008 |
+
* @return array
|
1009 |
+
*/
|
1010 |
+
public function get_freq_names() {
|
1011 |
+
return $this->freq_names;
|
1012 |
+
}
|
1013 |
+
|
1014 |
+
/**
|
1015 |
+
* Returns if the site is running in multi site mode
|
1016 |
+
*
|
1017 |
+
* @since 4.0
|
1018 |
+
* @return bool
|
1019 |
+
*/
|
1020 |
+
public function is_multi_site() {
|
1021 |
+
return ( function_exists( 'is_multisite' ) && is_multisite() );
|
1022 |
+
}
|
1023 |
+
|
1024 |
+
/**
|
1025 |
+
* Returns if the sitemap building process is currently active
|
1026 |
+
*
|
1027 |
+
* @since 3.0
|
1028 |
+
* @return bool true if active
|
1029 |
+
*/
|
1030 |
+
public function is_active() {
|
1031 |
+
$inst = self::get_instance();
|
1032 |
+
return ( null !== $inst && $inst->is_active );
|
1033 |
+
}
|
1034 |
+
|
1035 |
+
/**
|
1036 |
+
* Returns if the compressed sitemap was activated
|
1037 |
+
*
|
1038 |
+
* @since 3.0b8
|
1039 |
+
* @return true if compressed
|
1040 |
+
*/
|
1041 |
+
public function is_gzip_enabled() {
|
1042 |
+
return ( function_exists( 'gzwrite' ) && $this->get_option( 'b_autozip' ) );
|
1043 |
+
}
|
1044 |
+
|
1045 |
+
/**
|
1046 |
+
* Returns if the XML Dom and XSLT functions are enabled
|
1047 |
+
*
|
1048 |
+
* @since 4.0b1
|
1049 |
+
* @return true if compressed
|
1050 |
+
*/
|
1051 |
+
public function is_xsl_enabled() {
|
1052 |
+
return ( class_exists( 'DomDocument' ) && class_exists( 'XSLTProcessor' ) );
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
/**
|
1056 |
+
* Returns if Nginx is used as the server software
|
1057 |
+
*
|
1058 |
+
* @since 4.0.3
|
1059 |
+
*
|
1060 |
+
* @return bool
|
1061 |
+
*/
|
1062 |
+
public function is_nginx() {
|
1063 |
+
if ( isset( $_SERVER['SERVER_SOFTWARE'] ) && stristr( sanitize_text_field( wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) ), 'nginx' ) !== false ) {
|
1064 |
+
return true;
|
1065 |
+
}
|
1066 |
+
return false;
|
1067 |
+
}
|
1068 |
+
|
1069 |
+
|
1070 |
+
|
1071 |
+
/*************************************** TAXONOMIES AND CUSTOM POST TYPES ***************************************/
|
1072 |
+
|
1073 |
+
/**
|
1074 |
+
* Returns if this version of WordPress supports the new taxonomy system
|
1075 |
+
*
|
1076 |
+
* @since 3.0b8
|
1077 |
+
* @return true if supported
|
1078 |
+
*/
|
1079 |
+
public function is_taxonomy_supported() {
|
1080 |
+
return ( function_exists( 'get_taxonomy' ) && function_exists( 'get_terms' ) && function_exists( 'get_taxonomies' ) );
|
1081 |
+
}
|
1082 |
+
|
1083 |
+
/**
|
1084 |
+
* Returns the list of custom taxonomies. These are basically all taxonomies without categories and post tags
|
1085 |
+
*
|
1086 |
+
* @since 3.1.7
|
1087 |
+
* @return array Array of names of user-defined taxonomies
|
1088 |
+
*/
|
1089 |
+
public function get_custom_taxonomies() {
|
1090 |
+
$taxonomies = get_taxonomies( array( 'public' => 1 ) );
|
1091 |
+
return array_diff( $taxonomies, array( 'category', 'product_cat', 'post_tag', 'nav_menu', 'link_category', 'post_format' ) );
|
1092 |
+
}
|
1093 |
+
|
1094 |
+
/**
|
1095 |
+
* Returns if this version of WordPress supports custom post types
|
1096 |
+
*
|
1097 |
+
* @since 3.2.5
|
1098 |
+
* @return true if supported
|
1099 |
+
*/
|
1100 |
+
public function is_custom_post_types_supported() {
|
1101 |
+
return ( function_exists( 'get_post_types' ) && function_exists( 'register_post_type' ) );
|
1102 |
+
}
|
1103 |
+
|
1104 |
+
/**
|
1105 |
+
* Returns the list of custom post types. These are all custom post types except post, page and attachment
|
1106 |
+
*
|
1107 |
+
* @since 3.2.5
|
1108 |
+
* @return array Array of custom post types as per get_post_types
|
1109 |
+
*/
|
1110 |
+
public function get_custom_post_types() {
|
1111 |
+
$post_types = get_post_types( array( 'public' => 1 ) );
|
1112 |
+
$post_types = array_diff( $post_types, array( 'post', 'page', 'attachment' ) );
|
1113 |
+
return $post_types;
|
1114 |
+
}
|
1115 |
+
|
1116 |
+
|
1117 |
+
/**
|
1118 |
+
* Returns the list of active post types, built-in and custom ones.
|
1119 |
+
*
|
1120 |
+
* @since 4.0b5
|
1121 |
+
* @return array Array of custom post types as per get_post_types
|
1122 |
+
*/
|
1123 |
+
public function get_active_post_types() {
|
1124 |
+
|
1125 |
+
$cache_key = __CLASS__ . '::get_active_post_types';
|
1126 |
+
|
1127 |
+
$active_post_types = wp_cache_get( $cache_key, 'sitemap' );
|
1128 |
+
|
1129 |
+
if ( false === $active_post_types ) {
|
1130 |
+
$all_post_types = get_post_types();
|
1131 |
+
$enabled_post_types = $this->get_option( 'in_customtypes' );
|
1132 |
+
if ( $this->get_option( 'in_posts' ) ) {
|
1133 |
+
$enabled_post_types[] = 'post';
|
1134 |
+
}
|
1135 |
+
if ( $this->get_option( 'in_pages' ) ) {
|
1136 |
+
$enabled_post_types[] = 'page';
|
1137 |
+
}
|
1138 |
+
|
1139 |
+
$active_post_types = array();
|
1140 |
+
foreach ( $enabled_post_types as $post_type ) {
|
1141 |
+
if ( ! empty( $post_type ) && in_array( $post_type, $all_post_types, true ) ) {
|
1142 |
+
$active_post_types[] = $post_type;
|
1143 |
+
}
|
1144 |
+
}
|
1145 |
+
|
1146 |
+
wp_cache_set( $cache_key, $active_post_types, 'sitemap', 20 );
|
1147 |
+
}
|
1148 |
+
|
1149 |
+
return $active_post_types;
|
1150 |
+
}
|
1151 |
+
|
1152 |
+
/**
|
1153 |
+
* Returns an array with all excluded post IDs
|
1154 |
+
*
|
1155 |
+
* @since 4.0b11
|
1156 |
+
* @return int[] Array with excluded post IDs
|
1157 |
+
*/
|
1158 |
+
public function get_excluded_post_i_ds() {
|
1159 |
+
|
1160 |
+
$excludes = (array) $this->get_option( 'b_exclude' );
|
1161 |
+
|
1162 |
+
// Exclude front page page if defined .
|
1163 |
+
if ( get_option( 'show_on_front' ) === 'page' && get_option( 'page_on_front' ) ) {
|
1164 |
+
$excludes[] = get_option( 'page_on_front' );
|
1165 |
+
return $excludes;
|
1166 |
+
}
|
1167 |
+
return array_filter( array_map( 'intval', $excludes ), array( $this, 'is_greater_zero' ) );
|
1168 |
+
}
|
1169 |
+
|
1170 |
+
/**
|
1171 |
+
* Robots disallowed
|
1172 |
+
*/
|
1173 |
+
public function robots_disallowed() {
|
1174 |
+
|
1175 |
+
// parse url to retrieve host and path.
|
1176 |
+
$parsed = home_url();
|
1177 |
+
$rules = array();
|
1178 |
+
|
1179 |
+
// location of robots.txt file.
|
1180 |
+
try {
|
1181 |
+
if ( file_exists( $parsed . '/robots.txt' ) ) {
|
1182 |
+
$robotstxt = file( $parsed . '/robots.txt' );
|
1183 |
+
|
1184 |
+
} elseif ( file_exists( ABSPATH . '/robots.txt' ) ) {
|
1185 |
+
// if there isn't a robots, then we're allowed in.
|
1186 |
+
$robotstxt = file( ABSPATH . '/robots.txt' );
|
1187 |
+
|
1188 |
+
}
|
1189 |
+
} catch ( Exception $e ) {
|
1190 |
+
return $rules;
|
1191 |
+
}
|
1192 |
+
|
1193 |
+
if ( empty( $robotstxt ) ) {
|
1194 |
+
return $rules;
|
1195 |
+
}
|
1196 |
+
|
1197 |
+
foreach ( $robotstxt as $line ) {
|
1198 |
+
$line = trim( $line );
|
1199 |
+
// Skip blank lines .
|
1200 |
+
if ( ! $line ) {
|
1201 |
+
continue;
|
1202 |
+
}
|
1203 |
+
|
1204 |
+
if ( preg_match( '/^\s*Disallow:(.*)/i', $line, $regs ) ) {
|
1205 |
+
|
1206 |
+
// An empty rule implies full access - no further tests required .
|
1207 |
+
if ( ! $regs[1] ) {
|
1208 |
+
continue;
|
1209 |
+
}
|
1210 |
+
|
1211 |
+
// Add rules that apply to array for testing .
|
1212 |
+
$id = url_to_postid( home_url( trim( $regs[1] ) ) );
|
1213 |
+
if ( $id > 0 ) {
|
1214 |
+
$rules[] = $id;
|
1215 |
+
}
|
1216 |
+
}
|
1217 |
+
}
|
1218 |
+
|
1219 |
+
return $rules;
|
1220 |
+
}
|
1221 |
+
/**
|
1222 |
+
* Returns an array with all excluded category IDs.
|
1223 |
+
*
|
1224 |
+
* @since 4.0b11
|
1225 |
+
* @return int[] Array with excluded category IDs
|
1226 |
+
*/
|
1227 |
+
public function get_excluded_category_i_ds() {
|
1228 |
+
$excl_cats = (array) $this->get_option( 'b_exclude_cats' );
|
1229 |
+
return array_filter( array_map( 'intval', $excl_cats ), array( $this, 'is_greater_zero' ) );
|
1230 |
+
}
|
1231 |
+
|
1232 |
+
/*************************************** PRIORITY PROVIDERS ***************************************/
|
1233 |
+
|
1234 |
+
/**
|
1235 |
+
* Returns the list of PriorityProviders
|
1236 |
+
*
|
1237 |
+
* @return array
|
1238 |
+
*/
|
1239 |
+
public function get_prio_providers() {
|
1240 |
+
return $this->prio_providers;
|
1241 |
+
}
|
1242 |
+
|
1243 |
+
/**
|
1244 |
+
* Adds the default Priority Providers to the provider list
|
1245 |
+
*
|
1246 |
+
* @since 3.0
|
1247 |
+
* @param array $providers .
|
1248 |
+
* @return array
|
1249 |
+
*/
|
1250 |
+
public function add_default_prio_providers( $providers ) {
|
1251 |
+
array_push( $providers, 'GoogleSitemapGeneratorPrioByCountProvider' );
|
1252 |
+
array_push( $providers, 'GoogleSitemapGeneratorPrioByAverageProvider' );
|
1253 |
+
if ( class_exists( 'ak_popularity_contest' ) ) {
|
1254 |
+
array_push( $providers, 'GoogleSitemapGeneratorPrioByPopularityContestProvider' );
|
1255 |
+
}
|
1256 |
+
return $providers;
|
1257 |
+
}
|
1258 |
+
|
1259 |
+
/**
|
1260 |
+
* Validates all given Priority Providers by checking them for required methods and existence
|
1261 |
+
*
|
1262 |
+
* @since 3.0
|
1263 |
+
*/
|
1264 |
+
private function validate_prio_providers() {
|
1265 |
+
$valid_providers = array();
|
1266 |
+
$len = count( $this->prio_providers );
|
1267 |
+
for ( $i = 0; $i < $len; $i++ ) {
|
1268 |
+
if ( class_exists( $this->prio_providers[ $i ] ) ) {
|
1269 |
+
if ( class_implements( $this->prio_providers[ $i ], 'Google_Sitemap_Generator_Prio_Provider_Base' ) ) {
|
1270 |
+
array_push( $valid_providers, $this->prio_providers[ $i ] );
|
1271 |
+
}
|
1272 |
+
}
|
1273 |
+
}
|
1274 |
+
$this->prio_providers = $valid_providers;
|
1275 |
+
|
1276 |
+
if ( ! $this->get_option( 'b_prio_provider' ) ) {
|
1277 |
+
if ( ! in_array( $this->get_option( 'b_prio_provider' ), $this->prio_providers, true ) ) {
|
1278 |
+
$this->set_option( 'b_prio_provider', '' );
|
1279 |
+
}
|
1280 |
+
}
|
1281 |
+
}
|
1282 |
+
|
1283 |
+
|
1284 |
+
/*************************************** COMMENT HANDLING FOR PRIO. PROVIDERS ***************************************/
|
1285 |
+
|
1286 |
+
/**
|
1287 |
+
* Retrieves the number of comments of a post in a asso. array
|
1288 |
+
* The key is the post_id, the value the number of comments
|
1289 |
+
*
|
1290 |
+
* @since 3.0
|
1291 |
+
* @return array An array with post_ids and their comment count
|
1292 |
+
*/
|
1293 |
+
public function get_comments() {
|
1294 |
+
// @var $wpdb wpdb .
|
1295 |
+
global $wpdb;
|
1296 |
+
$comments = array();
|
1297 |
+
|
1298 |
+
// Query comments and add them into the array .
|
1299 |
+
$comment_res = $wpdb->get_results( 'SELECT `comment_post_ID` as `post_id`, COUNT( comment_ID ) as `comment_count` FROM `' . $wpdb->comments . '` WHERE `comment_approved`=\'1\' GROUP BY `comment_post_ID`' ); // db call ok; no-cache ok.
|
1300 |
+
if ( $comment_res ) {
|
1301 |
+
foreach ( $comment_res as $comment ) {
|
1302 |
+
$comments[ $comment->post_id ] = $comment->comment_count;
|
1303 |
+
}
|
1304 |
+
}
|
1305 |
+
return $comments;
|
1306 |
+
}
|
1307 |
+
|
1308 |
+
/**
|
1309 |
+
* Calculates the full number of comments from an sm_getComments() generated array
|
1310 |
+
*
|
1311 |
+
* @since 3.0
|
1312 |
+
* @param object $comments array The Array with posts and c0mment count .
|
1313 |
+
* @see sm_getComments
|
1314 |
+
* @return int The full number of comments
|
1315 |
+
*/
|
1316 |
+
public function get_comment_count( $comments ) {
|
1317 |
+
$comment_count = 0;
|
1318 |
+
foreach ( $comments as $k => $v ) {
|
1319 |
+
$comment_count += $v;
|
1320 |
+
}
|
1321 |
+
return $comment_count;
|
1322 |
+
}
|
1323 |
+
|
1324 |
+
|
1325 |
+
/*************************************** OPTION HANDLING ***************************************/
|
1326 |
+
|
1327 |
+
/**
|
1328 |
+
* Sets up the default configuration
|
1329 |
+
*
|
1330 |
+
* @since 3.0
|
1331 |
+
*/
|
1332 |
+
public function init_options() {
|
1333 |
+
|
1334 |
+
$this->options = array();
|
1335 |
+
$this->options['sm_b_prio_provider'] = 'GoogleSitemapGeneratorPrioByCountProvider'; // Provider for automatic priority calculation .
|
1336 |
+
$this->options['sm_b_ping'] = true; // Auto ping Google .
|
1337 |
+
$this->options['sm_b_stats'] = false; // Send anonymous stats .
|
1338 |
+
$this->options['sm_b_pingmsn'] = true; // Auto ping MSN .
|
1339 |
+
$this->options['sm_b_autozip'] = true; // Try to gzip the output .
|
1340 |
+
$this->options['sm_b_memory'] = ''; // Set Memory Limit (e.g. 16M) .
|
1341 |
+
$this->options['sm_b_time'] = -1; // Set time limit in seconds, 0 for unlimited, -1 for disabled .
|
1342 |
+
$this->options['sm_b_style_default'] = true; // Use default style .
|
1343 |
+
$this->options['sm_b_style'] = ''; // Include a stylesheet in the XML .
|
1344 |
+
$this->options['sm_b_baseurl'] = ''; // The base URL of the sitemap .
|
1345 |
+
$this->options['sm_b_robots'] = true; // Add sitemap location to WordPress' virtual robots.txt file .
|
1346 |
+
$this->options['sm_b_html'] = true; // Include a link to a html version of the sitemap in the XML sitemap .
|
1347 |
+
$this->options['sm_b_exclude'] = array(); // List of post / page IDs to exclude .
|
1348 |
+
$this->options['sm_b_exclude_cats'] = array(); // List of post / page IDs to exclude .
|
1349 |
+
|
1350 |
+
$this->options['sm_in_home'] = true; // Include homepage .
|
1351 |
+
$this->options['sm_in_posts'] = true; // Include posts .
|
1352 |
+
$this->options['sm_in_posts_sub'] = false; // Include post pages (<!--nextpage--> tag) .
|
1353 |
+
$this->options['sm_in_pages'] = true; // Include static pages .
|
1354 |
+
$this->options['sm_in_cats'] = false; // Include categories .
|
1355 |
+
$this->options['sm_product_tags'] = true; // Hide product tags in sitemap .
|
1356 |
+
$this->options['sm_in_product_cat'] = false; // Include product categories .
|
1357 |
+
$this->options['sm_in_arch'] = false; // Include archives .
|
1358 |
+
$this->options['sm_in_auth'] = false; // Include author pages .
|
1359 |
+
$this->options['sm_in_tags'] = false; // Include tag pages .
|
1360 |
+
$this->options['sm_in_tax'] = array(); // Include additional taxonomies .
|
1361 |
+
$this->options['sm_in_customtypes'] = array(); // Include custom post types .
|
1362 |
+
$this->options['sm_in_lastmod'] = true; // Include the last modification date .
|
1363 |
+
$this->options['sm_b_sitemap_name'] = 'sitemap'; // Name of custom sitemap.
|
1364 |
+
$this->options['sm_cf_home'] = 'daily'; // Change frequency of the homepage .
|
1365 |
+
$this->options['sm_cf_posts'] = 'monthly'; // Change frequency of posts .
|
1366 |
+
$this->options['sm_cf_pages'] = 'weekly'; // Change frequency of static pages .
|
1367 |
+
$this->options['sm_cf_cats'] = 'weekly'; // Change frequency of categories .
|
1368 |
+
$this->options['sm_cf_product_cat'] = 'weekly'; // Change frequency of categories .
|
1369 |
+
$this->options['sm_cf_auth'] = 'weekly'; // Change frequency of author pages .
|
1370 |
+
$this->options['sm_cf_arch_curr'] = 'daily'; // Change frequency of the current archive (this month) .
|
1371 |
+
$this->options['sm_cf_arch_old'] = 'yearly'; // Change frequency of older archives .
|
1372 |
+
$this->options['sm_cf_tags'] = 'weekly'; // Change frequency of tags .
|
1373 |
+
|
1374 |
+
$this->options['sm_pr_home'] = 1.0; // Priority of the homepage .
|
1375 |
+
$this->options['sm_pr_posts'] = 0.6; // Priority of posts (if auto prio is disabled) .
|
1376 |
+
$this->options['sm_pr_posts_min'] = 0.2; // Minimum Priority of posts, even if autocalc is enabled .
|
1377 |
+
$this->options['sm_pr_pages'] = 0.6; // Priority of static pages .
|
1378 |
+
$this->options['sm_pr_cats'] = 0.3; // Priority of categories .
|
1379 |
+
$this->options['sm_pr_product_cat'] = 0.3; // Priority of categories .
|
1380 |
+
$this->options['sm_pr_arch'] = 0.3; // Priority of archives .
|
1381 |
+
$this->options['sm_pr_auth'] = 0.3; // Priority of author pages .
|
1382 |
+
$this->options['sm_pr_tags'] = 0.3; // Priority of tags .
|
1383 |
+
|
1384 |
+
$this->options['sm_i_donated'] = false; // Did you donate? Thank you! :) .
|
1385 |
+
$this->options['sm_i_hide_donated'] = false; // And hide the thank you.. .
|
1386 |
+
$this->options['sm_i_install_date'] = time(); // The installation date .
|
1387 |
+
$this->options['sm_i_hide_survey'] = false; // Hide the survey note .
|
1388 |
+
$this->options['sm_i_hide_note'] = false; // Hide the note which appears after 30 days .
|
1389 |
+
$this->options['sm_i_hide_works'] = false; // Hide the 'works?' message which appears after 15 days .
|
1390 |
+
$this->options['sm_i_hide_donors'] = false; // Hide the list of donations .
|
1391 |
+
$this->options['sm_i_hash'] = substr( sha1( sha1( get_bloginfo( 'url' ) ) ), 0, 20 ); // Partial hash for GA stats, NOT identifiable! .
|
1392 |
+
$this->options['sm_i_tid'] = '';
|
1393 |
+
$this->options['sm_i_lastping'] = 0; // When was the last ping .
|
1394 |
+
$this->options['sm_i_supportfeed'] = true; // shows the support feed .
|
1395 |
+
$this->options['sm_i_supportfeed_cache'] = 0; // Last refresh of support feed .
|
1396 |
+
$this->options['sm_links_page'] = 10; // Link per page support with default value 10. .
|
1397 |
+
}
|
1398 |
+
|
1399 |
+
/**
|
1400 |
+
* Loads the configuration from the database
|
1401 |
+
*
|
1402 |
+
* @since 3.0
|
1403 |
+
*/
|
1404 |
+
private function load_options() {
|
1405 |
+
|
1406 |
+
if ( $this->options_loaded ) {
|
1407 |
+
return;
|
1408 |
+
}
|
1409 |
+
|
1410 |
+
$this->init_options();
|
1411 |
+
|
1412 |
+
// First init default values, then overwrite it with stored values so we can add default
|
1413 |
+
// values with an update which get stored by the next edit.
|
1414 |
+
$stored_options = get_option( 'sm_options' );
|
1415 |
+
|
1416 |
+
if ( $stored_options && is_array( $stored_options ) ) {
|
1417 |
+
foreach ( $stored_options as $k => $v ) {
|
1418 |
+
if ( array_key_exists( $k, $this->options ) ) {
|
1419 |
+
$this->options[ $k ] = $v;
|
1420 |
+
}
|
1421 |
+
}
|
1422 |
+
} else {
|
1423 |
+
update_option( 'sm_options', $this->options ); // First time use, store default values .
|
1424 |
+
}
|
1425 |
+
|
1426 |
+
$this->options_loaded = true;
|
1427 |
+
}
|
1428 |
+
|
1429 |
+
/**
|
1430 |
+
* Returns the option value for the given key
|
1431 |
+
*
|
1432 |
+
* @since 3.0
|
1433 |
+
* @param string $key string The Configuration Key .
|
1434 |
+
* @return mixed The value
|
1435 |
+
*/
|
1436 |
+
public function get_option( $key ) {
|
1437 |
+
$key = 'sm_' . $key;
|
1438 |
+
if ( array_key_exists( $key, $this->options ) ) {
|
1439 |
+
return $this->options[ $key ];
|
1440 |
+
} else {
|
1441 |
+
return null;
|
1442 |
+
}
|
1443 |
+
}
|
1444 |
+
/**
|
1445 |
+
* Get options .
|
1446 |
+
*/
|
1447 |
+
public function get_options() {
|
1448 |
+
return $this->options;
|
1449 |
+
}
|
1450 |
+
|
1451 |
+
/**
|
1452 |
+
* Sets an option to a new value
|
1453 |
+
*
|
1454 |
+
* @since 3.0
|
1455 |
+
* @param string $key string The configuration key .
|
1456 |
+
* @param string $value mixed The new object .
|
1457 |
+
*/
|
1458 |
+
public function set_option( $key, $value ) {
|
1459 |
+
if ( 0 !== strpos( $key, 'sm_' ) ) {
|
1460 |
+
$key = 'sm_' . $key;
|
1461 |
+
}
|
1462 |
+
|
1463 |
+
$this->options[ $key ] = $value;
|
1464 |
+
}
|
1465 |
+
|
1466 |
+
/**
|
1467 |
+
* Saves the options back to the database
|
1468 |
+
*
|
1469 |
+
* @since 3.0
|
1470 |
+
* @return bool true on success
|
1471 |
+
*/
|
1472 |
+
public function save_options() {
|
1473 |
+
$oldvalue = get_option( 'sm_options' );
|
1474 |
+
if ( $oldvalue === $this->options ) {
|
1475 |
+
return true;
|
1476 |
+
} else {
|
1477 |
+
return update_option( 'sm_options', $this->options );
|
1478 |
+
}
|
1479 |
+
}
|
1480 |
+
|
1481 |
+
/**
|
1482 |
+
* Returns the additional pages
|
1483 |
+
*
|
1484 |
+
* @since 4.0
|
1485 |
+
* @return GoogleSitemapGeneratorPage[]
|
1486 |
+
*/
|
1487 |
+
public function get_pages() {
|
1488 |
+
return $this->pages;
|
1489 |
+
}
|
1490 |
+
|
1491 |
+
/**
|
1492 |
+
* Returns the additional pages
|
1493 |
+
*
|
1494 |
+
* @since 4.0
|
1495 |
+
* @param array $pages .
|
1496 |
+
*/
|
1497 |
+
public function set_pages( array $pages ) {
|
1498 |
+
$this->pages = $pages;
|
1499 |
+
}
|
1500 |
+
|
1501 |
+
/**
|
1502 |
+
* Loads the stored pages from the database
|
1503 |
+
*
|
1504 |
+
* @since 3.0
|
1505 |
+
*/
|
1506 |
+
private function load_pages() {
|
1507 |
+
// @var $wpdb wpdb .
|
1508 |
+
global $wpdb;
|
1509 |
+
|
1510 |
+
$needs_update = false;
|
1511 |
+
|
1512 |
+
$pages_string = $wpdb->get_var( "SELECT option_value FROM $wpdb->options WHERE option_name = 'sm_cpages'" ); // db call ok; no-cache ok.
|
1513 |
+
|
1514 |
+
// Class sm_page was renamed with 3.0 -> rename it in serialized value for compatibility .
|
1515 |
+
if ( ! empty( $pages_string ) && strpos( $pages_string, 'sm_page' ) !== false ) {
|
1516 |
+
$pages_string = str_replace( 'O:7:\'sm_page\'', 'O:26:\'GoogleSitemapGeneratorPage\'', $pages_string );
|
1517 |
+
$needs_update = true;
|
1518 |
+
}
|
1519 |
+
|
1520 |
+
if ( ! empty( $pages_string ) ) {
|
1521 |
+
$storedpages = unserialize( $pages_string );
|
1522 |
+
$this->pages = $storedpages;
|
1523 |
+
} else {
|
1524 |
+
$this->pages = array();
|
1525 |
+
}
|
1526 |
+
|
1527 |
+
if ( $needs_update ) {
|
1528 |
+
$this->save_pages();
|
1529 |
+
}
|
1530 |
+
}
|
1531 |
+
|
1532 |
+
/**
|
1533 |
+
* Saved the additional pages back to the database
|
1534 |
+
*
|
1535 |
+
* @since 3.0
|
1536 |
+
* @return true on success
|
1537 |
+
*/
|
1538 |
+
public function save_pages() {
|
1539 |
+
$oldvalue = get_option( 'sm_cpages' );
|
1540 |
+
if ( $oldvalue === $this->pages ) {
|
1541 |
+
return true;
|
1542 |
+
} else {
|
1543 |
+
delete_option( 'sm_cpages' );
|
1544 |
+
// Add the option, Note the autoload=false because when the autoload happens, our class GoogleSitemapGeneratorPage doesn't exist .
|
1545 |
+
add_option( 'sm_cpages', $this->pages, '', 'no' );
|
1546 |
+
return true;
|
1547 |
+
}
|
1548 |
+
}
|
1549 |
+
|
1550 |
+
|
1551 |
+
/*************************************** URL AND PATH FUNCTIONS ***************************************/
|
1552 |
+
|
1553 |
+
/**
|
1554 |
+
* Returns the URL to the directory where the plugin file is located
|
1555 |
+
*
|
1556 |
+
* @since 3.0b5
|
1557 |
+
* @return string The URL to the plugin directory
|
1558 |
+
*/
|
1559 |
+
public function get_plugin_url() {
|
1560 |
+
|
1561 |
+
$url = trailingslashit( plugins_url( '', __FILE__ ) );
|
1562 |
+
|
1563 |
+
return $url;
|
1564 |
+
}
|
1565 |
+
|
1566 |
+
/**
|
1567 |
+
* Returns the path to the directory where the plugin file is located
|
1568 |
+
*
|
1569 |
+
* @since 3.0b5
|
1570 |
+
* @return string The path to the plugin directory
|
1571 |
+
*/
|
1572 |
+
public function get_plugin_path() {
|
1573 |
+
$path = dirname( __FILE__ );
|
1574 |
+
return trailingslashit( str_replace( '\\', '/', $path ) );
|
1575 |
+
}
|
1576 |
+
|
1577 |
+
/**
|
1578 |
+
* Returns the URL to default XSLT style if it exists
|
1579 |
+
*
|
1580 |
+
* @since 3.0b5
|
1581 |
+
* @return string The URL to the default stylesheet, empty string if not available.
|
1582 |
+
*/
|
1583 |
+
public function get_default_style() {
|
1584 |
+
$p = $this->get_plugin_path();
|
1585 |
+
if ( file_exists( $p . 'sitemap.xsl' ) ) {
|
1586 |
+
$url = $this->get_plugin_url();
|
1587 |
+
// If called over the admin area using HTTPS, the stylesheet would also be https url, even if the site frontend is not.
|
1588 |
+
if ( substr( get_bloginfo( 'url' ), 0, 5 ) !== 'https' && substr( $url, 0, 5 ) === 'https' ) {
|
1589 |
+
$url = 'http' . substr( $url, 5 );
|
1590 |
+
}
|
1591 |
+
if ( isset( $_SERVER['HTTP_HOST'] ) ) {
|
1592 |
+
$host = sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) );
|
1593 |
+
}
|
1594 |
+
$url = $this->get_xsl_url( $url, $host );
|
1595 |
+
return $url . 'sitemap.xsl';
|
1596 |
+
}
|
1597 |
+
return '';
|
1598 |
+
}
|
1599 |
+
|
1600 |
+
/**
|
1601 |
+
* Returns of Permalinks are used
|
1602 |
+
*
|
1603 |
+
* @return bool
|
1604 |
+
*/
|
1605 |
+
public function is_using_permalinks() {
|
1606 |
+
// @var $wp_rewrite WP_Rewrite .
|
1607 |
+
global $wp_rewrite;
|
1608 |
+
|
1609 |
+
return $wp_rewrite->using_mod_rewrite_permalinks();
|
1610 |
+
}
|
1611 |
+
|
1612 |
+
/**
|
1613 |
+
* Registers the plugin specific rewrite rules
|
1614 |
+
*
|
1615 |
+
* Combined: sitemap(-+([a-zA-Z0-9_-]+))?\.(xml|html)(.gz)?$
|
1616 |
+
*
|
1617 |
+
* @since 4.0
|
1618 |
+
* @param string $wp_rules Array of existing rewrite rules.
|
1619 |
+
* @return Array An array containing the new rewrite rules.
|
1620 |
+
*/
|
1621 |
+
public static function add_rewrite_rules( $wp_rules ) {
|
1622 |
+
$sm_sitemap_name = $GLOBALS['sm_instance']->get_option( 'b_sitemap_name' );
|
1623 |
+
$sm_rules = array(
|
1624 |
+
$sm_sitemap_name . '(-+([a-zA-Z0-9_-]+))?\.xml$' => 'index.php?xml_sitemap=params=$matches[2]',
|
1625 |
+
$sm_sitemap_name . '(-+([a-zA-Z0-9_-]+))?\.xml\.gz$' => 'index.php?xml_sitemap=params=$matches[2];zip=true',
|
1626 |
+
$sm_sitemap_name . '(-+([a-zA-Z0-9_-]+))?\.html$' => 'index.php?xml_sitemap=params=$matches[2];html=true',
|
1627 |
+
$sm_sitemap_name . '(-+([a-zA-Z0-9_-]+))?\.html.gz$' => 'index.php?xml_sitemap=params=$matches[2];html=true;zip=true',
|
1628 |
+
);
|
1629 |
+
return array_merge( $sm_rules, $wp_rules );
|
1630 |
+
}
|
1631 |
+
|
1632 |
+
/**
|
1633 |
+
* Adds the filters for wp rewrite rule adding
|
1634 |
+
*
|
1635 |
+
* @since 4.0
|
1636 |
+
* @uses add_filter()
|
1637 |
+
*/
|
1638 |
+
public static function setup_rewrite_hooks() {
|
1639 |
+
add_filter( 'rewrite_rules_array', array( __CLASS__, 'add_rewrite_rules' ), 1, 1 );
|
1640 |
+
}
|
1641 |
+
/**
|
1642 |
+
* Removes the filters for wp rewrite rule adding
|
1643 |
+
*
|
1644 |
+
* @since 4.0
|
1645 |
+
* @uses remove_filter()
|
1646 |
+
*/
|
1647 |
+
public static function remove_rewrite_hooks() {
|
1648 |
+
add_filter( 'rewrite_rules_array', array( __CLASS__, 'remove_rewrite_rules' ), 1, 1 );
|
1649 |
+
}
|
1650 |
+
|
1651 |
+
/**
|
1652 |
+
* Deregisters the plugin specific rewrite rules
|
1653 |
+
*
|
1654 |
+
* Combined: sitemap(-+([a-zA-Z0-9_-]+))?\.(xml|html)(.gz)?$
|
1655 |
+
*
|
1656 |
+
* @since 4.0
|
1657 |
+
* @param array $wp_rules Array of existing rewrite rules.
|
1658 |
+
* @return Array An array containing the new rewrite rules
|
1659 |
+
*/
|
1660 |
+
public static function remove_rewrite_rules( $wp_rules ) {
|
1661 |
+
$sm_rules = array(
|
1662 |
+
'sitemap(-+([a-zA-Z0-9_-]+))?\.xml$' => 'index.php?xml_sitemap=params=$matches[2]',
|
1663 |
+
'sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$' => 'index.php?xml_sitemap=params=$matches[2];zip=true',
|
1664 |
+
'sitemap(-+([a-zA-Z0-9_-]+))?\.html$' => 'index.php?xml_sitemap=params=$matches[2];html=true',
|
1665 |
+
'sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$' => 'index.php?xml_sitemap=params=$matches[2];html=true;zip=true',
|
1666 |
+
);
|
1667 |
+
foreach ( $wp_rules as $key => $value ) {
|
1668 |
+
if ( array_key_exists( $key, $sm_rules ) ) {
|
1669 |
+
unset( $wp_rules[ $key ] );
|
1670 |
+
}
|
1671 |
+
}
|
1672 |
+
return $wp_rules;
|
1673 |
+
}
|
1674 |
+
|
1675 |
+
/**
|
1676 |
+
* Returns the URL for the sitemap file
|
1677 |
+
*
|
1678 |
+
* @since 3.0
|
1679 |
+
*
|
1680 |
+
* @param string $type .
|
1681 |
+
* @param string $params .
|
1682 |
+
* @param array $build_options .
|
1683 |
+
* @return string The URL to the Sitemap file
|
1684 |
+
*/
|
1685 |
+
public function get_xml_url( $type = '', $params = '', $build_options = array() ) {
|
1686 |
+
|
1687 |
+
$pl = $this->is_using_permalinks();
|
1688 |
+
$options = '';
|
1689 |
+
if ( ! empty( $type ) ) {
|
1690 |
+
$options .= $type;
|
1691 |
+
if ( ! empty( $params ) ) {
|
1692 |
+
$options .= '-' . $params;
|
1693 |
+
}
|
1694 |
+
}
|
1695 |
+
|
1696 |
+
$build_options = array_merge( $this->build_options, $build_options );
|
1697 |
+
|
1698 |
+
$html = ( isset( $build_options['html'] ) ? $build_options['html'] : false );
|
1699 |
+
$zip = ( isset( $build_options['zip'] ) ? $build_options['zip'] : false );
|
1700 |
+
|
1701 |
+
$base_url = get_bloginfo( 'url' );
|
1702 |
+
|
1703 |
+
// Manual override for root URL .
|
1704 |
+
$base_url_settings = $this->get_option( 'b_baseurl' );
|
1705 |
+
$sm_sitemap_name = $this->get_option( 'b_sitemap_name' );
|
1706 |
+
if ( ! empty( $base_url_settings ) ) {
|
1707 |
+
$base_url = $base_url_settings;
|
1708 |
+
} elseif ( defined( 'SM_BASE_URL' ) && SM_BASE_URL ) {
|
1709 |
+
$base_url = SM_BASE_URL;
|
1710 |
+
}
|
1711 |
+
global $wp_rewrite;
|
1712 |
+
delete_option( 'sm_rewrite_done' );
|
1713 |
+
wp_clear_scheduled_hook( 'sm_ping_daily' );
|
1714 |
+
self::remove_rewrite_hooks();
|
1715 |
+
$wp_rewrite->flush_rules( false );
|
1716 |
+
self::setup_rewrite_hooks();
|
1717 |
+
GoogleSitemapGeneratorLoader::activate_rewrite();
|
1718 |
+
if ( $pl ) {
|
1719 |
+
return trailingslashit( $base_url ) . ( '' === $sm_sitemap_name ? 'sitemap' : $sm_sitemap_name ) . ( $options ? '-' . $options : '' ) . ( $html
|
1720 |
+
? '.html' : '.xml' ) . ( $zip ? '.gz' : '' );
|
1721 |
+
} else {
|
1722 |
+
return trailingslashit( $base_url ) . 'index.php?xml_sitemap=params=' . $options . ( $html
|
1723 |
+
? ';html=true' : '' ) . ( $zip ? ';zip=true' : '' );
|
1724 |
+
}
|
1725 |
+
}
|
1726 |
+
|
1727 |
+
/**
|
1728 |
+
* Returns if there is still an old sitemap file in the site directory
|
1729 |
+
*
|
1730 |
+
* @return Boolean True if a sitemap file still exists
|
1731 |
+
*/
|
1732 |
+
public function old_file_exists() {
|
1733 |
+
$sm_sitemap_name = $this->get_option( 'b_sitemap_name' );
|
1734 |
+
$path = trailingslashit( get_home_path() );
|
1735 |
+
return ( file_exists( $path . $sm_sitemap_name . '.xml' ) || file_exists( $path . 'sitemap.xml.gz' ) );
|
1736 |
+
}
|
1737 |
+
|
1738 |
+
/**
|
1739 |
+
* Renames old sitemap files in the site directory from previous versions of this plugin
|
1740 |
+
*
|
1741 |
+
* @return bool True on success
|
1742 |
+
*/
|
1743 |
+
public function delete_old_files() {
|
1744 |
+
$path = trailingslashit( get_home_path() );
|
1745 |
+
|
1746 |
+
$res = true;
|
1747 |
+
$f = $path . 'sitemap.xml';
|
1748 |
+
if ( file_exists( $f ) ) {
|
1749 |
+
if ( ! rename( $f, $path . 'sitemap.backup.xml' ) ) {
|
1750 |
+
$res = false;
|
1751 |
+
}
|
1752 |
+
}
|
1753 |
+
$f = $path . 'sitemap.xml.gz';
|
1754 |
+
if ( file_exists( $f ) ) {
|
1755 |
+
if ( ! rename( $f, $path . 'sitemap.backup.xml.gz' ) ) {
|
1756 |
+
$res = false;
|
1757 |
+
}
|
1758 |
+
}
|
1759 |
+
|
1760 |
+
return $res;
|
1761 |
+
}
|
1762 |
+
|
1763 |
+
|
1764 |
+
/*************************************** SITEMAP SIMULATION ***************************************/
|
1765 |
+
|
1766 |
+
/**
|
1767 |
+
* Simulates the building of the sitemap index file.
|
1768 |
+
*
|
1769 |
+
* @see GoogleSitemapGenerator::simulate_sitemap
|
1770 |
+
* @since 4.0
|
1771 |
+
* @return array The data of the sitemap index file
|
1772 |
+
*/
|
1773 |
+
public function simulate_index() {
|
1774 |
+
|
1775 |
+
$this->sim_mode = true;
|
1776 |
+
|
1777 |
+
require_once trailingslashit( dirname( __FILE__ ) ) . 'class-googlesitemapgeneratorstandardbuilder.php';
|
1778 |
+
do_action( 'sm_build_index', $this );
|
1779 |
+
|
1780 |
+
$this->sim_mode = false;
|
1781 |
+
|
1782 |
+
$r = $this->sim_data['sitemaps'];
|
1783 |
+
|
1784 |
+
$this->clear_sim_data( 'sitemaps' );
|
1785 |
+
|
1786 |
+
return $r;
|
1787 |
+
}
|
1788 |
+
|
1789 |
+
/**
|
1790 |
+
* Simulates the building of the sitemap file.
|
1791 |
+
*
|
1792 |
+
* @see GoogleSitemapGenerator::simulate_index
|
1793 |
+
* @since 4.0
|
1794 |
+
* @param string $type string The type of the sitemap .
|
1795 |
+
* @param string $params string Additional parameters for this type .
|
1796 |
+
* @return array The data of the sitemap file
|
1797 |
+
*/
|
1798 |
+
public function simulate_sitemap( $type, $params ) {
|
1799 |
+
$this->sim_mode = true;
|
1800 |
+
|
1801 |
+
require_once trailingslashit( dirname( __FILE__ ) ) . 'class-googlesitemapgeneratorstandardbuilder.php';
|
1802 |
+
do_action( 'sm_build_content', $this, $type, $params );
|
1803 |
+
|
1804 |
+
$this->sim_mode = false;
|
1805 |
+
|
1806 |
+
$r = $this->sim_data['content'];
|
1807 |
+
|
1808 |
+
$this->clear_sim_data( 'content' );
|
1809 |
+
|
1810 |
+
return $r;
|
1811 |
+
}
|
1812 |
+
|
1813 |
+
/**
|
1814 |
+
* Clears the data of the simulation
|
1815 |
+
*
|
1816 |
+
* @param string $what Defines what to clear, either both, sitemaps or content .
|
1817 |
+
* @see GoogleSitemapGenerator::simulate_index
|
1818 |
+
* @see GoogleSitemapGenerator::simulate_sitemap
|
1819 |
+
* @since 4.0
|
1820 |
+
*/
|
1821 |
+
public function clear_sim_data( $what ) {
|
1822 |
+
if ( 'both' === $what || 'sitemaps' === $what ) {
|
1823 |
+
$this->sim_data['sitemaps'] = array();
|
1824 |
+
}
|
1825 |
+
|
1826 |
+
if ( 'both' === $what || 'content' === $what ) {
|
1827 |
+
$this->sim_data['content'] = array();
|
1828 |
+
}
|
1829 |
+
}
|
1830 |
+
|
1831 |
+
/**
|
1832 |
+
* Returns the first caller outside of this __CLASS__
|
1833 |
+
*
|
1834 |
+
* @param array $trace The backtrace .
|
1835 |
+
* @return array The caller information
|
1836 |
+
*/
|
1837 |
+
private function get_external_backtrace( $trace ) {
|
1838 |
+
$caller = null;
|
1839 |
+
foreach ( $trace as $b ) {
|
1840 |
+
if ( __CLASS__ !== $b['class'] ) {
|
1841 |
+
$caller = $b;
|
1842 |
+
break;
|
1843 |
+
}
|
1844 |
+
}
|
1845 |
+
return $caller;
|
1846 |
+
}
|
1847 |
+
|
1848 |
+
|
1849 |
+
/*************************************** SITEMAP BUILDING ***************************************/
|
1850 |
+
|
1851 |
+
/**
|
1852 |
+
* Shows the sitemap. Main entry point from HTTP
|
1853 |
+
*
|
1854 |
+
* @param string $options Options for the sitemap. What type, what parameters.
|
1855 |
+
* @since 4.0
|
1856 |
+
*/
|
1857 |
+
public function show_sitemap( $options ) {
|
1858 |
+
|
1859 |
+
$start_time = microtime( true );
|
1860 |
+
$start_queries = $GLOBALS['wpdb']->num_queries;
|
1861 |
+
$start_memory = memory_get_peak_usage( true );
|
1862 |
+
|
1863 |
+
// Raise memory and time limits .
|
1864 |
+
if ( $this->get_option( 'b_memory' ) !== '' ) {
|
1865 |
+
wp_raise_memory_limit( $this->get_option( 'b_memory' ) );
|
1866 |
+
|
1867 |
+
}
|
1868 |
+
|
1869 |
+
if ( $this->get_option( 'b_time' ) !== -1 ) {
|
1870 |
+
set_time_limit( $this->get_option( 'b_time' ) );
|
1871 |
+
}
|
1872 |
+
|
1873 |
+
do_action( 'sm_init', $this );
|
1874 |
+
|
1875 |
+
$this->is_active = true;
|
1876 |
+
|
1877 |
+
$parsed_options = array();
|
1878 |
+
|
1879 |
+
$options = explode( ';', $options );
|
1880 |
+
foreach ( $options as $k ) {
|
1881 |
+
$kv = explode( '=', $k );
|
1882 |
+
$parsed_options[ $kv[0] ] = $kv[1];
|
1883 |
+
}
|
1884 |
+
|
1885 |
+
$options = $parsed_options;
|
1886 |
+
|
1887 |
+
$this->build_options = $options;
|
1888 |
+
|
1889 |
+
// Do not index the actual XML pages, only process them.
|
1890 |
+
// This avoids that the XML sitemaps show up in the search results.
|
1891 |
+
if ( ! headers_sent() ) {
|
1892 |
+
header( 'X-Robots-Tag: noindex', true, 200 );
|
1893 |
+
}
|
1894 |
+
|
1895 |
+
$this->initate();
|
1896 |
+
|
1897 |
+
$html = ( isset( $options['html'] ) ? $options['html'] : false ) && $this->is_xsl_enabled();
|
1898 |
+
if ( $html && ! $this->get_option( 'b_html' ) ) {
|
1899 |
+
$GLOBALS['wp_query']->is_404 = true;
|
1900 |
+
return;
|
1901 |
+
}
|
1902 |
+
|
1903 |
+
// Don't zip if anything happened before which could break the output or if the client does not support gzip.
|
1904 |
+
// If there are already other output filters, there might be some content on another
|
1905 |
+
// filter level already, which we can't detect. Zipping then would lead to invalid content.
|
1906 |
+
$pack = ( isset( $options['zip'] ) ? $options['zip'] : $this->get_option( 'b_autozip' ) );
|
1907 |
+
if (
|
1908 |
+
empty( $_SERVER['HTTP_ACCEPT_ENCODING'] ) // No encoding support.
|
1909 |
+
|| strpos( sanitize_text_field( wp_unslash( $_SERVER['HTTP_ACCEPT_ENCODING'] ) ), 'gzip' ) === false // or no gzip.
|
1910 |
+
|| ! $this->is_gzip_enabled() // No PHP gzip support.
|
1911 |
+
|| headers_sent() // Headers already sent.
|
1912 |
+
|| ob_get_contents() // there was already some output....
|
1913 |
+
|| in_array( 'ob_gzhandler', ob_list_handlers(), true ) // Some other plugin (or PHP) is already gzipping.
|
1914 |
+
|| $this->get_php_ini_boolean( ini_get( 'zlib.output_compression' ) ) // Zlib compression in php.ini enabled.
|
1915 |
+
|| ob_get_level() > ( ! $this->get_php_ini_boolean( ini_get( 'output_buffering' ) ) ? 0 : 1 ) // Another output buffer (beside of the default one) is already active.
|
1916 |
+
|| ( isset( $_SERVER['HTTP_X_VARNISH'] ) && is_numeric( $_SERVER['HTTP_X_VARNISH'] ) ) // Behind a Varnish proxy.
|
1917 |
+
) {
|
1918 |
+
$pack = false;
|
1919 |
+
}
|
1920 |
+
|
1921 |
+
$packed = false;
|
1922 |
+
|
1923 |
+
if ( $pack ) {
|
1924 |
+
$packed = ob_start( 'ob_gzhandler' );
|
1925 |
+
}
|
1926 |
+
|
1927 |
+
$builders = array( 'class-googlesitemapgeneratorstandardbuilder.php' );
|
1928 |
+
foreach ( $builders as $b ) {
|
1929 |
+
$f = trailingslashit( dirname( __FILE__ ) ) . $b;
|
1930 |
+
if ( file_exists( $f ) ) {
|
1931 |
+
require_once $f;
|
1932 |
+
}
|
1933 |
+
}
|
1934 |
+
|
1935 |
+
if ( $html ) {
|
1936 |
+
ob_start();
|
1937 |
+
} else {
|
1938 |
+
header( 'Content-Type: text/xml; charset=utf-8' );
|
1939 |
+
}
|
1940 |
+
|
1941 |
+
if ( empty( $options['params'] ) || 'index' === $options['params'] ) {
|
1942 |
+
|
1943 |
+
$this->build_sitemap_header( 'index' );
|
1944 |
+
|
1945 |
+
do_action( 'sm_build_index', $this );
|
1946 |
+
|
1947 |
+
$this->build_sitemap_footer( 'index' );
|
1948 |
+
$this->add_end_commend( $start_time, $start_queries, $start_memory );
|
1949 |
+
} else {
|
1950 |
+
$all_params = $options['params'];
|
1951 |
+
$type = null;
|
1952 |
+
$params = null;
|
1953 |
+
if ( strpos( $all_params, '-' ) !== false ) {
|
1954 |
+
$type = substr( $all_params, 0, strpos( $all_params, '-' ) );
|
1955 |
+
$params = substr( $all_params, strpos( $all_params, '-' ) + 1 );
|
1956 |
+
} else {
|
1957 |
+
$type = $all_params;
|
1958 |
+
}
|
1959 |
+
|
1960 |
+
$this->build_sitemap_header( 'sitemap' );
|
1961 |
+
|
1962 |
+
do_action( 'sm_build_content', $this, $type, $params );
|
1963 |
+
|
1964 |
+
$this->build_sitemap_footer( 'sitemap' );
|
1965 |
+
|
1966 |
+
$this->add_end_commend( $start_time, $start_queries, $start_memory );
|
1967 |
+
}
|
1968 |
+
|
1969 |
+
if ( $html ) {
|
1970 |
+
$xml_source = ob_get_clean();
|
1971 |
+
|
1972 |
+
// Load the XML source.
|
1973 |
+
$xml = new DOMDocument();
|
1974 |
+
$xml->loadXML( $xml_source );
|
1975 |
+
|
1976 |
+
$xsl = new DOMDocument();
|
1977 |
+
$xsl->load( $this->get_plugin_path() . 'sitemap.xsl' );
|
1978 |
+
|
1979 |
+
// Configure the transformer.
|
1980 |
+
$proc = new XSLTProcessor();
|
1981 |
+
$proc->importStyleSheet( $xsl ); // Attach the xsl rules.
|
1982 |
+
|
1983 |
+
$dom_tran_obj = $proc->transformToDoc( $xml );
|
1984 |
+
|
1985 |
+
// This will also output doctype and comments at top level.
|
1986 |
+
// phpcs:disable
|
1987 |
+
global $allowedposttags;
|
1988 |
+
$allowed_atts = array(
|
1989 |
+
'align' => array(),
|
1990 |
+
'class' => array(),
|
1991 |
+
'type' => array(),
|
1992 |
+
'id' => array(),
|
1993 |
+
'dir' => array(),
|
1994 |
+
'lang' => array(),
|
1995 |
+
'style' => array(),
|
1996 |
+
'xml:lang' => array(),
|
1997 |
+
'src' => array(),
|
1998 |
+
'alt' => array(),
|
1999 |
+
'href' => array(),
|
2000 |
+
'rel' => array(),
|
2001 |
+
'rev' => array(),
|
2002 |
+
'target' => array(),
|
2003 |
+
'novalidate' => array(),
|
2004 |
+
'type' => array(),
|
2005 |
+
'value' => array(),
|
2006 |
+
'name' => array(),
|
2007 |
+
'tabindex' => array(),
|
2008 |
+
'action' => array(),
|
2009 |
+
'method' => array(),
|
2010 |
+
'for' => array(),
|
2011 |
+
'width' => array(),
|
2012 |
+
'height' => array(),
|
2013 |
+
'data' => array(),
|
2014 |
+
'title' => array(),
|
2015 |
+
);
|
2016 |
+
$allowedposttags['form'] = $allowed_atts;
|
2017 |
+
$allowedposttags['label'] = $allowed_atts;
|
2018 |
+
$allowedposttags['input'] = $allowed_atts;
|
2019 |
+
$allowedposttags['textarea'] = $allowed_atts;
|
2020 |
+
$allowedposttags['iframe'] = $allowed_atts;
|
2021 |
+
$allowedposttags['script'] = $allowed_atts;
|
2022 |
+
$allowedposttags['style'] = $allowed_atts;
|
2023 |
+
$allowedposttags['strong'] = $allowed_atts;
|
2024 |
+
$allowedposttags['small'] = $allowed_atts;
|
2025 |
+
$allowedposttags['table'] = $allowed_atts;
|
2026 |
+
$allowedposttags['span'] = $allowed_atts;
|
2027 |
+
$allowedposttags['abbr'] = $allowed_atts;
|
2028 |
+
$allowedposttags['code'] = $allowed_atts;
|
2029 |
+
$allowedposttags['pre'] = $allowed_atts;
|
2030 |
+
$allowedposttags['div'] = $allowed_atts;
|
2031 |
+
$allowedposttags['img'] = $allowed_atts;
|
2032 |
+
$allowedposttags['h1'] = $allowed_atts;
|
2033 |
+
$allowedposttags['h2'] = $allowed_atts;
|
2034 |
+
$allowedposttags['h3'] = $allowed_atts;
|
2035 |
+
$allowedposttags['h4'] = $allowed_atts;
|
2036 |
+
$allowedposttags['h5'] = $allowed_atts;
|
2037 |
+
$allowedposttags['h6'] = $allowed_atts;
|
2038 |
+
$allowedposttags['ol'] = $allowed_atts;
|
2039 |
+
$allowedposttags['ul'] = $allowed_atts;
|
2040 |
+
$allowedposttags['li'] = $allowed_atts;
|
2041 |
+
$allowedposttags['em'] = $allowed_atts;
|
2042 |
+
$allowedposttags['hr'] = $allowed_atts;
|
2043 |
+
$allowedposttags['br'] = $allowed_atts;
|
2044 |
+
$allowedposttags['tr'] = $allowed_atts;
|
2045 |
+
$allowedposttags['td'] = $allowed_atts;
|
2046 |
+
$allowedposttags['p'] = $allowed_atts;
|
2047 |
+
$allowedposttags['a'] = $allowed_atts;
|
2048 |
+
$allowedposttags['b'] = $allowed_atts;
|
2049 |
+
$allowedposttags['i'] = $allowed_atts;
|
2050 |
+
foreach ( $dom_tran_obj->childNodes as $node ) {
|
2051 |
+
// phpcs:enable
|
2052 |
+
echo wp_kses( $dom_tran_obj->saveXML( $node ), $allowedposttags ) . "\n";
|
2053 |
+
}
|
2054 |
+
}
|
2055 |
+
|
2056 |
+
if ( $packed ) {
|
2057 |
+
ob_end_flush();
|
2058 |
+
}
|
2059 |
+
$this->is_active = false;
|
2060 |
+
exit;
|
2061 |
+
}
|
2062 |
+
|
2063 |
+
/**
|
2064 |
+
* Generates the header for the sitemap with XML declarations, stylesheet and so on.
|
2065 |
+
*
|
2066 |
+
* @since 4.0
|
2067 |
+
* @param string $format The format, either sitemap for a sitemap or index for the sitemap index .
|
2068 |
+
*/
|
2069 |
+
private function build_sitemap_header( $format ) {
|
2070 |
+
|
2071 |
+
if ( ! in_array( $format, array( 'sitemap', 'index' ), true ) ) {
|
2072 |
+
$format = 'sitemap';
|
2073 |
+
}
|
2074 |
+
$this->add_element( new GoogleSitemapGeneratorXmlEntry( '<?xml version=\'1.0\' encoding=\'UTF-8\'?>' ) );
|
2075 |
+
$style_sheet = ( $this->get_default_style() && $this->get_option( 'b_style_default' ) === true
|
2076 |
+
? $this->get_default_style() : $this->get_option( 'b_style' ) );
|
2077 |
+
|
2078 |
+
if ( ! empty( $style_sheet ) ) {
|
2079 |
+
$this->add_element( new GoogleSitemapGeneratorXmlEntry( '<' . '?xml-stylesheet type=\'text/xsl\' href=\'' . esc_url( $style_sheet ) . '\'?>' ) );
|
2080 |
+
}
|
2081 |
+
$this->add_element( new GoogleSitemapGeneratorDebugEntry( 'sitemap-generator-url=\'http://www.arnebrachhold.de\' sitemap-generator-version=\'' . $this->get_version() . '\'' ) );
|
2082 |
+
$this->add_element( new GoogleSitemapGeneratorDebugEntry( 'generated-on=\'' . gmdate( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ) ) . '\'' ) );
|
2083 |
+
|
2084 |
+
switch ( $format ) {
|
2085 |
+
case 'sitemap':
|
2086 |
+
$this->add_element( new GoogleSitemapGeneratorXmlEntry( '<urlset xmlns:xsi=\'http://www.w3.org/2001/XMLSchema-instance\' xsi:schemaLocation=\'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\' xmlns=\'http://www.sitemaps.org/schemas/sitemap/0.9\'>' ) );
|
2087 |
+
break;
|
2088 |
+
case 'index':
|
2089 |
+
$this->add_element( new GoogleSitemapGeneratorXmlEntry( '<sitemapindex xmlns:xsi=\'http://www.w3.org/2001/XMLSchema-instance\' xsi:schemaLocation=\'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd\' xmlns=\'http://www.sitemaps.org/schemas/sitemap/0.9\'>' ) );
|
2090 |
+
break;
|
2091 |
+
}
|
2092 |
+
}
|
2093 |
+
|
2094 |
+
/**
|
2095 |
+
* Generates the footer for the sitemap with XML ending tag
|
2096 |
+
*
|
2097 |
+
* @since 4.0
|
2098 |
+
* @param string $format The format, either sitemap for a sitemap or index for the sitemap index.
|
2099 |
+
*/
|
2100 |
+
private function build_sitemap_footer( $format ) {
|
2101 |
+
if ( ! in_array( $format, array( 'sitemap', 'index' ), true ) ) {
|
2102 |
+
$format = 'sitemap';
|
2103 |
+
}
|
2104 |
+
switch ( $format ) {
|
2105 |
+
case 'sitemap':
|
2106 |
+
$this->add_element( new GoogleSitemapGeneratorXmlEntry( '</urlset>' ) );
|
2107 |
+
break;
|
2108 |
+
case 'index':
|
2109 |
+
$this->add_element( new GoogleSitemapGeneratorXmlEntry( '</sitemapindex>' ) );
|
2110 |
+
break;
|
2111 |
+
}
|
2112 |
+
}
|
2113 |
+
|
2114 |
+
/**
|
2115 |
+
* Adds information about time and memory usage to the sitemap
|
2116 |
+
*
|
2117 |
+
* @since 4.0
|
2118 |
+
* @param float $start_time The microtime of the start .
|
2119 |
+
* @param int $start_queries .
|
2120 |
+
* @param int $start_memory .
|
2121 |
+
*/
|
2122 |
+
private function add_end_commend( $start_time, $start_queries = 0, $start_memory = 0 ) {
|
2123 |
+
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
|
2124 |
+
echo '<!-- ';
|
2125 |
+
if ( defined( 'SAVEQUERIES' ) && SAVEQUERIES ) {
|
2126 |
+
echo '<pre>';
|
2127 |
+
// phpcs:disable WordPress.PHP.DevelopmentFunctions
|
2128 |
+
var_dump( $GLOBALS['wpdb']->queries );
|
2129 |
+
// phpcs:enable
|
2130 |
+
echo '</pre>';
|
2131 |
+
|
2132 |
+
$total = 0;
|
2133 |
+
foreach ( $GLOBALS['wpdb']->queries as $q ) {
|
2134 |
+
$total += $q[1];
|
2135 |
+
}
|
2136 |
+
echo '<h4>Total Query Time</h4>';
|
2137 |
+
echo '<pre>' . count( $GLOBALS['wpdb']->queries ) . ' queries in ' . esc_html( round( $total, 2 ) ) . ' seconds.</pre>';
|
2138 |
+
} else {
|
2139 |
+
echo '<p>Please edit wp-db.inc.php in wp-includes and set SAVEQUERIES to true if you want to see the queries.</p>';
|
2140 |
+
}
|
2141 |
+
echo ' --> ';
|
2142 |
+
}
|
2143 |
+
$end_time = microtime( true );
|
2144 |
+
$end_time = round( $end_time - $start_time, 2 );
|
2145 |
+
$this->add_element( new GoogleSitemapGeneratorDebugEntry( 'Request ID: ' . md5( microtime() ) . '; Queries for sitemap: ' . ( $GLOBALS['wpdb']->num_queries - $start_queries ) . '; Total queries: ' . $GLOBALS['wpdb']->num_queries . '; Seconds: $end_time; Memory for sitemap: ' . ( ( memory_get_peak_usage( true ) - $start_memory ) / 1024 / 1024 ) . 'MB; Total memory: ' . ( memory_get_peak_usage( true ) / 1024 / 1024 ) . 'MB' ) );
|
2146 |
+
}
|
2147 |
+
|
2148 |
+
/**
|
2149 |
+
* Adds the sitemap to the virtual robots.txt file
|
2150 |
+
* This function is executed by WordPress with the do_robots hook
|
2151 |
+
*
|
2152 |
+
* @since 3.1.2
|
2153 |
+
*/
|
2154 |
+
public function do_robots() {
|
2155 |
+
$this->initate();
|
2156 |
+
if ( $this->get_option( 'b_robots' ) === true ) {
|
2157 |
+
|
2158 |
+
$sm_url = $this->get_xml_url();
|
2159 |
+
|
2160 |
+
echo "\nSitemap: " . esc_url( $sm_url ) . "\n";
|
2161 |
+
}
|
2162 |
+
}
|
2163 |
+
|
2164 |
+
|
2165 |
+
/*************************************** SITEMAP CONTENT BUILDING ***************************************/
|
2166 |
+
|
2167 |
+
/**
|
2168 |
+
* Outputs an element in the sitemap
|
2169 |
+
*
|
2170 |
+
* @since 3.0
|
2171 |
+
* @param object $page GoogleSitemapGeneratorXmlEntry The element .
|
2172 |
+
*/
|
2173 |
+
public function add_element( $page ) {
|
2174 |
+
|
2175 |
+
if ( empty( $page ) ) {
|
2176 |
+
return;
|
2177 |
+
}
|
2178 |
+
// phpcs:disable
|
2179 |
+
echo $page->render();
|
2180 |
+
// phpcs:enable
|
2181 |
+
}
|
2182 |
+
|
2183 |
+
/**
|
2184 |
+
* Adds a url to the sitemap. You can use this method or call add_element directly.
|
2185 |
+
*
|
2186 |
+
* @since 3.0
|
2187 |
+
* @param int $loc string The location (url) of the page .
|
2188 |
+
* @param int $last_mod int The last Modification time as a UNIX timestamp .
|
2189 |
+
* @param string $change_freq string The change frequenty of the page, Valid values are 'always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly' and 'never'. .
|
2190 |
+
* @param float $priority float The priority of the page, between 0.0 and 1.0 .
|
2191 |
+
* @param int $post_id int The post ID in case this is a post or page .
|
2192 |
+
* @see add_element
|
2193 |
+
*/
|
2194 |
+
public function add_url( $loc, $last_mod = 0, $change_freq = 'monthly', $priority = 0.5, $post_id = 0 ) {
|
2195 |
+
// Strip out the last modification time if activated .
|
2196 |
+
if ( $this->get_option( 'in_lastmod' ) === false ) {
|
2197 |
+
$last_mod = 0;
|
2198 |
+
}
|
2199 |
+
$page = new GoogleSitemapGeneratorPage( $loc, $priority, $change_freq, $last_mod, $post_id );
|
2200 |
+
|
2201 |
+
do_action( 'sm_addurl', $page );
|
2202 |
+
|
2203 |
+
if ( $this->sim_mode ) {
|
2204 |
+
// phpcs:disable WordPress.PHP.DevelopmentFunctions
|
2205 |
+
$caller = $this->get_external_backtrace( debug_backtrace() );
|
2206 |
+
// phpcs:enable
|
2207 |
+
$this->sim_data['content'][] = array(
|
2208 |
+
'data' => $page,
|
2209 |
+
'caller' => $caller,
|
2210 |
+
);
|
2211 |
+
} else {
|
2212 |
+
$this->add_element( $page );
|
2213 |
+
}
|
2214 |
+
}
|
2215 |
+
|
2216 |
+
/**
|
2217 |
+
* Add a sitemap entry to the index file
|
2218 |
+
*
|
2219 |
+
* @param string $type .
|
2220 |
+
* @param string $params .
|
2221 |
+
* @param int $last_mod .
|
2222 |
+
*/
|
2223 |
+
public function add_sitemap( $type, $params = '', $last_mod = 0 ) {
|
2224 |
+
|
2225 |
+
$url = $this->get_xml_url( $type, $params );
|
2226 |
+
|
2227 |
+
$sitemap = new GoogleSitemapGeneratorSitemapEntry( $url, $last_mod );
|
2228 |
+
|
2229 |
+
do_action( 'sm_addsitemap', $sitemap );
|
2230 |
+
|
2231 |
+
if ( $this->sim_mode ) {
|
2232 |
+
// phpcs:disable WordPress.PHP.DevelopmentFunctions
|
2233 |
+
$caller = $this->get_external_backtrace( debug_backtrace() );
|
2234 |
+
// phpcs:enable
|
2235 |
+
$this->sim_data['sitemaps'][] = array(
|
2236 |
+
'data' => $sitemap,
|
2237 |
+
'type' => $type,
|
2238 |
+
'params' => $params,
|
2239 |
+
'caller' => $caller,
|
2240 |
+
);
|
2241 |
+
} else {
|
2242 |
+
$this->add_element( $sitemap );
|
2243 |
+
}
|
2244 |
+
}
|
2245 |
+
|
2246 |
+
|
2247 |
+
/*************************************** PINGS ***************************************/
|
2248 |
+
|
2249 |
+
/**
|
2250 |
+
* Sends the pings to the search engines
|
2251 |
+
*
|
2252 |
+
* @return GoogleSitemapGeneratorStatus The status object
|
2253 |
+
*/
|
2254 |
+
public function send_ping() {
|
2255 |
+
|
2256 |
+
$this->load_options();
|
2257 |
+
|
2258 |
+
$ping_url = $this->get_xml_url();
|
2259 |
+
|
2260 |
+
$result = $this->execute_ping( $ping_url, true );
|
2261 |
+
|
2262 |
+
$post_id = get_transient( 'sm_ping_post_id' );
|
2263 |
+
|
2264 |
+
if ( $post_id ) {
|
2265 |
+
|
2266 |
+
require_once trailingslashit( dirname( __FILE__ ) ) . 'class-googlesitemapgeneratorstandardbuilder.php';
|
2267 |
+
|
2268 |
+
$urls = array();
|
2269 |
+
|
2270 |
+
$urls = apply_filters( 'sm_sitemap_for_post', $urls, $this, $post_id );
|
2271 |
+
if ( is_array( $urls ) && count( $urls ) > 0 ) {
|
2272 |
+
foreach ( $urls as $url ) {
|
2273 |
+
$this->execute_ping( $url, false );
|
2274 |
+
}
|
2275 |
+
}
|
2276 |
+
|
2277 |
+
delete_transient( 'sm_ping_post_id' );
|
2278 |
+
}
|
2279 |
+
|
2280 |
+
return $result;
|
2281 |
+
}
|
2282 |
+
|
2283 |
+
|
2284 |
+
/**
|
2285 |
+
* Execute Ping
|
2286 |
+
*
|
2287 |
+
* @param string $ping_url string The Sitemap URL to ping .
|
2288 |
+
* @param bool $update_status If the global ping status should be updated .
|
2289 |
+
*
|
2290 |
+
* @return \GoogleSitemapGeneratorStatus
|
2291 |
+
*/
|
2292 |
+
protected function execute_ping( $ping_url, $update_status = true ) {
|
2293 |
+
|
2294 |
+
$status = new GoogleSitemapGeneratorStatus( $update_status );
|
2295 |
+
|
2296 |
+
if ( $ping_url ) {
|
2297 |
+
$pings = array();
|
2298 |
+
|
2299 |
+
if ( $this->get_option( 'b_ping' ) ) {
|
2300 |
+
$pings['google'] = array(
|
2301 |
+
'name' => 'Google',
|
2302 |
+
'url' => 'http://www.google.com/webmasters/sitemaps/ping?sitemap=%s',
|
2303 |
+
'check' => 'successfully',
|
2304 |
+
);
|
2305 |
+
}
|
2306 |
+
|
2307 |
+
if ( $this->get_option( 'b_pingmsn' ) ) {
|
2308 |
+
$pings['bing'] = array(
|
2309 |
+
'name' => 'Bing',
|
2310 |
+
'url' => 'http://www.bing.com/webmaster/ping.aspx?siteMap=%s',
|
2311 |
+
'check' => ' ',
|
2312 |
+
// No way to check, response is IP-language-based :-( .
|
2313 |
+
);
|
2314 |
+
}
|
2315 |
+
|
2316 |
+
foreach ( $pings as $service_id => $service ) {
|
2317 |
+
$url = str_replace( '%s', rawurlencode( $ping_url ), $service['url'] );
|
2318 |
+
$status->start_ping( $service_id, $url, $service['name'] );
|
2319 |
+
|
2320 |
+
$pingres = $this->remote_open( $url );
|
2321 |
+
|
2322 |
+
if ( null === $pingres || false === $pingres || false === strpos( $pingres, $service['check'] ) ) {
|
2323 |
+
$status->end_ping( $service_id, false );
|
2324 |
+
// phpcs:disable WordPress.PHP.DevelopmentFunctions
|
2325 |
+
trigger_error( 'Failed to ping $service_id: ' . esc_html( htmlspecialchars( wp_strip_all_tags( $pingres ) ) ), E_USER_NOTICE );
|
2326 |
+
// phpcs:enable
|
2327 |
+
} else {
|
2328 |
+
$status->end_ping( $service_id, true );
|
2329 |
+
}
|
2330 |
+
}
|
2331 |
+
|
2332 |
+
$this->set_option( 'i_lastping', time() );
|
2333 |
+
$this->save_options();
|
2334 |
+
}
|
2335 |
+
|
2336 |
+
$status->end();
|
2337 |
+
|
2338 |
+
return $status;
|
2339 |
+
}
|
2340 |
+
|
2341 |
+
/**
|
2342 |
+
* Tries to ping a specific service showing as much as debug output as possible
|
2343 |
+
*
|
2344 |
+
* @since 4.1
|
2345 |
+
* @return array
|
2346 |
+
*/
|
2347 |
+
public function send_ping_all() {
|
2348 |
+
|
2349 |
+
$this->load_options();
|
2350 |
+
|
2351 |
+
$sitemaps = $this->simulate_index();
|
2352 |
+
|
2353 |
+
$urls = array();
|
2354 |
+
|
2355 |
+
$urls[] = $this->get_xml_url();
|
2356 |
+
|
2357 |
+
foreach ( $sitemaps as $sitemap ) {
|
2358 |
+
|
2359 |
+
// @var $s GoogleSitemapGeneratorSitemapEntry .
|
2360 |
+
$s = $sitemap['data'];
|
2361 |
+
|
2362 |
+
$urls[] = $s->get_url();
|
2363 |
+
}
|
2364 |
+
|
2365 |
+
$results = array();
|
2366 |
+
|
2367 |
+
$first = true;
|
2368 |
+
|
2369 |
+
foreach ( $urls as $url ) {
|
2370 |
+
$status = $this->execute_ping( $url, $first );
|
2371 |
+
$results[] = array(
|
2372 |
+
'sitemap' => $url,
|
2373 |
+
'status' => $status,
|
2374 |
+
);
|
2375 |
+
$first = false;
|
2376 |
+
}
|
2377 |
+
return $results;
|
2378 |
+
}
|
2379 |
+
|
2380 |
+
/**
|
2381 |
+
* Tries to ping a specific service showing as much as debug output as possible
|
2382 |
+
*
|
2383 |
+
* @since 3.1.9
|
2384 |
+
* @return null
|
2385 |
+
*/
|
2386 |
+
public function show_ping_result() {
|
2387 |
+
|
2388 |
+
check_admin_referer( 'sitemap' );
|
2389 |
+
|
2390 |
+
if ( ! current_user_can( 'administrator' ) ) {
|
2391 |
+
echo '<p>Please log in as admin</p>';
|
2392 |
+
return;
|
2393 |
+
}
|
2394 |
+
|
2395 |
+
$service = ! empty( $_GET['sm_ping_service'] ) ? sanitize_text_field( wp_unslash( $_GET['sm_ping_service'] ) ) : null;
|
2396 |
+
|
2397 |
+
$status = GoogleSitemapGeneratorStatus::load();
|
2398 |
+
|
2399 |
+
if ( ! $status ) {
|
2400 |
+
die( 'No build status yet. Write something first.' );
|
2401 |
+
}
|
2402 |
+
|
2403 |
+
$url = null;
|
2404 |
+
|
2405 |
+
$services = $status->get_used_ping_services();
|
2406 |
+
|
2407 |
+
if ( ! in_array( $service, $services, true ) ) {
|
2408 |
+
die( 'Invalid service' );
|
2409 |
+
}
|
2410 |
+
|
2411 |
+
$url = $status->get_ping_url( $service );
|
2412 |
+
|
2413 |
+
if ( empty( $url ) ) {
|
2414 |
+
die( 'Invalid ping url' );
|
2415 |
+
}
|
2416 |
+
|
2417 |
+
echo '<html><head><title>Ping Test</title>';
|
2418 |
+
if ( function_exists( 'wp_admin_css' ) ) {
|
2419 |
+
wp_admin_css( 'css/global', true );
|
2420 |
+
}
|
2421 |
+
echo '</head><body><h1>Ping Test</h1>';
|
2422 |
+
|
2423 |
+
echo '<p>Trying to ping: <a href=\'' . esc_url( $url ) . '\'>' . esc_html( $url ) . '</a>. The sections below should give you an idea whats going on.</p>';
|
2424 |
+
|
2425 |
+
// Try to get as much as debug / error output as possible .
|
2426 |
+
$err_level = error_reporting( E_ALL );
|
2427 |
+
define( 'WP_DEBUG_DISPLAY', true );
|
2428 |
+
|
2429 |
+
if ( ! defined( 'WP_DEBUG' ) ) {
|
2430 |
+
define( 'WP_DEBUG', true );
|
2431 |
+
}
|
2432 |
+
|
2433 |
+
echo '<h2>Errors, Warnings, Notices:</h2>';
|
2434 |
+
|
2435 |
+
if ( WP_DEBUG === false ) {
|
2436 |
+
echo '<i>WP_DEBUG was set to false somewhere before. You might not see all debug information until you remove this declaration!</i><br />';
|
2437 |
+
}
|
2438 |
+
if ( ini_get( 'display_errors' ) !== 1 ) {
|
2439 |
+
echo '<i>Your display_errors setting currently prevents the plugin from showing errors here. Please check your webserver logfile instead.</i><br />';
|
2440 |
+
}
|
2441 |
+
|
2442 |
+
$res = $this->remote_open( $url );
|
2443 |
+
|
2444 |
+
echo '<h2>Result (text only):</h2>';
|
2445 |
+
|
2446 |
+
echo wp_kses(
|
2447 |
+
$res,
|
2448 |
+
array(
|
2449 |
+
'a' => array( 'href' => array() ),
|
2450 |
+
'p' => array(),
|
2451 |
+
'ul' => array(),
|
2452 |
+
'ol' => array(),
|
2453 |
+
'li' => array(),
|
2454 |
+
)
|
2455 |
+
);
|
2456 |
+
|
2457 |
+
echo '<h2>Result (HTML):</h2>';
|
2458 |
+
|
2459 |
+
esc_html( htmlspecialchars( $res ) );
|
2460 |
+
|
2461 |
+
// Revert back old values .
|
2462 |
+
// error_reporting( $err_level ); .
|
2463 |
+
echo '</body></html>';
|
2464 |
+
exit;
|
2465 |
+
}
|
2466 |
+
|
2467 |
+
/**
|
2468 |
+
* Opens a remote file using the WordPress API
|
2469 |
+
*
|
2470 |
+
* @since 3.0
|
2471 |
+
* @param string $url string The URL to open .
|
2472 |
+
* @param string $method string get or post .
|
2473 |
+
* @param object $post_data array An array with key=>value paris .
|
2474 |
+
* @param int $timeout int Timeout for the request, by default 10 .
|
2475 |
+
* @return mixed False on error, the body of the response on success
|
2476 |
+
*/
|
2477 |
+
public static function remote_open( $url, $method = 'get', $post_data = null, $timeout = 10 ) {
|
2478 |
+
$options = array();
|
2479 |
+
$options['timeout'] = $timeout;
|
2480 |
+
|
2481 |
+
if ( 'get' === $method ) {
|
2482 |
+
$response = wp_remote_get( $url, $options );
|
2483 |
+
} else {
|
2484 |
+
$response = wp_remote_post(
|
2485 |
+
$url,
|
2486 |
+
array_merge(
|
2487 |
+
$options,
|
2488 |
+
array(
|
2489 |
+
'body' => $post_data,
|
2490 |
+
)
|
2491 |
+
)
|
2492 |
+
);
|
2493 |
+
}
|
2494 |
+
|
2495 |
+
if ( is_wp_error( $response ) ) {
|
2496 |
+
$errs = $response->get_error_messages();
|
2497 |
+
$errs = htmlspecialchars( implode( '; ', $errs ) );
|
2498 |
+
// phpcs:disable WordPress.PHP.DevelopmentFunctions
|
2499 |
+
trigger_error( 'WP HTTP API Web Request failed: ' . esc_html( $errs ), E_USER_NOTICE );
|
2500 |
+
// phpcs:enable
|
2501 |
+
return false;
|
2502 |
+
}
|
2503 |
+
|
2504 |
+
return $response['body'];
|
2505 |
+
}
|
2506 |
+
|
2507 |
+
/**
|
2508 |
+
* Sends anonymous statistics (disabled by default)
|
2509 |
+
*/
|
2510 |
+
private function send_stats() {
|
2511 |
+
global $wp_version, $wpdb;
|
2512 |
+
$post_count = $wpdb->get_var( 'SELECT COUNT(*) FROM {$wpdb->posts} p WHERE p.post_status=\'publish\'' ); // db call ok; no-cache ok.
|
2513 |
+
|
2514 |
+
// Send simple post count statistic to get an idea in which direction this plugin should be optimized .
|
2515 |
+
// Only a rough number is required, so we are rounding things up .
|
2516 |
+
if ( $post_count <= 5 ) {
|
2517 |
+
$post_count = 5;
|
2518 |
+
} elseif ( $post_count < 25 ) {
|
2519 |
+
$post_count = 10;
|
2520 |
+
} elseif ( $post_count < 35 ) {
|
2521 |
+
$post_count = 25;
|
2522 |
+
} elseif ( $post_count < 75 ) {
|
2523 |
+
$post_count = 50;
|
2524 |
+
} elseif ( $post_count < 125 ) {
|
2525 |
+
$post_count = 100;
|
2526 |
+
} elseif ( $post_count < 2000 ) {
|
2527 |
+
$post_count = round( $post_count / 200 ) * 200;
|
2528 |
+
} elseif ( $post_count < 10000 ) {
|
2529 |
+
$post_count = round( $post_count / 1000 ) * 1000;
|
2530 |
+
} else {
|
2531 |
+
$post_count = round( $post_count / 10000 ) * 10000;
|
2532 |
+
}
|
2533 |
+
|
2534 |
+
$post_data = array(
|
2535 |
+
'v' => 1,
|
2536 |
+
'tid' => $this->get_option( 'i_tid' ),
|
2537 |
+
'cid' => $this->get_option( 'i_hash' ),
|
2538 |
+
'aip' => 1, // Anonymize .
|
2539 |
+
't' => 'event',
|
2540 |
+
'ec' => 'ping',
|
2541 |
+
'ea' => 'auto',
|
2542 |
+
'ev' => 1,
|
2543 |
+
'cd1' => $wp_version,
|
2544 |
+
'cd2' => $this->get_version(),
|
2545 |
+
'cd3' => PHP_VERSION,
|
2546 |
+
'cd4' => $post_count,
|
2547 |
+
'ul' => get_bloginfo( 'language' ),
|
2548 |
+
);
|
2549 |
+
|
2550 |
+
$this->remote_open( 'http://www.google-analytics.com/collect', 'post', $post_data );
|
2551 |
+
}
|
2552 |
+
|
2553 |
+
/**
|
2554 |
+
* Returns the number of seconds the support feed should be cached (1 week)
|
2555 |
+
*
|
2556 |
+
* @return int The number of seconds
|
2557 |
+
*/
|
2558 |
+
public static function get_support_feed_cache_lifetime() {
|
2559 |
+
return 60 * 60 * 24 * 7;
|
2560 |
+
}
|
2561 |
+
|
2562 |
+
/**
|
2563 |
+
* Returns the SimplePie instance of the support feed
|
2564 |
+
* The feed is cached for one week
|
2565 |
+
*
|
2566 |
+
* @return SimplePie|WP_Error
|
2567 |
+
*/
|
2568 |
+
public function get_support_feed() {
|
2569 |
+
|
2570 |
+
$call_back = array( __CLASS__, 'get_support_feed_cache_lifetime' );
|
2571 |
+
|
2572 |
+
// Extend cache lifetime so we don't request the feed to often .
|
2573 |
+
add_filter( 'wp_feed_cache_transient_lifetime', $call_back );
|
2574 |
+
$result = fetch_feed( SM_SUPPORTFEED_URL );
|
2575 |
+
remove_filter( 'wp_feed_cache_transient_lifetime', $call_back );
|
2576 |
+
|
2577 |
+
return $result;
|
2578 |
+
}
|
2579 |
+
|
2580 |
+
/**
|
2581 |
+
* Handles daily ping
|
2582 |
+
*/
|
2583 |
+
public function send_ping_daily() {
|
2584 |
+
|
2585 |
+
$this->load_options();
|
2586 |
+
|
2587 |
+
$blog_update = strtotime( get_lastpostdate( 'blog' ) );
|
2588 |
+
$last_ping = $this->get_option( 'i_lastping' );
|
2589 |
+
$yesterday = time() - ( 60 * 60 * 24 );
|
2590 |
+
|
2591 |
+
if ( $blog_update >= $yesterday && ( 0 === $last_ping || $last_ping <= $yesterday ) ) {
|
2592 |
+
$this->send_ping();
|
2593 |
+
}
|
2594 |
+
|
2595 |
+
// Send statistics if enabled (disabled by default) .
|
2596 |
+
if ( $this->get_option( 'b_stats' ) ) {
|
2597 |
+
$this->send_stats();
|
2598 |
+
}
|
2599 |
+
|
2600 |
+
// Cache the support feed so there is no delay when loading the user interface .
|
2601 |
+
if ( $this->get_option( 'i_supportfeed' ) ) {
|
2602 |
+
$last = $this->get_option( 'i_supportfeed_cache' );
|
2603 |
+
if ( $last <= ( time() - $this->get_support_feed_cache_lifetime() ) ) {
|
2604 |
+
$support_feed = $this->get_support_feed();
|
2605 |
+
if ( ! is_wp_error( $support_feed ) && $support_feed ) {
|
2606 |
+
$this->set_option( 'i_supportfeed_cache', time() );
|
2607 |
+
$this->save_options();
|
2608 |
+
}
|
2609 |
+
}
|
2610 |
+
}
|
2611 |
+
}
|
2612 |
+
|
2613 |
+
|
2614 |
+
/*************************************** USER INTERFACE ***************************************/
|
2615 |
+
|
2616 |
+
/**
|
2617 |
+
* Includes the user interface class and initializes it
|
2618 |
+
*
|
2619 |
+
* @since 3.1.1
|
2620 |
+
* @see GoogleSitemapGeneratorUI
|
2621 |
+
* @return GoogleSitemapGeneratorUI
|
2622 |
+
*/
|
2623 |
+
private function get_ui() {
|
2624 |
+
|
2625 |
+
if ( null === $this->ui ) {
|
2626 |
+
|
2627 |
+
$class_name = 'GoogleSitemapGeneratorUI';
|
2628 |
+
$file_name = 'class-googlesitemapgeneratorui.php';
|
2629 |
+
|
2630 |
+
if ( ! class_exists( $class_name ) ) {
|
2631 |
+
|
2632 |
+
$path = trailingslashit( dirname( __FILE__ ) );
|
2633 |
+
|
2634 |
+
if ( ! file_exists( $path . $file_name ) ) {
|
2635 |
+
return false;
|
2636 |
+
}
|
2637 |
+
require_once $path . $file_name;
|
2638 |
+
}
|
2639 |
+
|
2640 |
+
$this->ui = new $class_name( $this );
|
2641 |
+
}
|
2642 |
+
|
2643 |
+
return $this->ui;
|
2644 |
+
}
|
2645 |
+
|
2646 |
+
/**
|
2647 |
+
* Shows the option page of the plugin. Before 3.1.1, this function was basically the UI, afterwards the UI was outsourced to another class
|
2648 |
+
*
|
2649 |
+
* @see GoogleSitemapGeneratorUI
|
2650 |
+
* @since 3.0
|
2651 |
+
* @return bool
|
2652 |
+
*/
|
2653 |
+
public function html_show_options_page() {
|
2654 |
+
|
2655 |
+
$ui = $this->get_ui();
|
2656 |
+
if ( $ui ) {
|
2657 |
+
$ui->html_show_options_page();
|
2658 |
+
return true;
|
2659 |
+
}
|
2660 |
+
|
2661 |
+
return false;
|
2662 |
+
}
|
2663 |
+
|
2664 |
+
/*************************************** HELPERS ***************************************/
|
2665 |
+
|
2666 |
+
/**
|
2667 |
+
* Returns if the given value is greater than zero
|
2668 |
+
*
|
2669 |
+
* @param int $value int The value to check .
|
2670 |
+
* @since 4.0b10
|
2671 |
+
* @return bool True if greater than zero
|
2672 |
+
*/
|
2673 |
+
public function is_greater_zero( $value ) {
|
2674 |
+
return ( $value > 0 );
|
2675 |
+
}
|
2676 |
+
|
2677 |
+
/**
|
2678 |
+
* Converts the various possible php.ini values for true and false to boolean
|
2679 |
+
*
|
2680 |
+
* @param string $value string The value from ini_get .
|
2681 |
+
*
|
2682 |
+
* @return bool The converted value
|
2683 |
+
*/
|
2684 |
+
public function get_php_ini_boolean( $value ) {
|
2685 |
+
if ( is_string( $value ) ) {
|
2686 |
+
switch ( strtolower( $value ) ) {
|
2687 |
+
case '+':
|
2688 |
+
case '1':
|
2689 |
+
case 'y':
|
2690 |
+
case 'on':
|
2691 |
+
case 'yes':
|
2692 |
+
case 'true':
|
2693 |
+
case 'enabled':
|
2694 |
+
return true;
|
2695 |
+
|
2696 |
+
case '-':
|
2697 |
+
case '0':
|
2698 |
+
case 'n':
|
2699 |
+
case 'no':
|
2700 |
+
case 'off':
|
2701 |
+
case 'false':
|
2702 |
+
case 'disabled':
|
2703 |
+
return false;
|
2704 |
+
}
|
2705 |
+
}
|
2706 |
+
|
2707 |
+
return (bool) $value;
|
2708 |
+
}
|
2709 |
+
|
2710 |
+
|
2711 |
+
/**
|
2712 |
+
* Show surevey method .
|
2713 |
+
*/
|
2714 |
+
public function show_survey() {
|
2715 |
+
$this->load_options();
|
2716 |
+
if ( isset( $_REQUEST['sm_survey'] ) ) {
|
2717 |
+
return ( sanitize_text_field( wp_unslash( $_REQUEST['sm_survey'] ) ) ) || ! $this->get_option( 'i_hide_survey' );
|
2718 |
+
}
|
2719 |
+
}
|
2720 |
+
|
2721 |
+
/**
|
2722 |
+
* Html survey method .
|
2723 |
+
*/
|
2724 |
+
public function html_survey() {
|
2725 |
+
?>
|
2726 |
+
<div class='updated'>
|
2727 |
+
<strong>
|
2728 |
+
<p>
|
2729 |
+
<?php
|
2730 |
+
esc_html(
|
2731 |
+
str_replace(
|
2732 |
+
'%s',
|
2733 |
+
'https://w3edge.wufoo.com/forms/mex338s1ysw3i0/',
|
2734 |
+
/* translators: %s: search term */
|
2735 |
+
__( 'Thank you for using Google XML Sitemaps! <a href=\'%s\' target=\'_blank\'>Please help us improve by taking this short survey!</a>', 'sitemap' )
|
2736 |
+
)
|
2737 |
+
);
|
2738 |
+
?>
|
2739 |
+
<a href='<?php esc_url( $this->get_back_link() ) . '&sm_hide_survey=true'; ?>' style='float:right; display:block; border:none;'><small style='font-weight:normal; '><?php esc_html_e( 'Don\'t show this anymore', 'sitemap' ); ?></small></a>
|
2740 |
+
</p>
|
2741 |
+
</strong>
|
2742 |
+
<div style='clear:right;'></div>
|
2743 |
+
</div>
|
2744 |
+
<?php
|
2745 |
+
}
|
2746 |
+
|
2747 |
+
/**
|
2748 |
+
* Get xsl url method .
|
2749 |
+
*
|
2750 |
+
* @param string $url .
|
2751 |
+
* @param string $host .
|
2752 |
+
*/
|
2753 |
+
public function get_xsl_url( $url, $host ) {
|
2754 |
+
if ( substr( $host, 0, 4 ) === 'www.' ) {
|
2755 |
+
if ( substr( get_bloginfo( 'url' ), 0, 5 ) !== 'https' ) {
|
2756 |
+
if ( strpos( $url, 'www.' ) === false ) {
|
2757 |
+
$url = str_replace( 'http://', 'http://www.', $url );
|
2758 |
+
}
|
2759 |
+
} else {
|
2760 |
+
if ( strpos( $url, 'www.' ) === false ) {
|
2761 |
+
$url = str_replace( 'https://', 'https://www.', $url );
|
2762 |
+
}
|
2763 |
+
}
|
2764 |
+
} else {
|
2765 |
+
if ( strpos( $url, 'www.' ) !== false ) {
|
2766 |
+
$url = str_replace( '://www.', '://', $url );
|
2767 |
+
}
|
2768 |
+
}
|
2769 |
+
return $url;
|
2770 |
+
}
|
2771 |
+
}
|
sitemap-loader.php
DELETED
@@ -1,467 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Loader class for the Google Sitemap Generator
|
5 |
-
*
|
6 |
-
* This class takes care of the sitemap plugin and tries to load the different parts as late as possible.
|
7 |
-
* On normal requests, only this small class is loaded. When the sitemap needs to be rebuild, the generator itself is loaded.
|
8 |
-
* The last stage is the user interface which is loaded when the administration page is requested.
|
9 |
-
*
|
10 |
-
* @author Arne Brachhold
|
11 |
-
* @package sitemap
|
12 |
-
*/
|
13 |
-
class GoogleSitemapGeneratorLoader {
|
14 |
-
|
15 |
-
/**
|
16 |
-
* @var string Version of the generator in SVN
|
17 |
-
*/
|
18 |
-
private static $svnVersion = '$Id: sitemap-loader.php 937300 2014-06-23 18:04:11Z arnee $';
|
19 |
-
|
20 |
-
|
21 |
-
/**
|
22 |
-
* Enabled the sitemap plugin with registering all required hooks
|
23 |
-
*
|
24 |
-
* @uses add_action Adds actions for admin menu, executing pings and handling robots.txt
|
25 |
-
* @uses add_filter Adds filtes for admin menu icon and contexual help
|
26 |
-
* @uses GoogleSitemapGeneratorLoader::CallShowPingResult() Shows the ping result on request
|
27 |
-
*/
|
28 |
-
public static function Enable() {
|
29 |
-
|
30 |
-
//Register the sitemap creator to wordpress...
|
31 |
-
add_action('admin_menu', array(__CLASS__, 'RegisterAdminPage'));
|
32 |
-
|
33 |
-
// Add a widget to the dashboard.
|
34 |
-
add_action( 'wp_dashboard_setup', array(__CLASS__, 'WpDashboardSetup'));
|
35 |
-
|
36 |
-
//Nice icon for Admin Menu (requires Ozh Admin Drop Down Plugin)
|
37 |
-
add_filter('ozh_adminmenu_icon', array(__CLASS__, 'RegisterAdminIcon'));
|
38 |
-
|
39 |
-
//Additional links on the plugin page
|
40 |
-
add_filter('plugin_row_meta', array(__CLASS__, 'RegisterPluginLinks'), 10, 2);
|
41 |
-
|
42 |
-
//Listen to ping request
|
43 |
-
add_action('sm_ping', array(__CLASS__, 'CallSendPing'), 10, 1);
|
44 |
-
|
45 |
-
//Listen to daily ping
|
46 |
-
add_action('sm_ping_daily', array(__CLASS__, 'CallSendPingDaily'), 10, 1);
|
47 |
-
|
48 |
-
//Post is somehow changed (also publish to publish (=edit) is fired)
|
49 |
-
add_action('transition_post_status', array(__CLASS__, 'SchedulePingOnStatusChange'), 9999, 3);
|
50 |
-
|
51 |
-
//Robots.txt request
|
52 |
-
add_action('do_robots', array(__CLASS__, 'CallDoRobots'), 100, 0);
|
53 |
-
|
54 |
-
//Help topics for context sensitive help
|
55 |
-
//add_filter('contextual_help_list', array(__CLASS__, 'CallHtmlShowHelpList'), 9999, 2);
|
56 |
-
|
57 |
-
//Check if the result of a ping request should be shown
|
58 |
-
if(!empty($_GET["sm_ping_service"])) {
|
59 |
-
self::CallShowPingResult();
|
60 |
-
}
|
61 |
-
|
62 |
-
//Fix rewrite rules if not already done on activation hook. This happens on network activation for example.
|
63 |
-
if (get_option("sm_rewrite_done", null) != self::$svnVersion) {
|
64 |
-
add_action('wp_loaded', array(__CLASS__, 'ActivateRewrite'), 9999, 1);
|
65 |
-
}
|
66 |
-
|
67 |
-
//Schedule daily ping
|
68 |
-
if (!wp_get_schedule('sm_ping_daily')) {
|
69 |
-
wp_schedule_event(time() + (60 * 60), 'daily', 'sm_ping_daily');
|
70 |
-
}
|
71 |
-
|
72 |
-
//Disable the WP core XML sitemaps.
|
73 |
-
add_filter( 'wp_sitemaps_enabled', '__return_false' );
|
74 |
-
}
|
75 |
-
|
76 |
-
/**
|
77 |
-
* Sets up the query vars and template redirect hooks
|
78 |
-
* @uses GoogleSitemapGeneratorLoader::RegisterQueryVars
|
79 |
-
* @uses GoogleSitemapGeneratorLoader::DoTemplateRedirect
|
80 |
-
* @since 4.0
|
81 |
-
*/
|
82 |
-
public static function SetupQueryVars() {
|
83 |
-
|
84 |
-
add_filter('query_vars', array(__CLASS__, 'RegisterQueryVars'), 1, 1);
|
85 |
-
|
86 |
-
add_filter('template_redirect', array(__CLASS__, 'DoTemplateRedirect'), 1, 0);
|
87 |
-
|
88 |
-
}
|
89 |
-
|
90 |
-
/**
|
91 |
-
* Register the plugin specific "xml_sitemap" query var
|
92 |
-
*
|
93 |
-
* @since 4.0
|
94 |
-
* @param $vars Array Array of existing query_vars
|
95 |
-
* @return Array An aarray containing the new query vars
|
96 |
-
*/
|
97 |
-
public static function RegisterQueryVars($vars) {
|
98 |
-
array_push($vars, 'xml_sitemap');
|
99 |
-
return $vars;
|
100 |
-
}
|
101 |
-
|
102 |
-
/**
|
103 |
-
* Registers the plugin specific rewrite rules
|
104 |
-
*
|
105 |
-
* Combined: sitemap(-+([a-zA-Z0-9_-]+))?\.(xml|html)(.gz)?$
|
106 |
-
*
|
107 |
-
* @since 4.0
|
108 |
-
* @param $wpRules Array of existing rewrite rules
|
109 |
-
* @return Array An array containing the new rewrite rules
|
110 |
-
*/
|
111 |
-
public static function AddRewriteRules($wpRules) {
|
112 |
-
$smRules = array(
|
113 |
-
'sitemap(-+([a-zA-Z0-9_-]+))?\.xml$' => 'index.php?xml_sitemap=params=$matches[2]',
|
114 |
-
'sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$' => 'index.php?xml_sitemap=params=$matches[2];zip=true',
|
115 |
-
'sitemap(-+([a-zA-Z0-9_-]+))?\.html$' => 'index.php?xml_sitemap=params=$matches[2];html=true',
|
116 |
-
'sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$' => 'index.php?xml_sitemap=params=$matches[2];html=true;zip=true'
|
117 |
-
);
|
118 |
-
return array_merge($smRules,$wpRules);
|
119 |
-
}
|
120 |
-
|
121 |
-
/**
|
122 |
-
* Returns the rules required for Nginx permalinks
|
123 |
-
*
|
124 |
-
* @return string[]
|
125 |
-
*/
|
126 |
-
public static function GetNginXRules() {
|
127 |
-
return array(
|
128 |
-
'rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml$ "/index.php?xml_sitemap=params=$2" last;',
|
129 |
-
'rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$ "/index.php?xml_sitemap=params=$2;zip=true" last;',
|
130 |
-
'rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html$ "/index.php?xml_sitemap=params=$2;html=true" last;',
|
131 |
-
'rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$ "/index.php?xml_sitemap=params=$2;html=true;zip=true" last;'
|
132 |
-
);
|
133 |
-
|
134 |
-
}
|
135 |
-
|
136 |
-
/**
|
137 |
-
* Adds the filters for wp rewrite rule adding
|
138 |
-
*
|
139 |
-
* @since 4.0
|
140 |
-
* @uses add_filter()
|
141 |
-
*/
|
142 |
-
public static function SetupRewriteHooks() {
|
143 |
-
add_filter('rewrite_rules_array', array(__CLASS__, 'AddRewriteRules'), 1, 1);
|
144 |
-
}
|
145 |
-
|
146 |
-
/**
|
147 |
-
* Flushes the rewrite rules
|
148 |
-
*
|
149 |
-
* @since 4.0
|
150 |
-
* @global $wp_rewrite WP_Rewrite
|
151 |
-
* @uses WP_Rewrite::flush_rules()
|
152 |
-
*/
|
153 |
-
public static function ActivateRewrite() {
|
154 |
-
/** @var $wp_rewrite WP_Rewrite */
|
155 |
-
global $wp_rewrite;
|
156 |
-
$wp_rewrite->flush_rules(false);
|
157 |
-
update_option("sm_rewrite_done", self::$svnVersion);
|
158 |
-
}
|
159 |
-
|
160 |
-
/**
|
161 |
-
* Handled the plugin activation on installation
|
162 |
-
*
|
163 |
-
* @uses GoogleSitemapGeneratorLoader::ActivateRewrite
|
164 |
-
* @since 4.0
|
165 |
-
*/
|
166 |
-
public static function ActivatePlugin() {
|
167 |
-
self::SetupRewriteHooks();
|
168 |
-
self::ActivateRewrite();
|
169 |
-
|
170 |
-
if(self::LoadPlugin()) {
|
171 |
-
$gsg = GoogleSitemapGenerator::GetInstance();
|
172 |
-
if($gsg->OldFileExists()) {
|
173 |
-
$gsg->DeleteOldFiles();
|
174 |
-
}
|
175 |
-
}
|
176 |
-
|
177 |
-
}
|
178 |
-
|
179 |
-
/**
|
180 |
-
* Handled the plugin deactivation
|
181 |
-
*
|
182 |
-
* @uses GoogleSitemapGeneratorLoader::ActivateRewrite
|
183 |
-
* @since 4.0
|
184 |
-
*/
|
185 |
-
public static function DeactivatePlugin() {
|
186 |
-
delete_option("sm_rewrite_done");
|
187 |
-
wp_clear_scheduled_hook('sm_ping_daily');
|
188 |
-
}
|
189 |
-
|
190 |
-
|
191 |
-
/**
|
192 |
-
* Handles the plugin output on template redirection if the xml_sitemap query var is present.
|
193 |
-
*
|
194 |
-
* @since 4.0
|
195 |
-
*/
|
196 |
-
public static function DoTemplateRedirect() {
|
197 |
-
/** @var $wp_query WP_Query */
|
198 |
-
global $wp_query;
|
199 |
-
if(!empty($wp_query->query_vars["xml_sitemap"])) {
|
200 |
-
$wp_query->is_404 = false;
|
201 |
-
$wp_query->is_feed = true;
|
202 |
-
self::CallShowSitemap($wp_query->query_vars["xml_sitemap"]);
|
203 |
-
}
|
204 |
-
}
|
205 |
-
|
206 |
-
/**
|
207 |
-
* Registers the plugin in the admin menu system
|
208 |
-
*
|
209 |
-
* @uses add_options_page()
|
210 |
-
*/
|
211 |
-
public static function RegisterAdminPage() {
|
212 |
-
add_options_page(__('XML-Sitemap Generator', 'sitemap'), __('XML-Sitemap', 'sitemap'), 'administrator', self::GetBaseName(), array(__CLASS__, 'CallHtmlShowOptionsPage'));
|
213 |
-
}
|
214 |
-
|
215 |
-
/**
|
216 |
-
* Add a widget to the dashboard.
|
217 |
-
*/
|
218 |
-
public static function WpDashboardSetup($a) {
|
219 |
-
self::LoadPlugin();
|
220 |
-
$sg = GoogleSitemapGenerator::GetInstance();
|
221 |
-
|
222 |
-
if ($sg->ShowSurvey()) {
|
223 |
-
add_action( 'admin_notices', array(__CLASS__, 'WpDashboardAdminNotices' ) );
|
224 |
-
}
|
225 |
-
}
|
226 |
-
|
227 |
-
public static function WpDashboardAdminNotices() {
|
228 |
-
$sg = GoogleSitemapGenerator::GetInstance();
|
229 |
-
$sg->HtmlSurvey();
|
230 |
-
}
|
231 |
-
|
232 |
-
/**
|
233 |
-
* Returns a nice icon for the Ozh Admin Menu if the {@param $hook} equals to the sitemap plugin
|
234 |
-
*
|
235 |
-
* @param string $hook The hook to compare
|
236 |
-
* @return string The path to the icon
|
237 |
-
*/
|
238 |
-
public static function RegisterAdminIcon($hook) {
|
239 |
-
if($hook == self::GetBaseName() && function_exists('plugins_url')) {
|
240 |
-
return plugins_url('img/icon-arne.gif', self::GetBaseName());
|
241 |
-
}
|
242 |
-
return $hook;
|
243 |
-
}
|
244 |
-
|
245 |
-
/**
|
246 |
-
* Registers additional links for the sitemap plugin on the WP plugin configuration page
|
247 |
-
*
|
248 |
-
* Registers the links if the $file param equals to the sitemap plugin
|
249 |
-
* @param $links Array An array with the existing links
|
250 |
-
* @param $file string The file to compare to
|
251 |
-
* @return string[]
|
252 |
-
*/
|
253 |
-
public static function RegisterPluginLinks($links, $file) {
|
254 |
-
$base = self::GetBaseName();
|
255 |
-
if($file == $base) {
|
256 |
-
$links[] = '<a href="options-general.php?page=' . self::GetBaseName() . '">' . __('Settings', 'sitemap') . '</a>';
|
257 |
-
$links[] = '<a href="http://www.arnebrachhold.de/redir/sitemap-plist-faq/">' . __('FAQ', 'sitemap') . '</a>';
|
258 |
-
$links[] = '<a href="http://www.arnebrachhold.de/redir/sitemap-plist-support/">' . __('Support', 'sitemap') . '</a>';
|
259 |
-
}
|
260 |
-
return $links;
|
261 |
-
}
|
262 |
-
|
263 |
-
/**
|
264 |
-
* @param $new_status string The new post status
|
265 |
-
* @param $old_status string The old post status
|
266 |
-
* @param $post WP_Post The post object
|
267 |
-
*/
|
268 |
-
public static function SchedulePingOnStatusChange($new_status, $old_status, $post ) {
|
269 |
-
if($new_status == 'publish') {
|
270 |
-
set_transient('sm_ping_post_id', $post->ID, 120);
|
271 |
-
wp_schedule_single_event(time() + 5, 'sm_ping');
|
272 |
-
}
|
273 |
-
}
|
274 |
-
|
275 |
-
/**
|
276 |
-
* Invokes the HtmlShowOptionsPage method of the generator
|
277 |
-
* @uses GoogleSitemapGeneratorLoader::LoadPlugin()
|
278 |
-
* @uses GoogleSitemapGenerator::HtmlShowOptionsPage()
|
279 |
-
*/
|
280 |
-
public static function CallHtmlShowOptionsPage() {
|
281 |
-
if(self::LoadPlugin()) {
|
282 |
-
GoogleSitemapGenerator::GetInstance()->HtmlShowOptionsPage();
|
283 |
-
}
|
284 |
-
}
|
285 |
-
|
286 |
-
/**
|
287 |
-
* Invokes the ShowPingResult method of the generator
|
288 |
-
* @uses GoogleSitemapGeneratorLoader::LoadPlugin()
|
289 |
-
* @uses GoogleSitemapGenerator::ShowPingResult()
|
290 |
-
*/
|
291 |
-
public static function CallShowPingResult() {
|
292 |
-
if(self::LoadPlugin()) {
|
293 |
-
GoogleSitemapGenerator::GetInstance()->ShowPingResult();
|
294 |
-
}
|
295 |
-
}
|
296 |
-
|
297 |
-
/**
|
298 |
-
* Invokes the SendPing method of the generator
|
299 |
-
* @uses GoogleSitemapGeneratorLoader::LoadPlugin()
|
300 |
-
* @uses GoogleSitemapGenerator::SendPing()
|
301 |
-
*/
|
302 |
-
public static function CallSendPing() {
|
303 |
-
if(self::LoadPlugin()) {
|
304 |
-
GoogleSitemapGenerator::GetInstance()->SendPing();
|
305 |
-
}
|
306 |
-
}
|
307 |
-
|
308 |
-
/**
|
309 |
-
* Invokes the SendPingDaily method of the generator
|
310 |
-
* @uses GoogleSitemapGeneratorLoader::LoadPlugin()
|
311 |
-
* @uses GoogleSitemapGenerator::SendPingDaily()
|
312 |
-
*/
|
313 |
-
public static function CallSendPingDaily()
|
314 |
-
{
|
315 |
-
if (self::LoadPlugin()) {
|
316 |
-
GoogleSitemapGenerator::GetInstance()->SendPingDaily();
|
317 |
-
}
|
318 |
-
}
|
319 |
-
|
320 |
-
/**
|
321 |
-
* Invokes the ShowSitemap method of the generator
|
322 |
-
* @uses GoogleSitemapGeneratorLoader::LoadPlugin()
|
323 |
-
* @uses GoogleSitemapGenerator::ShowSitemap()
|
324 |
-
*/
|
325 |
-
public static function CallShowSitemap($options) {
|
326 |
-
if(self::LoadPlugin()) {
|
327 |
-
GoogleSitemapGenerator::GetInstance()->ShowSitemap($options);
|
328 |
-
}
|
329 |
-
}
|
330 |
-
|
331 |
-
/**
|
332 |
-
* Invokes the DoRobots method of the generator
|
333 |
-
* @uses GoogleSitemapGeneratorLoader::LoadPlugin()
|
334 |
-
* @uses GoogleSitemapGenerator::DoRobots()
|
335 |
-
*/
|
336 |
-
public static function CallDoRobots() {
|
337 |
-
if(self::LoadPlugin()) {
|
338 |
-
GoogleSitemapGenerator::GetInstance()->DoRobots();
|
339 |
-
}
|
340 |
-
}
|
341 |
-
|
342 |
-
/**
|
343 |
-
* Displays the help links in the upper Help Section of WordPress
|
344 |
-
*
|
345 |
-
* @return Array The new links
|
346 |
-
*/
|
347 |
-
public static function CallHtmlShowHelpList() {
|
348 |
-
|
349 |
-
$screen = get_current_screen();
|
350 |
-
$id = get_plugin_page_hookname(self::GetBaseName(), 'options-general.php');
|
351 |
-
|
352 |
-
if(is_object($screen) && $screen->id == $id) {
|
353 |
-
|
354 |
-
/*
|
355 |
-
load_plugin_textdomain('sitemap',false,dirname( plugin_basename( __FILE__ ) ) . '/lang');
|
356 |
-
|
357 |
-
$links = array(
|
358 |
-
__('Plugin Homepage', 'sitemap') => 'http://www.arnebrachhold.de/redir/sitemap-help-home/',
|
359 |
-
__('My Sitemaps FAQ', 'sitemap') => 'http://www.arnebrachhold.de/redir/sitemap-help-faq/'
|
360 |
-
);
|
361 |
-
|
362 |
-
$filterVal[$id] = '';
|
363 |
-
|
364 |
-
$i = 0;
|
365 |
-
foreach($links AS $text => $url) {
|
366 |
-
$filterVal[$id] .= '<a href="' . $url . '">' . $text . '</a>' . ($i < (count($links) - 1) ? ' | ' : '');
|
367 |
-
$i++;
|
368 |
-
}
|
369 |
-
|
370 |
-
$screen->add_help_tab( array(
|
371 |
-
'id' => 'sitemap-links',
|
372 |
-
'title' => __('My Sitemaps FAQ', 'sitemap'),
|
373 |
-
'content' => '<p>' . __('dsf dsf sd f', 'sitemap') . '</p>',
|
374 |
-
|
375 |
-
));
|
376 |
-
*/
|
377 |
-
|
378 |
-
}
|
379 |
-
//return $filterVal;
|
380 |
-
}
|
381 |
-
|
382 |
-
|
383 |
-
/**
|
384 |
-
* Loads the actual generator class and tries to raise the memory and time limits if not already done by WP
|
385 |
-
*
|
386 |
-
* @uses GoogleSitemapGenerator::Enable()
|
387 |
-
* @return boolean true if run successfully
|
388 |
-
*/
|
389 |
-
public static function LoadPlugin() {
|
390 |
-
|
391 |
-
if(!class_exists("GoogleSitemapGenerator")) {
|
392 |
-
|
393 |
-
$mem = abs(intval(@ini_get('memory_limit')));
|
394 |
-
if($mem && $mem < 128) {
|
395 |
-
@ini_set('memory_limit', '128M');
|
396 |
-
}
|
397 |
-
|
398 |
-
$time = abs(intval(@ini_get("max_execution_time")));
|
399 |
-
if($time != 0 && $time < 120) {
|
400 |
-
@set_time_limit(120);
|
401 |
-
}
|
402 |
-
|
403 |
-
$path = trailingslashit(dirname(__FILE__));
|
404 |
-
|
405 |
-
if(!file_exists($path . 'sitemap-core.php')) return false;
|
406 |
-
require_once($path . 'sitemap-core.php');
|
407 |
-
}
|
408 |
-
|
409 |
-
GoogleSitemapGenerator::Enable();
|
410 |
-
return true;
|
411 |
-
}
|
412 |
-
|
413 |
-
/**
|
414 |
-
* Returns the plugin basename of the plugin (using __FILE__)
|
415 |
-
*
|
416 |
-
* @return string The plugin basename, "sitemap" for example
|
417 |
-
*/
|
418 |
-
public static function GetBaseName() {
|
419 |
-
return plugin_basename(sm_GetInitFile());
|
420 |
-
}
|
421 |
-
|
422 |
-
/**
|
423 |
-
* Returns the name of this loader script, using sm_GetInitFile
|
424 |
-
*
|
425 |
-
* @return string The sm_GetInitFile value
|
426 |
-
*/
|
427 |
-
public static function GetPluginFile() {
|
428 |
-
return sm_GetInitFile();
|
429 |
-
}
|
430 |
-
|
431 |
-
/**
|
432 |
-
* Returns the plugin version
|
433 |
-
*
|
434 |
-
* Uses the WP API to get the meta data from the top of this file (comment)
|
435 |
-
*
|
436 |
-
* @return string The version like 3.1.1
|
437 |
-
*/
|
438 |
-
public static function GetVersion() {
|
439 |
-
if(!isset($GLOBALS["sm_version"])) {
|
440 |
-
if(!function_exists('get_plugin_data')) {
|
441 |
-
if(file_exists(ABSPATH . 'wp-admin/includes/plugin.php')) {
|
442 |
-
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
|
443 |
-
}
|
444 |
-
else return "0.ERROR";
|
445 |
-
}
|
446 |
-
$data = get_plugin_data(self::GetPluginFile(), false, false);
|
447 |
-
$GLOBALS["sm_version"] = $data['Version'];
|
448 |
-
}
|
449 |
-
return $GLOBALS["sm_version"];
|
450 |
-
}
|
451 |
-
|
452 |
-
public static function GetSvnVersion() {
|
453 |
-
return self::$svnVersion;
|
454 |
-
}
|
455 |
-
}
|
456 |
-
|
457 |
-
//Enable the plugin for the init hook, but only if WP is loaded. Calling this php file directly will do nothing.
|
458 |
-
if(defined('ABSPATH') && defined('WPINC')) {
|
459 |
-
add_action("init", array("GoogleSitemapGeneratorLoader", "Enable"), 15, 0);
|
460 |
-
register_activation_hook(sm_GetInitFile(), array('GoogleSitemapGeneratorLoader', 'ActivatePlugin'));
|
461 |
-
register_deactivation_hook(sm_GetInitFile(), array('GoogleSitemapGeneratorLoader', 'DeactivatePlugin'));
|
462 |
-
|
463 |
-
//Set up hooks for adding permalinks, query vars.
|
464 |
-
//Don't wait until init with this, since other plugins might flush the rewrite rules in init already...
|
465 |
-
GoogleSitemapGeneratorLoader::SetupQueryVars();
|
466 |
-
GoogleSitemapGeneratorLoader::SetupRewriteHooks();
|
467 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sitemap-ui.php
DELETED
@@ -1,1316 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/*
|
3 |
-
|
4 |
-
$Id: sitemap-ui.php 935247 2014-06-19 17:13:03Z arnee $
|
5 |
-
|
6 |
-
*/
|
7 |
-
|
8 |
-
class GoogleSitemapGeneratorUI {
|
9 |
-
|
10 |
-
/**
|
11 |
-
* The Sitemap Generator Object
|
12 |
-
*
|
13 |
-
* @var GoogleSitemapGenerator
|
14 |
-
*/
|
15 |
-
private $sg = null;
|
16 |
-
|
17 |
-
|
18 |
-
public function __construct(GoogleSitemapGenerator $sitemapBuilder) {
|
19 |
-
$this->sg = $sitemapBuilder;
|
20 |
-
}
|
21 |
-
|
22 |
-
private function HtmlPrintBoxHeader($id, $title) {
|
23 |
-
?>
|
24 |
-
<div id="<?php echo $id; ?>" class="postbox">
|
25 |
-
<h3 class="hndle"><span><?php echo $title ?></span></h3>
|
26 |
-
<div class="inside">
|
27 |
-
<?php
|
28 |
-
}
|
29 |
-
|
30 |
-
private function HtmlPrintBoxFooter() {
|
31 |
-
?>
|
32 |
-
</div>
|
33 |
-
</div>
|
34 |
-
<?php
|
35 |
-
}
|
36 |
-
|
37 |
-
/**
|
38 |
-
* Echos option fields for an select field containing the valid change frequencies
|
39 |
-
*
|
40 |
-
* @since 4.0
|
41 |
-
* @param $currentVal mixed The value which should be selected
|
42 |
-
*/
|
43 |
-
public function HtmlGetFreqNames($currentVal) {
|
44 |
-
|
45 |
-
foreach($this->sg->GetFreqNames() AS $k=>$v) {
|
46 |
-
echo "<option value=\"" . esc_attr($k) . "\" " . self::HtmlGetSelected($k,$currentVal) .">" . esc_attr($v) . "</option>";
|
47 |
-
}
|
48 |
-
}
|
49 |
-
|
50 |
-
/**
|
51 |
-
* Echos option fields for an select field containing the valid priorities (0- 1.0)
|
52 |
-
*
|
53 |
-
* @since 4.0
|
54 |
-
* @param $currentVal string The value which should be selected
|
55 |
-
* @return void
|
56 |
-
*/
|
57 |
-
public static function HtmlGetPriorityValues($currentVal) {
|
58 |
-
$currentVal=(float) $currentVal;
|
59 |
-
for($i=0.0; $i<=1.0; $i+=0.1) {
|
60 |
-
$v = number_format($i,1,".","");
|
61 |
-
echo "<option value=\"" . esc_attr($v) . "\" " . self::HtmlGetSelected("$i","$currentVal") .">";
|
62 |
-
echo esc_attr(number_format_i18n($i,1));
|
63 |
-
echo "</option>";
|
64 |
-
}
|
65 |
-
}
|
66 |
-
|
67 |
-
/**
|
68 |
-
* Returns the checked attribute if the given values match
|
69 |
-
*
|
70 |
-
* @since 4.0
|
71 |
-
* @param $val string The current value
|
72 |
-
* @param $equals string The value to match
|
73 |
-
* @return string The checked attribute if the given values match, an empty string if not
|
74 |
-
*/
|
75 |
-
public static function HtmlGetChecked($val, $equals) {
|
76 |
-
if($val==$equals) return self::HtmlGetAttribute("checked");
|
77 |
-
else return "";
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* Returns the selected attribute if the given values match
|
82 |
-
*
|
83 |
-
* @since 4.0
|
84 |
-
* @param $val string The current value
|
85 |
-
* @param $equals string The value to match
|
86 |
-
* @return string The selected attribute if the given values match, an empty string if not
|
87 |
-
*/
|
88 |
-
public static function HtmlGetSelected($val,$equals) {
|
89 |
-
if($val==$equals) return self::HtmlGetAttribute("selected");
|
90 |
-
else return "";
|
91 |
-
}
|
92 |
-
|
93 |
-
/**
|
94 |
-
* Returns an formatted attribute. If the value is NULL, the name will be used.
|
95 |
-
*
|
96 |
-
* @since 4.0
|
97 |
-
* @param $attr string The attribute name
|
98 |
-
* @param $value string The attribute value
|
99 |
-
* @return string The formatted attribute
|
100 |
-
*/
|
101 |
-
public static function HtmlGetAttribute($attr,$value=NULL) {
|
102 |
-
if($value==NULL) $value=$attr;
|
103 |
-
return " " . $attr . "=\"" . esc_attr($value) . "\" ";
|
104 |
-
}
|
105 |
-
|
106 |
-
/**
|
107 |
-
* Returns an array with GoogleSitemapGeneratorPage objects which is generated from POST values
|
108 |
-
*
|
109 |
-
* @since 4.0
|
110 |
-
* @see GoogleSitemapGeneratorPage
|
111 |
-
* @return array An array with GoogleSitemapGeneratorPage objects
|
112 |
-
*/
|
113 |
-
public function HtmlApplyPages() {
|
114 |
-
// Array with all page URLs
|
115 |
-
$pages_ur=(!isset($_POST["sm_pages_ur"]) || !is_array($_POST["sm_pages_ur"])?array():$_POST["sm_pages_ur"]);
|
116 |
-
|
117 |
-
//Array with all priorities
|
118 |
-
$pages_pr=(!isset($_POST["sm_pages_pr"]) || !is_array($_POST["sm_pages_pr"])?array():$_POST["sm_pages_pr"]);
|
119 |
-
|
120 |
-
//Array with all change frequencies
|
121 |
-
$pages_cf=(!isset($_POST["sm_pages_cf"]) || !is_array($_POST["sm_pages_cf"])?array():$_POST["sm_pages_cf"]);
|
122 |
-
|
123 |
-
//Array with all lastmods
|
124 |
-
$pages_lm=(!isset($_POST["sm_pages_lm"]) || !is_array($_POST["sm_pages_lm"])?array():$_POST["sm_pages_lm"]);
|
125 |
-
|
126 |
-
//Array where the new pages are stored
|
127 |
-
$pages=array();
|
128 |
-
//Loop through all defined pages and set their properties into an object
|
129 |
-
if(isset($_POST["sm_pages_mark"]) && is_array($_POST["sm_pages_mark"])) {
|
130 |
-
for($i=0; $i<count($_POST["sm_pages_mark"]); $i++) {
|
131 |
-
//Create new object
|
132 |
-
$p=new GoogleSitemapGeneratorPage();
|
133 |
-
if(substr($pages_ur[$i],0,4)=="www.") $pages_ur[$i]="http://" . $pages_ur[$i];
|
134 |
-
$p->SetUrl($pages_ur[$i]);
|
135 |
-
$p->SetProprity($pages_pr[$i]);
|
136 |
-
$p->SetChangeFreq($pages_cf[$i]);
|
137 |
-
//Try to parse last modified, if -1 (note ===) automatic will be used (0)
|
138 |
-
$lm=(!empty($pages_lm[$i])?strtotime($pages_lm[$i],time()):-1);
|
139 |
-
if($lm===-1) $p->setLastMod(0);
|
140 |
-
else $p->setLastMod($lm);
|
141 |
-
//Add it to the array
|
142 |
-
array_push($pages,$p);
|
143 |
-
}
|
144 |
-
}
|
145 |
-
|
146 |
-
return $pages;
|
147 |
-
}
|
148 |
-
|
149 |
-
static public function escape($v) {
|
150 |
-
// prevent html tags in strings where they are not required
|
151 |
-
return strtr($v, '<>', '..');
|
152 |
-
}
|
153 |
-
|
154 |
-
/**
|
155 |
-
* Displays the option page
|
156 |
-
*
|
157 |
-
* @since 3.0
|
158 |
-
* @access public
|
159 |
-
* @author Arne Brachhold
|
160 |
-
*/
|
161 |
-
public function HtmlShowOptionsPage() {
|
162 |
-
global $wp_version;
|
163 |
-
|
164 |
-
$snl = false; //SNL
|
165 |
-
|
166 |
-
$this->sg->Initate();
|
167 |
-
|
168 |
-
$message="";
|
169 |
-
|
170 |
-
if(!empty($_REQUEST["sm_rebuild"])) { //Pressed Button: Rebuild Sitemap
|
171 |
-
check_admin_referer('sitemap');
|
172 |
-
|
173 |
-
|
174 |
-
if(isset($_GET["sm_do_debug"]) && $_GET["sm_do_debug"]=="true") {
|
175 |
-
|
176 |
-
//Check again, just for the case that something went wrong before
|
177 |
-
if(!current_user_can("administrator") || !is_super_admin()) {
|
178 |
-
echo '<p>Please log in as admin</p>';
|
179 |
-
return;
|
180 |
-
}
|
181 |
-
|
182 |
-
$oldErr = error_reporting(E_ALL);
|
183 |
-
$oldIni = ini_set("display_errors",1);
|
184 |
-
|
185 |
-
echo '<div class="wrap">';
|
186 |
-
echo '<h2>' . __('XML Sitemap Generator for WordPress', 'sitemap') . " " . $this->sg->GetVersion(). '</h2>';
|
187 |
-
echo '<p>This is the debug mode of the XML Sitemap Generator. It will show all PHP notices and warnings as well as the internal logs, messages and configuration.</p>';
|
188 |
-
echo '<p style="font-weight:bold; color:red; padding:5px; border:1px red solid; text-align:center;">DO NOT POST THIS INFORMATION ON PUBLIC PAGES LIKE SUPPORT FORUMS AS IT MAY CONTAIN PASSWORDS OR SECRET SERVER INFORMATION!</p>';
|
189 |
-
echo "<h3>WordPress and PHP Information</h3>";
|
190 |
-
echo '<p>WordPress ' . $GLOBALS['wp_version'] . ' with ' . ' DB ' . $GLOBALS['wp_db_version'] . ' on PHP ' . phpversion() . '</p>';
|
191 |
-
echo '<p>Plugin version: ' . $this->sg->GetVersion() . ' (' . $this->sg->GetSvnVersion() . ')';
|
192 |
-
echo '<h4>Environment</h4>';
|
193 |
-
echo "<pre>";
|
194 |
-
$sc = $_SERVER;
|
195 |
-
unset($sc["HTTP_COOKIE"]);
|
196 |
-
print_r($sc);
|
197 |
-
echo "</pre>";
|
198 |
-
echo "<h4>WordPress Config</h4>";
|
199 |
-
echo "<pre>";
|
200 |
-
$opts = array();
|
201 |
-
if(function_exists('wp_load_alloptions')) {
|
202 |
-
$opts = wp_load_alloptions();
|
203 |
-
} else {
|
204 |
-
/** @var $wpdb wpdb*/
|
205 |
-
global $wpdb;
|
206 |
-
$os = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options");
|
207 |
-
foreach ( (array) $os as $o ) $opts[$o->option_name] = $o->option_value;
|
208 |
-
}
|
209 |
-
|
210 |
-
$popts = array();
|
211 |
-
foreach($opts as $k=>$v) {
|
212 |
-
//Try to filter out passwords etc...
|
213 |
-
if(preg_match("/pass|login|pw|secret|user|usr|key|auth|token/si",$k)) continue;
|
214 |
-
$popts[$k] = htmlspecialchars($v);
|
215 |
-
}
|
216 |
-
print_r($popts);
|
217 |
-
echo "</pre>";
|
218 |
-
echo '<h4>Sitemap Config</h4>';
|
219 |
-
echo "<pre>";
|
220 |
-
print_r($this->sg->GetOptions());
|
221 |
-
echo "</pre>";
|
222 |
-
echo '<h3>Sitemap Content and Errors, Warnings, Notices</h3>';
|
223 |
-
echo '<div>';
|
224 |
-
|
225 |
-
$sitemaps = $this->sg->SimulateIndex();
|
226 |
-
|
227 |
-
foreach($sitemaps AS $sitemap) {
|
228 |
-
|
229 |
-
/** @var $s GoogleSitemapGeneratorSitemapEntry */
|
230 |
-
$s = $sitemap["data"];
|
231 |
-
|
232 |
-
echo "<h4>Sitemap: <a href=\"" . $s->GetUrl() . "\">" . $sitemap["type"] . "/" . ($sitemap["params"]?$sitemap["params"]:"(No parameters)") . "</a> by " . $sitemap["caller"]["class"] . "</h4>";
|
233 |
-
|
234 |
-
$res = $this->sg->SimulateSitemap($sitemap["type"], $sitemap["params"]);
|
235 |
-
|
236 |
-
echo "<ul style='padding-left:10px;'>";
|
237 |
-
foreach($res AS $s) {
|
238 |
-
/** @var $d GoogleSitemapGeneratorSitemapEntry */
|
239 |
-
$d = $s["data"];
|
240 |
-
echo "<li>" . $d->GetUrl() . "</li>";
|
241 |
-
}
|
242 |
-
echo "</ul>";
|
243 |
-
}
|
244 |
-
|
245 |
-
$status = GoogleSitemapGeneratorStatus::Load();
|
246 |
-
echo '</div>';
|
247 |
-
echo '<h3>MySQL Queries</h3>';
|
248 |
-
if(defined('SAVEQUERIES') && SAVEQUERIES) {
|
249 |
-
echo '<pre>';
|
250 |
-
var_dump($GLOBALS['wpdb']->queries);
|
251 |
-
echo '</pre>';
|
252 |
-
|
253 |
-
$total = 0;
|
254 |
-
foreach($GLOBALS['wpdb']->queries as $q) {
|
255 |
-
$total+=$q[1];
|
256 |
-
}
|
257 |
-
echo '<h4>Total Query Time</h4>';
|
258 |
-
echo '<pre>' . count($GLOBALS['wpdb']->queries) . ' queries in ' . round($total,2) . ' seconds.</pre>';
|
259 |
-
} else {
|
260 |
-
echo '<p>Please edit wp-db.inc.php in wp-includes and set SAVEQUERIES to true if you want to see the queries.</p>';
|
261 |
-
}
|
262 |
-
echo "<h3>Build Process Results</h3>";
|
263 |
-
echo "<pre>";
|
264 |
-
print_r($status);
|
265 |
-
echo "</pre>";
|
266 |
-
echo '<p>Done. <a href="' . wp_nonce_url($this->sg->GetBackLink() . "&sm_rebuild=true&sm_do_debug=true",'sitemap') . '">Rebuild</a> or <a href="' . $this->sg->GetBackLink() . '">Return</a></p>';
|
267 |
-
echo '<p style="font-weight:bold; color:red; padding:5px; border:1px red solid; text-align:center;">DO NOT POST THIS INFORMATION ON PUBLIC PAGES LIKE SUPPORT FORUMS AS IT MAY CONTAIN PASSWORDS OR SECRET SERVER INFORMATION!</p>';
|
268 |
-
echo '</div>';
|
269 |
-
@error_reporting($oldErr);
|
270 |
-
@ini_set("display_errors",$oldIni);
|
271 |
-
return;
|
272 |
-
} else {
|
273 |
-
|
274 |
-
$redirURL = $this->sg->GetBackLink() . '&sm_fromrb=true';
|
275 |
-
|
276 |
-
//Redirect so the sm_rebuild GET parameter no longer exists.
|
277 |
-
@header("location: " . $redirURL);
|
278 |
-
//If there was already any other output, the header redirect will fail
|
279 |
-
echo '<script type="text/javascript">location.replace("' . $redirURL . '");</script>';
|
280 |
-
echo '<noscript><a href="' . $redirURL . '">Click here to continue</a></noscript>';
|
281 |
-
exit;
|
282 |
-
}
|
283 |
-
} else if (!empty($_POST['sm_update'])) { //Pressed Button: Update Config
|
284 |
-
check_admin_referer('sitemap');
|
285 |
-
|
286 |
-
if(isset($_POST['sm_b_style']) && $_POST['sm_b_style'] == $this->sg->getDefaultStyle()) {
|
287 |
-
$_POST['sm_b_style_default'] = true;
|
288 |
-
$_POST['sm_b_style'] = '';
|
289 |
-
}
|
290 |
-
|
291 |
-
foreach($this->sg->GetOptions() as $k=>$v) {
|
292 |
-
|
293 |
-
//Skip some options if the user is not super admin...
|
294 |
-
if(!is_super_admin() && in_array($k,array("sm_b_time","sm_b_memory","sm_b_style","sm_b_style_default"))) {
|
295 |
-
continue;
|
296 |
-
}
|
297 |
-
|
298 |
-
//Check vor values and convert them into their types, based on the category they are in
|
299 |
-
if(!isset($_POST[$k])) $_POST[$k]=""; // Empty string will get false on 2bool and 0 on 2float
|
300 |
-
|
301 |
-
//Options of the category "Basic Settings" are boolean, except the filename and the autoprio provider
|
302 |
-
if(substr($k,0,5)=="sm_b_") {
|
303 |
-
if($k=="sm_b_prio_provider" || $k == "sm_b_style" || $k == "sm_b_memory" || $k == "sm_b_baseurl") {
|
304 |
-
if($k=="sm_b_filename_manual" && strpos($_POST[$k],"\\")!==false){
|
305 |
-
$_POST[$k]=stripslashes(self::escape($_POST[$k]));
|
306 |
-
} else if($k=="sm_b_baseurl") {
|
307 |
-
$_POST[$k] = esc_url_raw(trim(self::escape($_POST[$k])));
|
308 |
-
if(!empty($_POST[$k])) $_POST[$k] = untrailingslashit($_POST[$k]);
|
309 |
-
} else if($k=="sm_b_style") {
|
310 |
-
$_POST[$k] = esc_url_raw(trim(self::escape($_POST[$k])));
|
311 |
-
if(!empty($_POST[$k])) $_POST[$k] = untrailingslashit($_POST[$k]);
|
312 |
-
}
|
313 |
-
$this->sg->SetOption($k,(string) $_POST[$k]);
|
314 |
-
} else if($k == "sm_b_time") {
|
315 |
-
if($_POST[$k]=='') $_POST[$k] = -1;
|
316 |
-
$this->sg->SetOption($k,intval($_POST[$k]));
|
317 |
-
} else if($k== "sm_i_install_date") {
|
318 |
-
if($this->sg->GetOption('i_install_date')<=0) $this->sg->SetOption($k,time());
|
319 |
-
} else if($k=="sm_b_exclude") {
|
320 |
-
$IDss = array();
|
321 |
-
$IDs = explode(",",$_POST[$k]);
|
322 |
-
for($x = 0; $x<count($IDs); $x++) {
|
323 |
-
$ID = intval(trim($IDs[$x]));
|
324 |
-
if($ID>0) $IDss[] = $ID;
|
325 |
-
}
|
326 |
-
$this->sg->SetOption($k,$IDss);
|
327 |
-
} else if($k == "sm_b_exclude_cats") {
|
328 |
-
$exCats = array();
|
329 |
-
if(isset($_POST["post_category"])) {
|
330 |
-
foreach((array) $_POST["post_category"] AS $vv) if(!empty($vv) && is_numeric($vv)) $exCats[] = intval($vv);
|
331 |
-
}
|
332 |
-
$this->sg->SetOption($k,$exCats);
|
333 |
-
} else {
|
334 |
-
$this->sg->SetOption($k,(bool) $_POST[$k]);
|
335 |
-
|
336 |
-
}
|
337 |
-
//Options of the category "Includes" are boolean
|
338 |
-
} else if(substr($k,0,6)=="sm_in_") {
|
339 |
-
if($k=='sm_in_tax') {
|
340 |
-
|
341 |
-
$enabledTaxonomies = array();
|
342 |
-
|
343 |
-
foreach(array_keys((array) $_POST[$k]) AS $taxName) {
|
344 |
-
if(empty($taxName) || !taxonomy_exists($taxName)) continue;
|
345 |
-
|
346 |
-
$enabledTaxonomies[] = self::escape($taxName);
|
347 |
-
}
|
348 |
-
|
349 |
-
$this->sg->SetOption($k,$enabledTaxonomies);
|
350 |
-
|
351 |
-
} else if($k=='sm_in_customtypes') {
|
352 |
-
|
353 |
-
$enabledPostTypes = array();
|
354 |
-
|
355 |
-
foreach(array_keys((array) $_POST[$k]) AS $postTypeName) {
|
356 |
-
if(empty($postTypeName) || !post_type_exists($postTypeName)) continue;
|
357 |
-
|
358 |
-
$enabledPostTypes[] = self::escape($postTypeName);
|
359 |
-
}
|
360 |
-
|
361 |
-
$this->sg->SetOption($k, $enabledPostTypes);
|
362 |
-
|
363 |
-
} else $this->sg->SetOption($k,(bool) $_POST[$k]);
|
364 |
-
//Options of the category "Change frequencies" are string
|
365 |
-
} else if(substr($k,0,6)=="sm_cf_") {
|
366 |
-
$this->sg->SetOption($k,(string) self::escape($_POST[$k]));
|
367 |
-
//Options of the category "Priorities" are float
|
368 |
-
} else if(substr($k,0,6)=="sm_pr_") {
|
369 |
-
$this->sg->SetOption($k,(float) $_POST[$k]);
|
370 |
-
}
|
371 |
-
}
|
372 |
-
|
373 |
-
//Apply page changes from POST
|
374 |
-
if(is_super_admin()) $this->sg->SetPages($this->HtmlApplyPages());
|
375 |
-
|
376 |
-
if($this->sg->SaveOptions()) $message.=__('Configuration updated', 'sitemap') . "<br />";
|
377 |
-
else $message.=__('Error while saving options', 'sitemap') . "<br />";
|
378 |
-
|
379 |
-
if(is_super_admin()) {
|
380 |
-
if($this->sg->SavePages()) $message.=__("Pages saved",'sitemap') . "<br />";
|
381 |
-
else $message.=__('Error while saving pages', 'sitemap'). "<br />";
|
382 |
-
}
|
383 |
-
|
384 |
-
} else if(!empty($_POST["sm_reset_config"])) { //Pressed Button: Reset Config
|
385 |
-
check_admin_referer('sitemap');
|
386 |
-
$this->sg->InitOptions();
|
387 |
-
$this->sg->SaveOptions();
|
388 |
-
|
389 |
-
$message.=__('The default configuration was restored.','sitemap');
|
390 |
-
} else if(!empty($_GET["sm_delete_old"])) { //Delete old sitemap files
|
391 |
-
check_admin_referer('sitemap');
|
392 |
-
|
393 |
-
//Check again, just for the case that something went wrong before
|
394 |
-
if(!current_user_can("administrator")) {
|
395 |
-
echo '<p>Please log in as admin</p>';
|
396 |
-
return;
|
397 |
-
}
|
398 |
-
if(!$this->sg->DeleteOldFiles()) {
|
399 |
-
$message = __("The old files could NOT be deleted. Please use an FTP program and delete them by yourself.","sitemap");
|
400 |
-
} else {
|
401 |
-
$message = __("The old files were successfully deleted.","sitemap");
|
402 |
-
}
|
403 |
-
} else if(!empty($_GET["sm_ping_all"])) {
|
404 |
-
check_admin_referer('sitemap');
|
405 |
-
|
406 |
-
//Check again, just for the case that something went wrong before
|
407 |
-
if(!current_user_can("administrator")) {
|
408 |
-
echo '<p>Please log in as admin</p>';
|
409 |
-
return;
|
410 |
-
}
|
411 |
-
|
412 |
-
echo <<<HTML
|
413 |
-
<html>
|
414 |
-
<head>
|
415 |
-
<style type="text/css">
|
416 |
-
html {
|
417 |
-
background: #f1f1f1;
|
418 |
-
}
|
419 |
-
|
420 |
-
body {
|
421 |
-
color: #444;
|
422 |
-
font-family: "Open Sans", sans-serif;
|
423 |
-
font-size: 13px;
|
424 |
-
line-height: 1.4em;
|
425 |
-
min-width: 600px;
|
426 |
-
}
|
427 |
-
|
428 |
-
h2 {
|
429 |
-
font-size: 23px;
|
430 |
-
font-weight: 400;
|
431 |
-
padding: 9px 10px 4px 0;
|
432 |
-
line-height: 29px;
|
433 |
-
}
|
434 |
-
</style>
|
435 |
-
</head>
|
436 |
-
<body>
|
437 |
-
HTML;
|
438 |
-
echo "<h2>" . __('Notify Search Engines about all sitemaps','sitemap') ."</h2>";
|
439 |
-
echo "<p>" . __('The plugin is notifying the selected search engines about your main sitemap and all sub-sitemaps. This might take a minute or two.','sitemaps') . "</p>";
|
440 |
-
flush();
|
441 |
-
$results = $this->sg->SendPingAll();
|
442 |
-
|
443 |
-
echo "<ul>";
|
444 |
-
|
445 |
-
foreach($results AS $result) {
|
446 |
-
|
447 |
-
$sitemapUrl = $result["sitemap"];
|
448 |
-
/** @var $status GoogleSitemapGeneratorStatus */
|
449 |
-
$status = $result["status"];
|
450 |
-
|
451 |
-
echo "<li><a href=\"" . esc_url($sitemapUrl) . "\">" . $sitemapUrl . "</a><ul>";
|
452 |
-
$services = $status->GetUsedPingServices();
|
453 |
-
foreach($services AS $serviceId) {
|
454 |
-
echo "<li>";
|
455 |
-
echo $status->GetServiceName($serviceId) . ": " . ($status->GetPingResult($serviceId)==true?"OK":"ERROR");
|
456 |
-
echo "</li>";
|
457 |
-
}
|
458 |
-
echo "</ul></li>";
|
459 |
-
}
|
460 |
-
echo "</ul>";
|
461 |
-
echo "<p>" . __('All done!','sitemap') . "</p>";
|
462 |
-
echo <<<HTML
|
463 |
-
|
464 |
-
</body>
|
465 |
-
HTML;
|
466 |
-
exit;
|
467 |
-
} else if(!empty($_GET["sm_ping_main"])) {
|
468 |
-
|
469 |
-
check_admin_referer('sitemap');
|
470 |
-
|
471 |
-
//Check again, just for the case that something went wrong before
|
472 |
-
if(!current_user_can("administrator")) {
|
473 |
-
echo '<p>Please log in as admin</p>';
|
474 |
-
return;
|
475 |
-
}
|
476 |
-
|
477 |
-
$this->sg->SendPing();
|
478 |
-
$message = __("Ping was executed, please see below for the result.","sitemap");
|
479 |
-
}
|
480 |
-
|
481 |
-
//Print out the message to the user, if any
|
482 |
-
if($message!="") {
|
483 |
-
?>
|
484 |
-
<div class="updated"><p><strong><?php
|
485 |
-
echo $message;
|
486 |
-
?></strong></p></div><?php
|
487 |
-
}
|
488 |
-
|
489 |
-
|
490 |
-
if(!$snl) {
|
491 |
-
|
492 |
-
if(isset($_GET['sm_hidedonate'])) {
|
493 |
-
$this->sg->SetOption('i_hide_donated',true);
|
494 |
-
$this->sg->SaveOptions();
|
495 |
-
}
|
496 |
-
if(isset($_GET['sm_donated'])) {
|
497 |
-
$this->sg->SetOption('i_donated',true);
|
498 |
-
$this->sg->SaveOptions();
|
499 |
-
}
|
500 |
-
if(isset($_GET['sm_hide_note'])) {
|
501 |
-
$this->sg->SetOption('i_hide_note',true);
|
502 |
-
$this->sg->SaveOptions();
|
503 |
-
}
|
504 |
-
if(isset($_GET['sm_hide_survey'])) {
|
505 |
-
$this->sg->SetOption('i_hide_survey',true);
|
506 |
-
$this->sg->SaveOptions();
|
507 |
-
}
|
508 |
-
if(isset($_GET['sm_hidedonors'])) {
|
509 |
-
$this->sg->SetOption('i_hide_donors',true);
|
510 |
-
$this->sg->SaveOptions();
|
511 |
-
}
|
512 |
-
if(isset($_GET['sm_hide_works'])) {
|
513 |
-
$this->sg->SetOption('i_hide_works',true);
|
514 |
-
$this->sg->SaveOptions();
|
515 |
-
}
|
516 |
-
if(isset($_GET['sm_disable_supportfeed'])) {
|
517 |
-
$this->sg->SetOption('i_supportfeed',$_GET["sm_disable_supportfeed"]=="true"?false:true);
|
518 |
-
$this->sg->SaveOptions();
|
519 |
-
}
|
520 |
-
|
521 |
-
|
522 |
-
if(isset($_GET['sm_donated']) || ($this->sg->GetOption('i_donated')===true && $this->sg->GetOption('i_hide_donated')!==true)) {
|
523 |
-
?>
|
524 |
-
<!--
|
525 |
-
<div class="updated">
|
526 |
-
<strong><p><?php _e('Thank you very much for your donation. You help me to continue support and development of this plugin and other free software!','sitemap'); ?> <a href="<?php echo $this->sg->GetBackLink() . "&sm_hidedonate=true"; ?>"><small style="font-weight:normal;"><?php _e('Hide this notice', 'sitemap'); ?></small></a></p></strong>
|
527 |
-
</div>
|
528 |
-
-->
|
529 |
-
<?php
|
530 |
-
} else if($this->sg->GetOption('i_donated') !== true && $this->sg->GetOption('i_install_date')>0 && $this->sg->GetOption('i_hide_note')!==true && time() > ($this->sg->GetOption('i_install_date') + (60*60*24*30))) {
|
531 |
-
?>
|
532 |
-
<!--
|
533 |
-
<div class="updated">
|
534 |
-
<strong><p><?php echo str_replace("%s",$this->sg->GetRedirectLink("sitemap-donate-note"),__('Thanks for using this plugin! You\'ve installed this plugin over a month ago. If it works and you are satisfied with the results, isn\'t it worth at least a few dollar? <a href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-donate-note">Donations</a> help me to continue support and development of this <i>free</i> software! <a href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-donate-note">Sure, no problem!</a>','sitemap')); ?> <a href="<?php echo $this->sg->GetBackLink() . "&sm_donated=true"; ?>" style="float:right; display:block; border:none; margin-left:10px;"><small style="font-weight:normal; "><?php _e('Sure, but I already did!', 'sitemap'); ?></small></a> <a href="<?php echo $this->sg->GetBackLink() . "&sm_hide_note=true"; ?>" style="float:right; display:block; border:none;"><small style="font-weight:normal; "><?php _e('No thanks, please don\'t bug me anymore!', 'sitemap'); ?></small></a></p></strong>
|
535 |
-
<div style="clear:right;"></div>
|
536 |
-
</div>
|
537 |
-
-->
|
538 |
-
<?php
|
539 |
-
} else if($this->sg->GetOption('i_install_date')>0 && $this->sg->GetOption('i_hide_works')!==true && time() > ($this->sg->GetOption('i_install_date') + (60*60*24*15))) {
|
540 |
-
?>
|
541 |
-
<div class="updated">
|
542 |
-
<strong><p><?php echo str_replace("%s",$this->sg->GetRedirectLink("sitemap-works-note"),__('Thanks for using this plugin! You\'ve installed this plugin some time ago. If it works and your are satisfied, why not <a href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-works-note">rate it</a> and <a href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-works-note">recommend it</a> to others? :-)','sitemap')); ?> <a href="<?php echo $this->sg->GetBackLink() . "&sm_hide_works=true"; ?>" style="float:right; display:block; border:none;"><small style="font-weight:normal; "><?php _e('Don\'t show this anymore', 'sitemap'); ?></small></a></p></strong>
|
543 |
-
<div style="clear:right;"></div>
|
544 |
-
</div>
|
545 |
-
<?php
|
546 |
-
}
|
547 |
-
|
548 |
-
if ($this->sg->ShowSurvey())
|
549 |
-
$this->sg->HtmlSurvey();
|
550 |
-
}
|
551 |
-
|
552 |
-
?>
|
553 |
-
|
554 |
-
<style type="text/css">
|
555 |
-
|
556 |
-
li.sm_hint {
|
557 |
-
color:green;
|
558 |
-
}
|
559 |
-
|
560 |
-
li.sm_optimize {
|
561 |
-
color:orange;
|
562 |
-
}
|
563 |
-
|
564 |
-
li.sm_error {
|
565 |
-
color:red;
|
566 |
-
}
|
567 |
-
|
568 |
-
input.sm_warning:hover {
|
569 |
-
background: #ce0000;
|
570 |
-
color: #fff;
|
571 |
-
}
|
572 |
-
|
573 |
-
a.sm_button {
|
574 |
-
padding:4px;
|
575 |
-
display:block;
|
576 |
-
padding-left:25px;
|
577 |
-
background-repeat:no-repeat;
|
578 |
-
background-position:5px 50%;
|
579 |
-
text-decoration:none;
|
580 |
-
border:none;
|
581 |
-
}
|
582 |
-
|
583 |
-
a.sm_button:hover {
|
584 |
-
border-bottom-width:1px;
|
585 |
-
}
|
586 |
-
|
587 |
-
a.sm_donatePayPal {
|
588 |
-
background-image:url(<?php echo $this->sg->GetPluginUrl(); ?>img/icon-paypal.gif);
|
589 |
-
}
|
590 |
-
|
591 |
-
a.sm_donateAmazon {
|
592 |
-
background-image:url(<?php echo $this->sg->GetPluginUrl(); ?>img/icon-amazon.gif);
|
593 |
-
}
|
594 |
-
|
595 |
-
a.sm_pluginHome {
|
596 |
-
background-image:url(<?php echo $this->sg->GetPluginUrl(); ?>img/icon-arne.gif);
|
597 |
-
}
|
598 |
-
|
599 |
-
a.sm_pluginHelp {
|
600 |
-
background-image:url(<?php echo $this->sg->GetPluginUrl(); ?>img/icon-help.png);
|
601 |
-
}
|
602 |
-
|
603 |
-
a.sm_pluginList {
|
604 |
-
background-image:url(<?php echo $this->sg->GetPluginUrl(); ?>img/icon-email.gif);
|
605 |
-
}
|
606 |
-
|
607 |
-
a.sm_pluginSupport {
|
608 |
-
background-image:url(<?php echo $this->sg->GetPluginUrl(); ?>img/icon-wordpress.gif);
|
609 |
-
}
|
610 |
-
|
611 |
-
a.sm_pluginBugs {
|
612 |
-
background-image:url(<?php echo $this->sg->GetPluginUrl(); ?>img/icon-trac.gif);
|
613 |
-
}
|
614 |
-
|
615 |
-
a.sm_resGoogle {
|
616 |
-
background-image:url(<?php echo $this->sg->GetPluginUrl(); ?>img/icon-google.gif);
|
617 |
-
}
|
618 |
-
|
619 |
-
a.sm_resYahoo {
|
620 |
-
background-image:url(<?php echo $this->sg->GetPluginUrl(); ?>img/icon-yahoo.gif);
|
621 |
-
}
|
622 |
-
|
623 |
-
a.sm_resBing {
|
624 |
-
background-image:url(<?php echo $this->sg->GetPluginUrl(); ?>img/icon-bing.gif);
|
625 |
-
}
|
626 |
-
|
627 |
-
div.sm-update-nag p {
|
628 |
-
margin:5px;
|
629 |
-
}
|
630 |
-
|
631 |
-
.sm-padded .inside {
|
632 |
-
margin: 12px !important;
|
633 |
-
}
|
634 |
-
|
635 |
-
.sm-padded .inside ul {
|
636 |
-
margin: 6px 0 12px 0;
|
637 |
-
}
|
638 |
-
|
639 |
-
.sm-padded .inside input {
|
640 |
-
padding: 1px;
|
641 |
-
margin: 0;
|
642 |
-
}
|
643 |
-
|
644 |
-
.hndle {
|
645 |
-
cursor:auto!important;
|
646 |
-
-webkit-user-select:auto!important;
|
647 |
-
-moz-user-select:auto!important;
|
648 |
-
-ms-user-select:auto!important;
|
649 |
-
user-select:auto!important;
|
650 |
-
}
|
651 |
-
|
652 |
-
|
653 |
-
<?php if (version_compare($wp_version, "3.4", "<")): //Fix style for WP 3.4 (dirty way for now..) ?>
|
654 |
-
|
655 |
-
.inner-sidebar #side-sortables, .columns-2 .inner-sidebar #side-sortables {
|
656 |
-
min-height: 300px;
|
657 |
-
width: 280px;
|
658 |
-
padding: 0;
|
659 |
-
}
|
660 |
-
|
661 |
-
.has-right-sidebar .inner-sidebar {
|
662 |
-
display: block;
|
663 |
-
}
|
664 |
-
|
665 |
-
.inner-sidebar {
|
666 |
-
float: right;
|
667 |
-
clear: right;
|
668 |
-
display: none;
|
669 |
-
width: 281px;
|
670 |
-
position: relative;
|
671 |
-
}
|
672 |
-
|
673 |
-
.has-right-sidebar #post-body-content {
|
674 |
-
margin-right: 300px;
|
675 |
-
}
|
676 |
-
|
677 |
-
#post-body-content {
|
678 |
-
width: auto !important;
|
679 |
-
float: none !important;
|
680 |
-
}
|
681 |
-
|
682 |
-
<?php endif; ?>
|
683 |
-
|
684 |
-
|
685 |
-
</style>
|
686 |
-
|
687 |
-
|
688 |
-
<div class="wrap" id="sm_div">
|
689 |
-
<form method="post" action="<?php echo $this->sg->GetBackLink() ?>">
|
690 |
-
<h2><?php _e('XML Sitemap Generator for WordPress', 'sitemap'); echo " " . $this->sg->GetVersion() ?> </h2>
|
691 |
-
<?php
|
692 |
-
|
693 |
-
if(get_option('blog_public')!=1) {
|
694 |
-
?><div class="error"><p><?php echo str_replace("%s","options-reading.php#blog_public",__('Your site is currently blocking search engines! Visit the <a href="%s">Reading Settings</a> to change this.','sitemap')); ?></p></div><?php
|
695 |
-
}
|
696 |
-
|
697 |
-
?>
|
698 |
-
|
699 |
-
<?php if(!$snl): ?>
|
700 |
-
<div id="poststuff" class="metabox-holder has-right-sidebar">
|
701 |
-
<div class="inner-sidebar">
|
702 |
-
<div id="side-sortables" class="meta-box-sortabless ui-sortable" style="position:relative;">
|
703 |
-
<?php else: ?>
|
704 |
-
<div id="poststuff" class="metabox-holder">
|
705 |
-
<?php endif; ?>
|
706 |
-
|
707 |
-
|
708 |
-
<?php if(!$snl): ?>
|
709 |
-
<?php $this->HtmlPrintBoxHeader('sm_pnres',__('About this Plugin:','sitemap'),true); ?>
|
710 |
-
<a class="sm_button sm_pluginHome" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-home"><?php _e('Plugin Homepage','sitemap'); ?></a>
|
711 |
-
<a class="sm_button sm_pluginHome" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-feedback"><?php _e('Suggest a Feature','sitemap'); ?></a>
|
712 |
-
<a class="sm_button sm_pluginHelp" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-help"><?php _e('Help / FAQ','sitemap'); ?></a>
|
713 |
-
<a class="sm_button sm_pluginList" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-list"><?php _e('Notify List','sitemap'); ?></a>
|
714 |
-
<a class="sm_button sm_pluginSupport" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-support"><?php _e('Support Forum','sitemap'); ?></a>
|
715 |
-
<a class="sm_button sm_pluginBugs" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-bugs"><?php _e('Report a Bug','sitemap'); ?></a>
|
716 |
-
|
717 |
-
<?php if(__('translator_name','sitemap')!='translator_name') {?><a class="sm_button sm_pluginSupport" href="<?php _e('translator_url','sitemap'); ?>"><?php _e('translator_name','sitemap'); ?></a><?php } ?>
|
718 |
-
<?php $this->HtmlPrintBoxFooter(true); ?>
|
719 |
-
|
720 |
-
<?php $this->HtmlPrintBoxHeader('sm_smres',__('Sitemap Resources:','sitemap'),true); ?>
|
721 |
-
<a class="sm_button sm_resGoogle" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-gwt"><?php _e('Webmaster Tools','sitemap'); ?></a>
|
722 |
-
<a class="sm_button sm_resGoogle" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-gwb"><?php _e('Webmaster Blog','sitemap'); ?></a>
|
723 |
-
|
724 |
-
<a class="sm_button sm_resYahoo" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-ywb"><?php _e('Search Blog','sitemap'); ?></a>
|
725 |
-
|
726 |
-
<a class="sm_button sm_resBing" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-lwt"><?php _e('Webmaster Tools','sitemap'); ?></a>
|
727 |
-
<a class="sm_button sm_resBing" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-lswcb"><?php _e('Webmaster Center Blog','sitemap'); ?></a>
|
728 |
-
<br />
|
729 |
-
<a class="sm_button sm_resGoogle" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-prot"><?php _e('Sitemaps Protocol','sitemap'); ?></a>
|
730 |
-
<a class="sm_button sm_resGoogle" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-ofat"><?php _e('Official Sitemaps FAQ','sitemap'); ?></a>
|
731 |
-
<a class="sm_button sm_pluginHome" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-afaq"><?php _e('My Sitemaps FAQ','sitemap'); ?></a>
|
732 |
-
<?php $this->HtmlPrintBoxFooter(true); ?>
|
733 |
-
|
734 |
-
|
735 |
-
</div>
|
736 |
-
</div>
|
737 |
-
<?php endif; ?>
|
738 |
-
|
739 |
-
<div class="has-sidebar sm-padded" >
|
740 |
-
|
741 |
-
<div id="post-body-content" class="<?php if(!$snl): ?>has-sidebar-content<?php endif; ?>">
|
742 |
-
|
743 |
-
<div class="meta-box-sortabless">
|
744 |
-
|
745 |
-
|
746 |
-
<!-- Rebuild Area -->
|
747 |
-
<?php
|
748 |
-
|
749 |
-
$status = GoogleSitemapGeneratorStatus::Load();
|
750 |
-
$head = __('Search engines haven\'t been notified yet','sitemap');
|
751 |
-
if($status != null && $status->GetStartTime() > 0) {
|
752 |
-
$st=$status->GetStartTime() + (get_option( 'gmt_offset' ) * 3600);
|
753 |
-
|
754 |
-
$head=str_replace("%date%",date_i18n(get_option('date_format'),$st) . " " . date_i18n(get_option('time_format'),$st),__('Result of the last ping, started on %date%.','sitemap'));
|
755 |
-
}
|
756 |
-
|
757 |
-
$this->HtmlPrintBoxHeader('sm_rebuild',$head); ?>
|
758 |
-
|
759 |
-
|
760 |
-
<div style="border-left: 1px #DFDFDF solid; float:right; padding-left:15px; margin-left:10px; width:35%;">
|
761 |
-
<strong><?php _e('Recent Support Topics / News','sitemap'); ?></strong>
|
762 |
-
<?php
|
763 |
-
if($this->sg->GetOption('i_supportfeed')) {
|
764 |
-
|
765 |
-
echo "<small><a href=\"" . wp_nonce_url($this->sg->GetBackLink() . "&sm_disable_supportfeed=true") . "\">" . __('Disable','sitemap') . "</a></small>";
|
766 |
-
|
767 |
-
$supportFeed = $this->sg->GetSupportFeed();
|
768 |
-
|
769 |
-
if (!is_wp_error($supportFeed) && $supportFeed) {
|
770 |
-
$supportItems = $supportFeed->get_items(0, $supportFeed->get_item_quantity(3));
|
771 |
-
|
772 |
-
if(count($supportItems)>0) {
|
773 |
-
echo "<ul>";
|
774 |
-
foreach($supportItems AS $item) {
|
775 |
-
$url = esc_url($item->get_permalink());
|
776 |
-
$title = esc_html($item->get_title());
|
777 |
-
echo "<li><a rel=\"external\" target=\"_blank\" href=\"{$url}\">{$title}</a></li>";
|
778 |
-
|
779 |
-
}
|
780 |
-
echo "</ul>";
|
781 |
-
}
|
782 |
-
} else {
|
783 |
-
echo "<ul><li>" . __('No support topics available or an error occurred while fetching them.','sitemap') . "</li></ul>";
|
784 |
-
}
|
785 |
-
} else {
|
786 |
-
echo "<ul><li>" . __('Support Topics have been disabled. Enable them to see useful information regarding this plugin. No Ads or Spam!','sitemap') . " " . "<a href=\"" . wp_nonce_url($this->sg->GetBackLink() . "&sm_disable_supportfeed=false") . "\">" . __('Enable','sitemap') . "</a>". "</li></ul>";
|
787 |
-
}
|
788 |
-
?>
|
789 |
-
</div>
|
790 |
-
|
791 |
-
|
792 |
-
<div style="min-height:150px;">
|
793 |
-
<ul>
|
794 |
-
<?php
|
795 |
-
|
796 |
-
if($this->sg->OldFileExists()) {
|
797 |
-
echo "<li class=\"sm_error\">" . str_replace("%s",wp_nonce_url($this->sg->GetBackLink() . "&sm_delete_old=true",'sitemap'),__('There is still a sitemap.xml or sitemap.xml.gz file in your site directory. Please delete them as no static files are used anymore or <a href="%s">try to delete them automatically</a>.','sitemap')) . "</li>";
|
798 |
-
}
|
799 |
-
|
800 |
-
echo "<li>" . str_replace("%s", esc_url($this->sg->getXmlUrl()),__('The URL to your sitemap index file is: <a href="%s">%s</a>.','sitemap')) . "</li>";
|
801 |
-
|
802 |
-
if($status == null) {
|
803 |
-
echo "<li>" . __('Search engines haven\'t been notified yet. Write a post to let them know about your sitemap.','sitemap') . "</li>";
|
804 |
-
} else {
|
805 |
-
|
806 |
-
$services = $status->GetUsedPingServices();
|
807 |
-
|
808 |
-
foreach($services AS $service) {
|
809 |
-
$name = $status->GetServiceName($service);
|
810 |
-
|
811 |
-
if($status->GetPingResult($service)) {
|
812 |
-
echo "<li>" . sprintf(__("%s was <b>successfully notified</b> about changes.",'sitemap'),$name). "</li>";
|
813 |
-
$dur = $status->GetPingDuration($service);
|
814 |
-
if($dur > 4) {
|
815 |
-
echo "<li class=\sm_optimize\">" . str_replace(array("%time%","%name%"),array($dur,$name),__("It took %time% seconds to notify %name%, maybe you want to disable this feature to reduce the building time.",'sitemap')) . "</li>";
|
816 |
-
}
|
817 |
-
} else {
|
818 |
-
echo "<li class=\"sm_error\">" . str_replace(array("%s","%name%"),array(wp_nonce_url($this->sg->GetBackLink() . "&sm_ping_service=" . $service . "&noheader=true",'sitemap'),$name),__('There was a problem while notifying %name%. <a href="%s" target="_blank">View result</a>','sitemap')) . "</li>";
|
819 |
-
}
|
820 |
-
}
|
821 |
-
}
|
822 |
-
|
823 |
-
?>
|
824 |
-
<?php if($this->sg->GetOption('b_ping') || $this->sg->GetOption('b_pingmsn')): ?>
|
825 |
-
<li>
|
826 |
-
Notify Search Engines about <a href="<?php echo wp_nonce_url($this->sg->GetBackLink() . "&sm_ping_main=true",'sitemap'); ?>">your sitemap </a> or <a href="#" onclick="window.open('<?php echo wp_nonce_url($this->sg->GetBackLink() . "&sm_ping_all=true&noheader=true",'sitemap'); ?>','','width=650, height=500, resizable=yes'); return false;">your main sitemap and all sub-sitemaps</a> now.
|
827 |
-
</li>
|
828 |
-
<?php endif; ?>
|
829 |
-
|
830 |
-
<?php if(is_super_admin()) echo "<li>" . str_replace("%d",wp_nonce_url($this->sg->GetBackLink() . "&sm_rebuild=true&sm_do_debug=true",'sitemap'),__('If you encounter any problems with your sitemap you can use the <a href="%d">debug function</a> to get more information.','sitemap')) . "</li>"; ?>
|
831 |
-
</ul>
|
832 |
-
<ul>
|
833 |
-
<li>
|
834 |
-
<?php echo sprintf(__('If you like the plugin, please <a target="_blank" href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-works-note">rate it 5 stars</a>! :)','sitemap'),$this->sg->GetRedirectLink('sitemap-works-note'),$this->sg->GetRedirectLink('sitemap-paypal')); ?>
|
835 |
-
</li>
|
836 |
-
|
837 |
-
</ul>
|
838 |
-
</div>
|
839 |
-
<?php $this->HtmlPrintBoxFooter(); ?>
|
840 |
-
|
841 |
-
<?php if($this->sg->IsNginx() && $this->sg->IsUsingPermalinks()): ?>
|
842 |
-
<?php $this->HtmlPrintBoxHeader('ngin_x',__('Webserver Configuration', 'sitemap')); ?>
|
843 |
-
<?php _e('Since you are using Nginx as your web-server, please configure the following rewrite rules in case you get 404 Not Found errors for your sitemap:','sitemap'); ?>
|
844 |
-
<p>
|
845 |
-
<code style="display:block; overflow-x:auto; white-space: nowrap;">
|
846 |
-
<?php
|
847 |
-
$rules = GoogleSitemapGeneratorLoader::GetNginXRules();
|
848 |
-
foreach($rules AS $rule) {
|
849 |
-
echo $rule . "<br />";
|
850 |
-
}
|
851 |
-
?>
|
852 |
-
</code>
|
853 |
-
</p>
|
854 |
-
<?php $this->HtmlPrintBoxFooter(); ?>
|
855 |
-
<?php endif; ?>
|
856 |
-
|
857 |
-
|
858 |
-
<!-- Basic Options -->
|
859 |
-
<?php $this->HtmlPrintBoxHeader('sm_basic_options',__('Basic Options', 'sitemap')); ?>
|
860 |
-
|
861 |
-
<b><?php _e('Update notification:','sitemap'); ?></b> <a href="<?php echo $this->sg->GetRedirectLink('sitemap-help-options-ping'); ?>"><?php _e('Learn more','sitemap'); ?></a>
|
862 |
-
<ul>
|
863 |
-
<li>
|
864 |
-
<input type="checkbox" id="sm_b_ping" name="sm_b_ping" <?php echo ($this->sg->GetOption("b_ping")==true?"checked=\"checked\"":"") ?> />
|
865 |
-
<label for="sm_b_ping"><?php _e('Notify Google about updates of your site', 'sitemap') ?></label><br />
|
866 |
-
<small><?php echo str_replace("%s",$this->sg->GetRedirectLink('sitemap-gwt'),__('No registration required, but you can join the <a href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-gwt">Google Webmaster Tools</a> to check crawling statistics.','sitemap')); ?></small>
|
867 |
-
</li>
|
868 |
-
<li>
|
869 |
-
<input type="checkbox" id="sm_b_pingmsn" name="sm_b_pingmsn" <?php echo ($this->sg->GetOption("b_pingmsn")==true?"checked=\"checked\"":"") ?> />
|
870 |
-
<label for="sm_b_pingmsn"><?php _e('Notify Bing (formerly MSN Live Search) about updates of your site', 'sitemap') ?></label><br />
|
871 |
-
<small><?php echo str_replace("%s",$this->sg->GetRedirectLink('sitemap-lwt'),__('No registration required, but you can join the <a href="https://8rkh4sskhh.execute-api.us-east-1.amazonaws.com/gsg/v1/sitemap-lwt">Bing Webmaster Tools</a> to check crawling statistics.','sitemap')); ?></small>
|
872 |
-
</li>
|
873 |
-
<li>
|
874 |
-
<label for="sm_b_robots">
|
875 |
-
<input type="checkbox" id="sm_b_robots" name="sm_b_robots" <?php echo ($this->sg->GetOption("b_robots")==true?"checked=\"checked\"":"") ?> />
|
876 |
-
<?php _e("Add sitemap URL to the virtual robots.txt file.",'sitemap'); ?>
|
877 |
-
</label>
|
878 |
-
|
879 |
-
<br />
|
880 |
-
<small><?php _e('The virtual robots.txt generated by WordPress is used. A real robots.txt file must NOT exist in the site directory!','sitemap'); ?></small>
|
881 |
-
</li>
|
882 |
-
</ul>
|
883 |
-
<?php if(is_super_admin()): ?>
|
884 |
-
<b><?php _e('Advanced options:','sitemap'); ?></b> <a href="<?php echo $this->sg->GetRedirectLink('sitemap-help-options-adv'); ?>"><?php _e('Learn more','sitemap'); ?></a>
|
885 |
-
<ul>
|
886 |
-
<li>
|
887 |
-
<label for="sm_b_memory"><?php _e('Try to increase the memory limit to:', 'sitemap') ?> <input type="text" name="sm_b_memory" id="sm_b_memory" style="width:40px;" value="<?php echo esc_attr($this->sg->GetOption("b_memory")); ?>" /></label> (<?php echo htmlspecialchars(__('e.g. "4M", "16M"', 'sitemap')); ?>)
|
888 |
-
</li>
|
889 |
-
<li>
|
890 |
-
<label for="sm_b_time"><?php _e('Try to increase the execution time limit to:', 'sitemap') ?> <input type="text" name="sm_b_time" id="sm_b_time" style="width:40px;" value="<?php echo esc_attr(($this->sg->GetOption("b_time")===-1?'':$this->sg->GetOption("b_time"))); ?>" /></label> (<?php echo htmlspecialchars(__('in seconds, e.g. "60" or "0" for unlimited', 'sitemap')) ?>)
|
891 |
-
</li>
|
892 |
-
<li>
|
893 |
-
<label for="sm_b_autozip">
|
894 |
-
<input type="checkbox" id="sm_b_autozip" name="sm_b_autozip" <?php echo ($this->sg->GetOption("b_autozip")==true?"checked=\"checked\"":"") ?> />
|
895 |
-
<?php _e('Try to automatically compress the sitemap if the requesting client supports it.', 'sitemap') ?>
|
896 |
-
</label><br />
|
897 |
-
<small><?php _e('Disable this option if you get garbled content or encoding errors in your sitemap.','sitemap'); ?></small>
|
898 |
-
</li>
|
899 |
-
<li>
|
900 |
-
<?php $useDefStyle = ($this->sg->GetDefaultStyle() && $this->sg->GetOption('b_style_default')===true); ?>
|
901 |
-
<label for="sm_b_style"><?php _e('Include a XSLT stylesheet:', 'sitemap') ?> <input <?php echo ($useDefStyle?'disabled="disabled" ':'') ?> type="text" name="sm_b_style" id="sm_b_style" value="<?php echo esc_attr($this->sg->GetOption("b_style")); ?>" /></label>
|
902 |
-
(<?php _e('Full or relative URL to your .xsl file', 'sitemap') ?>) <?php if($this->sg->GetDefaultStyle()): ?><label for="sm_b_style_default"><input <?php echo ($useDefStyle?'checked="checked" ':'') ?> type="checkbox" id="sm_b_style_default" name="sm_b_style_default" onclick="document.getElementById('sm_b_style').disabled = this.checked;" /> <?php _e('Use default', 'sitemap') ?></label> <?php endif; ?>
|
903 |
-
</li>
|
904 |
-
<li>
|
905 |
-
<label for="sm_b_baseurl"><?php _e('Override the base URL of the sitemap:', 'sitemap') ?> <input type="text" name="sm_b_baseurl" id="sm_b_baseurl" value="<?php echo esc_attr($this->sg->GetOption("b_baseurl")); ?>" /></label><br />
|
906 |
-
<small><?php _e('Use this if your site is in a sub-directory, but you want the sitemap be located in the root. Requires .htaccess modification.','sitemap'); ?> <a href="<?php echo $this->sg->GetRedirectLink('sitemap-help-options-adv-baseurl'); ?>"><?php _e('Learn more','sitemap'); ?></a></small>
|
907 |
-
</li>
|
908 |
-
<li>
|
909 |
-
<label for="sm_b_html">
|
910 |
-
<input type="checkbox" id="sm_b_html" name="sm_b_html" <?php if(!$this->sg->IsXslEnabled()) echo 'disabled="disabled"'; ?> <?php echo ($this->sg->GetOption("b_html")==true && $this->sg->IsXslEnabled()?"checked=\"checked\"":"") ?> />
|
911 |
-
<?php _e('Include sitemap in HTML format', 'sitemap') ?> <?php if(!$this->sg->IsXslEnabled()) _e('(The required PHP XSL Module is not installed)', 'sitemap') ?>
|
912 |
-
</label>
|
913 |
-
</li>
|
914 |
-
<li>
|
915 |
-
<label for="sm_b_stats">
|
916 |
-
<input type="checkbox" id="sm_b_stats" name="sm_b_stats" <?php echo ($this->sg->GetOption("b_stats")==true?"checked=\"checked\"":"") ?> />
|
917 |
-
<?php _e('Allow anonymous statistics (no personal information)', 'sitemap') ?>
|
918 |
-
</label> <label><a href="<?php echo $this->sg->GetRedirectLink('sitemap-help-options-adv-stats'); ?>"><?php _e('Learn more','sitemap'); ?></a></label>
|
919 |
-
</li>
|
920 |
-
</ul>
|
921 |
-
<?php endif; ?>
|
922 |
-
|
923 |
-
<?php $this->HtmlPrintBoxFooter(); ?>
|
924 |
-
|
925 |
-
<?php if(is_super_admin()): ?>
|
926 |
-
<?php $this->HtmlPrintBoxHeader('sm_pages',__('Additional Pages', 'sitemap')); ?>
|
927 |
-
|
928 |
-
<?php
|
929 |
-
_e('Here you can specify files or URLs which should be included in the sitemap, but do not belong to your Site/WordPress.<br />For example, if your domain is www.foo.com and your site is located on www.foo.com/site you might want to include your homepage at www.foo.com','sitemap');
|
930 |
-
echo "<ul><li>";
|
931 |
-
echo "<strong>" . __('Note','sitemap'). "</strong>: ";
|
932 |
-
_e("If your site is in a subdirectory and you want to add pages which are NOT in the site directory or beneath, you MUST place your sitemap file in the root directory (Look at the "Location of your sitemap file" section on this page)!",'sitemap');
|
933 |
-
echo "</li><li>";
|
934 |
-
echo "<strong>" . __('URL to the page','sitemap'). "</strong>: ";
|
935 |
-
_e("Enter the URL to the page. Examples: http://www.foo.com/index.html or www.foo.com/home ",'sitemap');
|
936 |
-
echo "</li><li>";
|
937 |
-
echo "<strong>" . __('Priority','sitemap') . "</strong>: ";
|
938 |
-
_e("Choose the priority of the page relative to the other pages. For example, your homepage might have a higher priority than your imprint.",'sitemap');
|
939 |
-
echo "</li><li>";
|
940 |
-
echo "<strong>" . __('Last Changed','sitemap'). "</strong>: ";
|
941 |
-
_e("Enter the date of the last change as YYYY-MM-DD (2005-12-31 for example) (optional).",'sitemap');
|
942 |
-
|
943 |
-
echo "</li></ul>";
|
944 |
-
?>
|
945 |
-
<script type="text/javascript">
|
946 |
-
//<![CDATA[
|
947 |
-
<?php
|
948 |
-
$freqVals = "'" . implode("','",array_keys($this->sg->GetFreqNames())). "'";
|
949 |
-
$freqNames = "'" . implode("','",array_values($this->sg->GetFreqNames())). "'";
|
950 |
-
?>
|
951 |
-
|
952 |
-
var changeFreqVals = [<?php echo $freqVals; ?>];
|
953 |
-
var changeFreqNames = [ <?php echo $freqNames; ?>];
|
954 |
-
var priorities= [0<?php for($i=0.1; $i<1; $i+=0.1) { echo "," . number_format($i,1,".",""); } ?>];
|
955 |
-
|
956 |
-
var pages = [ <?php
|
957 |
-
$pages = $this->sg->GetPages();
|
958 |
-
$fd = false;
|
959 |
-
foreach($pages AS $page) {
|
960 |
-
if($page instanceof GoogleSitemapGeneratorPage) {
|
961 |
-
if($fd) echo ",";
|
962 |
-
else $fd = true;
|
963 |
-
echo '{url:"' . esc_js($page->getUrl()) . '", priority:' . esc_js(number_format($page->getPriority(),1,".","")) . ', changeFreq:"' . esc_js($page->getChangeFreq()) . '", lastChanged:"' . esc_js(($page->getLastMod()>0?date("Y-m-d",$page->getLastMod()):"")) . '"}';
|
964 |
-
}
|
965 |
-
|
966 |
-
}
|
967 |
-
?> ];
|
968 |
-
//]]>
|
969 |
-
</script>
|
970 |
-
<script type="text/javascript" src="<?php echo $this->sg->GetPluginUrl(); ?>img/sitemap.js"></script>
|
971 |
-
<table width="100%" cellpadding="3" cellspacing="3" id="sm_pageTable">
|
972 |
-
<tr>
|
973 |
-
<th scope="col"><?php _e('URL to the page','sitemap'); ?></th>
|
974 |
-
<th scope="col"><?php _e('Priority','sitemap'); ?></th>
|
975 |
-
<th scope="col"><?php _e('Change Frequency','sitemap'); ?></th>
|
976 |
-
<th scope="col"><?php _e('Last Changed','sitemap'); ?></th>
|
977 |
-
<th scope="col"><?php _e('#','sitemap'); ?></th>
|
978 |
-
</tr>
|
979 |
-
<?php
|
980 |
-
if(count($pages)<=0) { ?>
|
981 |
-
<tr>
|
982 |
-
<td colspan="5" align="center"><?php _e('No pages defined.','sitemap') ?></td>
|
983 |
-
</tr><?php
|
984 |
-
}
|
985 |
-
?>
|
986 |
-
</table>
|
987 |
-
<a href="javascript:void(0);" onclick="sm_addPage();"><?php _e("Add new page",'sitemap'); ?></a>
|
988 |
-
<?php $this->HtmlPrintBoxFooter(); ?>
|
989 |
-
<?php endif; ?>
|
990 |
-
|
991 |
-
|
992 |
-
<!-- AutoPrio Options -->
|
993 |
-
<?php $this->HtmlPrintBoxHeader('sm_postprio',__('Post Priority', 'sitemap')); ?>
|
994 |
-
|
995 |
-
<p><?php _e('Please select how the priority of each post should be calculated:', 'sitemap') ?></p>
|
996 |
-
<ul>
|
997 |
-
<li><p><input type="radio" name="sm_b_prio_provider" id="sm_b_prio_provider__0" value="" <?php echo $this->HtmlGetChecked($this->sg->GetOption("b_prio_provider"),"") ?> /> <label for="sm_b_prio_provider__0"><?php _e('Do not use automatic priority calculation', 'sitemap') ?></label><br /><?php _e('All posts will have the same priority which is defined in "Priorities"', 'sitemap') ?></p></li>
|
998 |
-
<?php
|
999 |
-
$provs = $this->sg->GetPrioProviders();
|
1000 |
-
for($i=0; $i<count($provs); $i++) {
|
1001 |
-
echo "<li><p><input type=\"radio\" id=\"sm_b_prio_provider_$i\" name=\"sm_b_prio_provider\" value=\"" . $provs[$i] . "\" " . $this->HtmlGetChecked($this->sg->GetOption("b_prio_provider"),$provs[$i]) . " /> <label for=\"sm_b_prio_provider_$i\">" . call_user_func(array($provs[$i], 'getName')) . "</label><br />" . call_user_func(array($provs[$i], 'getDescription')) . "</p></li>";
|
1002 |
-
}
|
1003 |
-
?>
|
1004 |
-
</ul>
|
1005 |
-
<?php $this->HtmlPrintBoxFooter(); ?>
|
1006 |
-
|
1007 |
-
<!-- Includes -->
|
1008 |
-
<?php $this->HtmlPrintBoxHeader('sm_includes',__('Sitemap Content', 'sitemap')); ?>
|
1009 |
-
<b><?php _e('WordPress standard content', 'sitemap') ?>:</b>
|
1010 |
-
<ul>
|
1011 |
-
<li>
|
1012 |
-
<label for="sm_in_home">
|
1013 |
-
<input type="checkbox" id="sm_in_home" name="sm_in_home" <?php echo ($this->sg->GetOption("in_home")==true?"checked=\"checked\"":"") ?> />
|
1014 |
-
<?php _e('Include homepage', 'sitemap') ?>
|
1015 |
-
</label>
|
1016 |
-
</li>
|
1017 |
-
<li>
|
1018 |
-
<label for="sm_in_posts">
|
1019 |
-
<input type="checkbox" id="sm_in_posts" name="sm_in_posts" <?php echo ($this->sg->GetOption("in_posts")==true?"checked=\"checked\"":"") ?> />
|
1020 |
-
<?php _e('Include posts', 'sitemap') ?>
|
1021 |
-
</label>
|
1022 |
-
</li>
|
1023 |
-
<li>
|
1024 |
-
<label for="sm_in_pages">
|
1025 |
-
<input type="checkbox" id="sm_in_pages" name="sm_in_pages" <?php echo ($this->sg->GetOption("in_pages")==true?"checked=\"checked\"":"") ?> />
|
1026 |
-
<?php _e('Include static pages', 'sitemap') ?>
|
1027 |
-
</label>
|
1028 |
-
</li>
|
1029 |
-
<li>
|
1030 |
-
<label for="sm_in_cats">
|
1031 |
-
<input type="checkbox" id="sm_in_cats" name="sm_in_cats" <?php echo ($this->sg->GetOption("in_cats")==true?"checked=\"checked\"":"") ?> />
|
1032 |
-
<?php _e('Include categories', 'sitemap') ?>
|
1033 |
-
</label>
|
1034 |
-
</li>
|
1035 |
-
<li>
|
1036 |
-
<label for="sm_in_arch">
|
1037 |
-
<input type="checkbox" id="sm_in_arch" name="sm_in_arch" <?php echo ($this->sg->GetOption("in_arch")==true?"checked=\"checked\"":"") ?> />
|
1038 |
-
<?php _e('Include archives', 'sitemap') ?>
|
1039 |
-
</label>
|
1040 |
-
</li>
|
1041 |
-
<li>
|
1042 |
-
<label for="sm_in_auth">
|
1043 |
-
<input type="checkbox" id="sm_in_auth" name="sm_in_auth" <?php echo ($this->sg->GetOption("in_auth")==true?"checked=\"checked\"":"") ?> />
|
1044 |
-
<?php _e('Include author pages', 'sitemap') ?>
|
1045 |
-
</label>
|
1046 |
-
</li>
|
1047 |
-
<?php if($this->sg->IsTaxonomySupported()): ?>
|
1048 |
-
<li>
|
1049 |
-
<label for="sm_in_tags">
|
1050 |
-
<input type="checkbox" id="sm_in_tags" name="sm_in_tags" <?php echo ($this->sg->GetOption("in_tags")==true?"checked=\"checked\"":"") ?> />
|
1051 |
-
<?php _e('Include tag pages', 'sitemap') ?>
|
1052 |
-
</label>
|
1053 |
-
</li>
|
1054 |
-
<?php endif; ?>
|
1055 |
-
</ul>
|
1056 |
-
|
1057 |
-
<?php
|
1058 |
-
|
1059 |
-
if($this->sg->IsTaxonomySupported()) {
|
1060 |
-
$taxonomies = $this->sg->GetCustomTaxonomies();
|
1061 |
-
|
1062 |
-
$enabledTaxonomies = $this->sg->GetOption('in_tax');
|
1063 |
-
|
1064 |
-
if(count($taxonomies)>0) {
|
1065 |
-
?><b><?php _e('Custom taxonomies', 'sitemap') ?>:</b><ul><?php
|
1066 |
-
|
1067 |
-
|
1068 |
-
foreach ($taxonomies as $taxName) {
|
1069 |
-
|
1070 |
-
$taxonomy = get_taxonomy($taxName);
|
1071 |
-
$selected = in_array($taxonomy->name, $enabledTaxonomies);
|
1072 |
-
?>
|
1073 |
-
<li>
|
1074 |
-
<label for="sm_in_tax[<?php echo $taxonomy->name; ?>]">
|
1075 |
-
<input type="checkbox" id="sm_in_tax[<?php echo $taxonomy->name; ?>]" name="sm_in_tax[<?php echo $taxonomy->name; ?>]" <?php echo $selected?"checked=\"checked\"":""; ?> />
|
1076 |
-
<?php echo str_replace('%s',$taxonomy->label,__('Include taxonomy pages for %s', 'sitemap')); ?>
|
1077 |
-
</label>
|
1078 |
-
</li>
|
1079 |
-
<?php
|
1080 |
-
}
|
1081 |
-
|
1082 |
-
?></ul><?php
|
1083 |
-
|
1084 |
-
}
|
1085 |
-
}
|
1086 |
-
|
1087 |
-
|
1088 |
-
if($this->sg->IsCustomPostTypesSupported()) {
|
1089 |
-
$custom_post_types = $this->sg->GetCustomPostTypes();
|
1090 |
-
|
1091 |
-
$enabledPostTypes = $this->sg->GetOption('in_customtypes');
|
1092 |
-
|
1093 |
-
if(count($custom_post_types)>0) {
|
1094 |
-
?><b><?php _e('Custom post types', 'sitemap') ?>:</b><ul><?php
|
1095 |
-
|
1096 |
-
foreach ($custom_post_types as $post_type) {
|
1097 |
-
$post_type_object = get_post_type_object($post_type);
|
1098 |
-
|
1099 |
-
if (is_array($enabledPostTypes)) $selected = in_array($post_type_object->name, $enabledPostTypes);
|
1100 |
-
|
1101 |
-
?>
|
1102 |
-
<li>
|
1103 |
-
<label for="sm_in_customtypes[<?php echo $post_type_object->name; ?>]">
|
1104 |
-
<input type="checkbox" id="sm_in_customtypes[<?php echo $post_type_object->name; ?>]" name="sm_in_customtypes[<?php echo $post_type_object->name; ?>]" <?php echo $selected?"checked=\"checked\"":""; ?> />
|
1105 |
-
<?php echo str_replace('%s',$post_type_object->label,__('Include custom post type %s', 'sitemap')); ?>
|
1106 |
-
</label>
|
1107 |
-
</li>
|
1108 |
-
<?php
|
1109 |
-
}
|
1110 |
-
|
1111 |
-
?></ul><?php
|
1112 |
-
}
|
1113 |
-
}
|
1114 |
-
|
1115 |
-
?>
|
1116 |
-
|
1117 |
-
<b><?php _e('Further options', 'sitemap') ?>:</b>
|
1118 |
-
<ul>
|
1119 |
-
<li>
|
1120 |
-
<label for="sm_in_lastmod">
|
1121 |
-
<input type="checkbox" id="sm_in_lastmod" name="sm_in_lastmod" <?php echo ($this->sg->GetOption("in_lastmod")==true?"checked=\"checked\"":"") ?> />
|
1122 |
-
<?php _e('Include the last modification time.', 'sitemap') ?>
|
1123 |
-
</label><br />
|
1124 |
-
<small><?php _e('This is highly recommended and helps the search engines to know when your content has changed. This option affects <i>all</i> sitemap entries.', 'sitemap') ?></small>
|
1125 |
-
</li>
|
1126 |
-
</ul>
|
1127 |
-
|
1128 |
-
<?php $this->HtmlPrintBoxFooter(); ?>
|
1129 |
-
|
1130 |
-
<!-- Excluded Items -->
|
1131 |
-
<?php $this->HtmlPrintBoxHeader('sm_excludes',__('Excluded Items', 'sitemap')); ?>
|
1132 |
-
|
1133 |
-
<b><?php _e('Excluded categories', 'sitemap') ?>:</b>
|
1134 |
-
|
1135 |
-
<div style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; margin:5px 0px 5px 40px; overflow:auto; padding:0.5em 0.5em;">
|
1136 |
-
<ul>
|
1137 |
-
<?php wp_category_checklist(0,0,$this->sg->GetOption("b_exclude_cats"),false); ?>
|
1138 |
-
</ul>
|
1139 |
-
</div>
|
1140 |
-
|
1141 |
-
<b><?php _e("Exclude posts","sitemap"); ?>:</b>
|
1142 |
-
<div style="margin:5px 0 13px 40px;">
|
1143 |
-
<label for="sm_b_exclude"><?php _e('Exclude the following posts or pages:', 'sitemap') ?> <small><?php _e('List of IDs, separated by comma', 'sitemap') ?></small><br />
|
1144 |
-
<input name="sm_b_exclude" id="sm_b_exclude" type="text" style="width:400px;" value="<?php echo esc_attr(implode(",",$this->sg->GetOption("b_exclude"))); ?>" /></label><br />
|
1145 |
-
<cite><?php _e("Note","sitemap") ?>: <?php _e("Child posts won't be excluded automatically!","sitemap"); ?></cite>
|
1146 |
-
</div>
|
1147 |
-
|
1148 |
-
<?php $this->HtmlPrintBoxFooter(); ?>
|
1149 |
-
|
1150 |
-
<!-- Change frequencies -->
|
1151 |
-
<?php $this->HtmlPrintBoxHeader('sm_change_frequencies',__('Change Frequencies', 'sitemap')); ?>
|
1152 |
-
|
1153 |
-
<p>
|
1154 |
-
<b><?php _e('Note', 'sitemap') ?>:</b>
|
1155 |
-
<?php _e('Please note that the value of this tag is considered a hint and not a command. Even though search engine crawlers consider this information when making decisions, they may crawl pages marked "hourly" less frequently than that, and they may crawl pages marked "yearly" more frequently than that. It is also likely that crawlers will periodically crawl pages marked "never" so that they can handle unexpected changes to those pages.', 'sitemap') ?>
|
1156 |
-
</p>
|
1157 |
-
<ul>
|
1158 |
-
<li>
|
1159 |
-
<label for="sm_cf_home">
|
1160 |
-
<select id="sm_cf_home" name="sm_cf_home"><?php $this->HtmlGetFreqNames($this->sg->GetOption("cf_home")); ?></select>
|
1161 |
-
<?php _e('Homepage', 'sitemap') ?>
|
1162 |
-
</label>
|
1163 |
-
</li>
|
1164 |
-
<li>
|
1165 |
-
<label for="sm_cf_posts">
|
1166 |
-
<select id="sm_cf_posts" name="sm_cf_posts"><?php $this->HtmlGetFreqNames($this->sg->GetOption("cf_posts")); ?></select>
|
1167 |
-
<?php _e('Posts', 'sitemap') ?>
|
1168 |
-
</label>
|
1169 |
-
</li>
|
1170 |
-
<li>
|
1171 |
-
<label for="sm_cf_pages">
|
1172 |
-
<select id="sm_cf_pages" name="sm_cf_pages"><?php $this->HtmlGetFreqNames($this->sg->GetOption("cf_pages")); ?></select>
|
1173 |
-
<?php _e('Static pages', 'sitemap') ?>
|
1174 |
-
</label>
|
1175 |
-
</li>
|
1176 |
-
<li>
|
1177 |
-
<label for="sm_cf_cats">
|
1178 |
-
<select id="sm_cf_cats" name="sm_cf_cats"><?php $this->HtmlGetFreqNames($this->sg->GetOption("cf_cats")); ?></select>
|
1179 |
-
<?php _e('Categories', 'sitemap') ?>
|
1180 |
-
</label>
|
1181 |
-
</li>
|
1182 |
-
<li>
|
1183 |
-
<label for="sm_cf_arch_curr">
|
1184 |
-
<select id="sm_cf_arch_curr" name="sm_cf_arch_curr"><?php $this->HtmlGetFreqNames($this->sg->GetOption("cf_arch_curr")); ?></select>
|
1185 |
-
<?php _e('The current archive of this month (Should be the same like your homepage)', 'sitemap') ?>
|
1186 |
-
</label>
|
1187 |
-
</li>
|
1188 |
-
<li>
|
1189 |
-
<label for="sm_cf_arch_old">
|
1190 |
-
<select id="sm_cf_arch_old" name="sm_cf_arch_old"><?php $this->HtmlGetFreqNames($this->sg->GetOption("cf_arch_old")); ?></select>
|
1191 |
-
<?php _e('Older archives (Changes only if you edit an old post)', 'sitemap') ?>
|
1192 |
-
</label>
|
1193 |
-
</li>
|
1194 |
-
<?php if($this->sg->IsTaxonomySupported()): ?>
|
1195 |
-
<li>
|
1196 |
-
<label for="sm_cf_tags">
|
1197 |
-
<select id="sm_cf_tags" name="sm_cf_tags"><?php $this->HtmlGetFreqNames($this->sg->GetOption("cf_tags")); ?></select>
|
1198 |
-
<?php _e('Tag pages', 'sitemap') ?>
|
1199 |
-
</label>
|
1200 |
-
</li>
|
1201 |
-
<?php endif; ?>
|
1202 |
-
<li>
|
1203 |
-
<label for="sm_cf_auth">
|
1204 |
-
<select id="sm_cf_auth" name="sm_cf_auth"><?php $this->HtmlGetFreqNames($this->sg->GetOption("cf_auth")); ?></select>
|
1205 |
-
<?php _e('Author pages', 'sitemap') ?>
|
1206 |
-
</label>
|
1207 |
-
</li>
|
1208 |
-
</ul>
|
1209 |
-
|
1210 |
-
<?php $this->HtmlPrintBoxFooter(); ?>
|
1211 |
-
|
1212 |
-
<!-- Priorities -->
|
1213 |
-
<?php $this->HtmlPrintBoxHeader('sm_priorities',__('Priorities', 'sitemap')); ?>
|
1214 |
-
<ul>
|
1215 |
-
<li>
|
1216 |
-
<label for="sm_pr_home">
|
1217 |
-
<select id="sm_pr_home" name="sm_pr_home"><?php $this->HtmlGetPriorityValues($this->sg->GetOption("pr_home")); ?></select>
|
1218 |
-
<?php _e('Homepage', 'sitemap') ?>
|
1219 |
-
</label>
|
1220 |
-
</li>
|
1221 |
-
<li>
|
1222 |
-
<label for="sm_pr_posts">
|
1223 |
-
<select id="sm_pr_posts" name="sm_pr_posts"><?php $this->HtmlGetPriorityValues($this->sg->GetOption("pr_posts")); ?></select>
|
1224 |
-
<?php _e('Posts (If auto calculation is disabled)', 'sitemap') ?>
|
1225 |
-
</label>
|
1226 |
-
</li>
|
1227 |
-
<li>
|
1228 |
-
<label for="sm_pr_posts_min">
|
1229 |
-
<select id="sm_pr_posts_min" name="sm_pr_posts_min"><?php $this->HtmlGetPriorityValues($this->sg->GetOption("pr_posts_min")); ?></select>
|
1230 |
-
<?php _e('Minimum post priority (Even if auto calculation is enabled)', 'sitemap') ?>
|
1231 |
-
</label>
|
1232 |
-
</li>
|
1233 |
-
<li>
|
1234 |
-
<label for="sm_pr_pages">
|
1235 |
-
<select id="sm_pr_pages" name="sm_pr_pages"><?php $this->HtmlGetPriorityValues($this->sg->GetOption("pr_pages")); ?></select>
|
1236 |
-
<?php _e('Static pages', 'sitemap'); ?>
|
1237 |
-
</label>
|
1238 |
-
</li>
|
1239 |
-
<li>
|
1240 |
-
<label for="sm_pr_cats">
|
1241 |
-
<select id="sm_pr_cats" name="sm_pr_cats"><?php $this->HtmlGetPriorityValues($this->sg->GetOption("pr_cats")); ?></select>
|
1242 |
-
<?php _e('Categories', 'sitemap') ?>
|
1243 |
-
</label>
|
1244 |
-
</li>
|
1245 |
-
<li>
|
1246 |
-
<label for="sm_pr_arch">
|
1247 |
-
<select id="sm_pr_arch" name="sm_pr_arch"><?php $this->HtmlGetPriorityValues($this->sg->GetOption("pr_arch")); ?></select>
|
1248 |
-
<?php _e('Archives', 'sitemap') ?>
|
1249 |
-
</label>
|
1250 |
-
</li>
|
1251 |
-
<?php if($this->sg->IsTaxonomySupported()): ?>
|
1252 |
-
<li>
|
1253 |
-
<label for="sm_pr_tags">
|
1254 |
-
<select id="sm_pr_tags" name="sm_pr_tags"><?php $this->HtmlGetPriorityValues($this->sg->GetOption("pr_tags")); ?></select>
|
1255 |
-
<?php _e('Tag pages', 'sitemap') ?>
|
1256 |
-
</label>
|
1257 |
-
</li>
|
1258 |
-
<?php endif; ?>
|
1259 |
-
<li>
|
1260 |
-
<label for="sm_pr_auth">
|
1261 |
-
<select id="sm_pr_auth" name="sm_pr_auth"><?php $this->HtmlGetPriorityValues($this->sg->GetOption("pr_auth")); ?></select>
|
1262 |
-
<?php _e('Author pages', 'sitemap') ?>
|
1263 |
-
</label>
|
1264 |
-
</li>
|
1265 |
-
</ul>
|
1266 |
-
|
1267 |
-
<?php $this->HtmlPrintBoxFooter(); ?>
|
1268 |
-
|
1269 |
-
</div>
|
1270 |
-
<div>
|
1271 |
-
<p class="submit">
|
1272 |
-
<?php wp_nonce_field('sitemap') ?>
|
1273 |
-
<input type="submit" class="button-primary" name="sm_update" value="<?php _e('Update options', 'sitemap'); ?>" />
|
1274 |
-
<input type="submit" onclick='return confirm("Do you really want to reset your configuration?");' class="sm_warning" name="sm_reset_config" value="<?php _e('Reset options', 'sitemap'); ?>" />
|
1275 |
-
</p>
|
1276 |
-
</div>
|
1277 |
-
|
1278 |
-
|
1279 |
-
</div>
|
1280 |
-
</div>
|
1281 |
-
</div>
|
1282 |
-
<script type="text/javascript">if(typeof(sm_loadPages)=='function') addLoadEvent(sm_loadPages); </script>
|
1283 |
-
</form>
|
1284 |
-
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="sm_donate_form">
|
1285 |
-
<?php
|
1286 |
-
$lc = array(
|
1287 |
-
"en"=>array("cc"=>"USD","lc"=>"US"),
|
1288 |
-
"en-GB"=>array("cc"=>"GBP","lc"=>"GB"),
|
1289 |
-
"de"=>array("cc"=>"EUR","lc"=>"DE"),
|
1290 |
-
);
|
1291 |
-
$myLc = $lc["en"];
|
1292 |
-
$wpl = get_bloginfo('language');
|
1293 |
-
if(!empty($wpl)) {
|
1294 |
-
if(array_key_exists($wpl,$lc)) $myLc = $lc[$wpl];
|
1295 |
-
else {
|
1296 |
-
$wpl = substr($wpl,0,2);
|
1297 |
-
if(array_key_exists($wpl,$lc)) $myLc = $lc[$wpl];
|
1298 |
-
}
|
1299 |
-
}
|
1300 |
-
?>
|
1301 |
-
<input type="hidden" name="cmd" value="_donations" />
|
1302 |
-
<input type="hidden" name="business" value="<?php echo "xmlsitemapgen" /* N O S P A M */ . "@" . "gmai" . "l.com"; ?>" />
|
1303 |
-
<input type="hidden" name="item_name" value="Sitemap Generator for WordPress. Please tell me if if you don't want to be listed on the donator list." />
|
1304 |
-
<input type="hidden" name="no_shipping" value="1" />
|
1305 |
-
<input type="hidden" name="return" value="<?php echo esc_attr($this->sg->GetBackLink('&sm_donated=true')) ?>" />
|
1306 |
-
<input type="hidden" name="currency_code" value="<?php echo esc_attr($myLc["cc"]) ?>" />
|
1307 |
-
<input type="hidden" name="bn" value="PP-BuyNowBF" />
|
1308 |
-
<input type="hidden" name="lc" value="<?php echo esc_attr($myLc["lc"]) ?>" />
|
1309 |
-
<input type="hidden" name="rm" value="2" />
|
1310 |
-
<input type="hidden" name="on0" value="Your Website" />
|
1311 |
-
<input type="hidden" name="os0" value="<?php echo esc_attr(get_bloginfo("url")) ?>"/>
|
1312 |
-
</form>
|
1313 |
-
</div>
|
1314 |
-
<?php
|
1315 |
-
}
|
1316 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sitemap-wpmu.php
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
* $Id: sitemap-wpmu.php 534582 2012-04-21 22:25:36Z arnee $
|
5 |
*
|
6 |
* Google XML Sitemaps Generator for WordPress MU activation
|
@@ -18,11 +17,20 @@
|
|
18 |
*
|
19 |
* All files in the mu-plugins directory are included for all sites by WordPress by default, so there is no need to
|
20 |
* activate this plugin anymore (and it also can not be deactivated).
|
|
|
|
|
21 |
*/
|
22 |
|
23 |
-
if(!defined('WPINC'))
|
|
|
|
|
24 |
|
25 |
-
$
|
26 |
|
27 |
-
if(file_exists($
|
28 |
-
|
|
|
|
|
|
|
|
|
|
1 |
<?php
|
2 |
+
/**
|
|
|
3 |
* $Id: sitemap-wpmu.php 534582 2012-04-21 22:25:36Z arnee $
|
4 |
*
|
5 |
* Google XML Sitemaps Generator for WordPress MU activation
|
17 |
*
|
18 |
* All files in the mu-plugins directory are included for all sites by WordPress by default, so there is no need to
|
19 |
* activate this plugin anymore (and it also can not be deactivated).
|
20 |
+
*
|
21 |
+
* @package Sitemap
|
22 |
*/
|
23 |
|
24 |
+
if ( ! defined( 'WPINC' ) ) {
|
25 |
+
return;
|
26 |
+
}
|
27 |
|
28 |
+
$gsg_file = dirname( __FILE__ ) . '/google-sitemap-generator/sitemap.php';
|
29 |
|
30 |
+
if ( file_exists( $gsg_file ) ) {
|
31 |
+
require_once $gsg_file;
|
32 |
+
} else {
|
33 |
+
// phpcs:disable
|
34 |
+
esc_html( trigger_error( 'XML Sitemap Generator was loaded via mu-plugins directory, but the plugin was not found under $gsg_file', E_USER_WARNING ) );
|
35 |
+
// phpcs:enable
|
36 |
+
}
|
sitemap.php
CHANGED
@@ -1,111 +1,120 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
Plugin
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
Author
|
22 |
-
|
23 |
-
Domain
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
*
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
*
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* $Id: sitemap.php 1026247 2014-11-15 16:47:36Z arnee $
|
4 |
+
|
5 |
+
* Google XML Sitemaps Generator for WordPress
|
6 |
+
* ==============================================================================
|
7 |
+
|
8 |
+
* This generator will create a sitemaps.org compliant sitemap of your WordPress site.
|
9 |
+
|
10 |
+
* For additional details like installation instructions, please check the readme.txt and documentation.txt files.
|
11 |
+
|
12 |
+
* Have fun!
|
13 |
+
* Arne
|
14 |
+
|
15 |
+
* Info for WordPress:
|
16 |
+
* ==============================================================================
|
17 |
+
* Plugin Name: Google XML Sitemaps
|
18 |
+
* Plugin URI: http://www.arnebrachhold.de/redir/sitemap-home/
|
19 |
+
* Description: This plugin improves SEO using sitemaps for best indexation by search engines like Google, Bing, Yahoo and others.
|
20 |
+
* Version: 4.1.3
|
21 |
+
* Author: Arne Brachhold
|
22 |
+
* Author URI: http://www.arnebrachhold.de/
|
23 |
+
* Text Domain: sitemap
|
24 |
+
* Domain Path: /lang
|
25 |
+
|
26 |
+
|
27 |
+
* Copyright 2005 - 2018 ARNE BRACHHOLD (email : himself - arnebrachhold - de)
|
28 |
+
|
29 |
+
* This program is free software; you can redistribute it and/or modify
|
30 |
+
* it under the terms of the GNU General Public License as published by
|
31 |
+
* the Free Software Foundation; either version 2 of the License, or
|
32 |
+
* (at your option) any later version.
|
33 |
+
|
34 |
+
* This program is distributed in the hope that it will be useful,
|
35 |
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
36 |
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
37 |
+
* GNU General Public License for more details.
|
38 |
+
*
|
39 |
+
* @author Arne Brachhold
|
40 |
+
* @package sitemap
|
41 |
+
* You should have received a copy of the GNU General Public License
|
42 |
+
* along with this program; if not, write to the Free Software
|
43 |
+
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
44 |
+
|
45 |
+
* Please see license.txt for the full license.
|
46 |
+
*/
|
47 |
+
|
48 |
+
define( 'SM_SUPPORTFEED_URL', 'https://wordpress.org/support/plugin/google-sitemap-generator/feed/' );
|
49 |
+
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Check if the requirements of the sitemap plugin are met and loads the actual loader
|
53 |
+
*
|
54 |
+
* @package sitemap
|
55 |
+
* @since 4.0
|
56 |
+
*/
|
57 |
+
function sm_setup() {
|
58 |
+
|
59 |
+
$fail = false;
|
60 |
+
|
61 |
+
// Check minimum PHP requirements, which is 5.2 at the moment.
|
62 |
+
if ( version_compare( PHP_VERSION, '5.2', '<' ) ) {
|
63 |
+
add_action( 'admin_notices', 'sm_add_php_version_error' );
|
64 |
+
$fail = true;
|
65 |
+
}
|
66 |
+
|
67 |
+
// Check minimum WP requirements, which is 3.3 at the moment.
|
68 |
+
if ( version_compare( $GLOBALS['wp_version'], '3.3', '<' ) ) {
|
69 |
+
add_action( 'admin_notices', 'sm_add_wp_version_error' );
|
70 |
+
$fail = true;
|
71 |
+
}
|
72 |
+
|
73 |
+
if ( ! $fail ) {
|
74 |
+
require_once trailingslashit( dirname( __FILE__ ) ) . 'class-googlesitemapgeneratorloader.php';
|
75 |
+
}
|
76 |
+
|
77 |
+
}
|
78 |
+
|
79 |
+
/**
|
80 |
+
* Adds a notice to the admin interface that the WordPress version is too old for the plugin
|
81 |
+
*
|
82 |
+
* @package sitemap
|
83 |
+
* @since 4.0
|
84 |
+
*/
|
85 |
+
function sm_add_wp_version_error() {
|
86 |
+
/* translators: %s: search term */
|
87 |
+
|
88 |
+
echo '<div id=\'sm-version-error\' class=\'error fade\'><p><strong>' . esc_html( __( 'Your WordPress version is too old for XML Sitemaps.', 'sitemap' ) ) . '</strong><br /> ' . esc_html( sprintf( __( 'Unfortunately this release of Google XML Sitemaps requires at least WordPress %4$s. You are using WordPress %2$s, which is out-dated and insecure. Please upgrade or go to <a href=\'%1$s\'>active plugins</a> and deactivate the Google XML Sitemaps plugin to hide this message. You can download an older version of this plugin from the <a href=\'%3$s\'>plugin website</a>.', 'sitemap' ), 'plugins.php?plugin_status=active', esc_html( $GLOBALS['wp_version'] ), 'http://www.arnebrachhold.de/redir/sitemap-home/', '3.3' ) ) . '</p></div>';
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* Adds a notice to the admin interface that the WordPress version is too old for the plugin
|
93 |
+
*
|
94 |
+
* @package sitemap
|
95 |
+
* @since 4.0
|
96 |
+
*/
|
97 |
+
function sm_add_php_version_error() {
|
98 |
+
/* translators: %s: search term */
|
99 |
+
|
100 |
+
echo '<div id=\'sm-version-error\' class=\'error fade\'><p><strong>' . esc_html( __( 'Your PHP version is too old for XML Sitemaps.', 'sitemap' ) ) . '</strong><br /> ' . esc_html( sprintf( __( 'Unfortunately this release of Google XML Sitemaps requires at least PHP %4$s. You are using PHP %2$s, which is out-dated and insecure. Please ask your web host to update your PHP installation or go to <a href=\'%1$s\'>active plugins</a> and deactivate the Google XML Sitemaps plugin to hide this message. You can download an older version of this plugin from the <a href=\'%3$s\'>plugin website</a>.', 'sitemap' ), 'plugins.php?plugin_status=active', PHP_VERSION, 'http://www.arnebrachhold.de/redir/sitemap-home/', '5.2' ) ) . '</p></div>';
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Returns the file used to load the sitemap plugin
|
105 |
+
*
|
106 |
+
* @package sitemap
|
107 |
+
* @since 4.0
|
108 |
+
* @return string The path and file of the sitemap plugin entry point
|
109 |
+
*/
|
110 |
+
function sm_get_init_file() {
|
111 |
+
return __FILE__;
|
112 |
+
}
|
113 |
+
|
114 |
+
// Don't do anything if this file was called directly.
|
115 |
+
if ( defined( 'ABSPATH' ) && defined( 'WPINC' ) && ! class_exists( 'GoogleSitemapGeneratorLoader', false ) ) {
|
116 |
+
sm_setup();
|
117 |
+
add_filter( 'wp_sitemaps_enabled', '__return_false' );
|
118 |
+
|
119 |
+
}
|
120 |
+
|
sitemap.xsl
CHANGED
@@ -1,160 +1,159 @@
|
|
1 |
-
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
-
<xsl:stylesheet version="1.0"
|
3 |
-
xmlns:html="http://www.w3.org/TR/REC-html40"
|
4 |
-
xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
|
5 |
-
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
6 |
-
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes" />
|
7 |
-
<xsl:template match="/">
|
8 |
-
<html xmlns="http://www.w3.org/1999/xhtml">
|
9 |
-
<head>
|
10 |
-
<title>XML Sitemap</title>
|
11 |
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
12 |
-
<
|
13 |
-
|
14 |
-
|
15 |
-
font-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
<
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
<
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
<th>
|
87 |
-
<th>
|
88 |
-
<th>
|
89 |
-
|
90 |
-
|
91 |
-
<xsl:variable name="
|
92 |
-
<xsl:
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
<
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
<th>
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
</xsl:template>
|
160 |
</xsl:stylesheet>
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<xsl:stylesheet version="1.0"
|
3 |
+
xmlns:html="http://www.w3.org/TR/REC-html40"
|
4 |
+
xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
|
5 |
+
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
6 |
+
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes" />
|
7 |
+
<xsl:template match="/">
|
8 |
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
9 |
+
<head>
|
10 |
+
<title>XML Sitemap</title>
|
11 |
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
12 |
+
<style type="text/css">
|
13 |
+
body {
|
14 |
+
font-family:"Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana;
|
15 |
+
font-size:13px;
|
16 |
+
}
|
17 |
+
|
18 |
+
#intro {
|
19 |
+
background-color:#CFEBF7;
|
20 |
+
border:1px #2580B2 solid;
|
21 |
+
padding:5px 13px 5px 13px;
|
22 |
+
margin:10px;
|
23 |
+
}
|
24 |
+
|
25 |
+
#intro p {
|
26 |
+
line-height: 16.8667px;
|
27 |
+
}
|
28 |
+
#intro strong {
|
29 |
+
font-weight:normal;
|
30 |
+
}
|
31 |
+
|
32 |
+
td {
|
33 |
+
font-size:11px;
|
34 |
+
}
|
35 |
+
|
36 |
+
th {
|
37 |
+
text-align:left;
|
38 |
+
padding-right:30px;
|
39 |
+
font-size:11px;
|
40 |
+
}
|
41 |
+
|
42 |
+
tr.high {
|
43 |
+
background-color:whitesmoke;
|
44 |
+
}
|
45 |
+
|
46 |
+
#footer {
|
47 |
+
padding:2px;
|
48 |
+
margin-top:10px;
|
49 |
+
font-size:8pt;
|
50 |
+
color:gray;
|
51 |
+
}
|
52 |
+
|
53 |
+
#footer a {
|
54 |
+
color:gray;
|
55 |
+
}
|
56 |
+
|
57 |
+
a {
|
58 |
+
color:black;
|
59 |
+
}
|
60 |
+
</style>
|
61 |
+
</head>
|
62 |
+
<body>
|
63 |
+
<xsl:apply-templates></xsl:apply-templates>
|
64 |
+
<div id="footer">
|
65 |
+
Generated with <a rel="external nofollow" href="http://www.arnebrachhold.de/redir/sitemap-home/" title="Google (XML) Sitemap Generator Plugin for WordPress">Google (XML) Sitemaps Generator Plugin for WordPress</a> by <a rel="external nofollow" href="http://www.arnebrachhold.de/">Arne Brachhold</a>. This XSLT template is released under the GPL and free to use.<br />
|
66 |
+
If you have problems with your sitemap please visit the <a rel="external nofollow" href="http://www.arnebrachhold.de/redir/sitemap-x-faq/" title="Google (XML) sitemaps FAQ">plugin FAQ</a> or the <a rel="external nofollow" href="https://wordpress.org/support/plugin/google-sitemap-generator">support forum</a>.
|
67 |
+
</div>
|
68 |
+
</body>
|
69 |
+
</html>
|
70 |
+
</xsl:template>
|
71 |
+
|
72 |
+
|
73 |
+
<xsl:template match="sitemap:urlset">
|
74 |
+
<h1>XML Sitemap</h1>
|
75 |
+
<div id="intro">
|
76 |
+
<p>
|
77 |
+
This is a XML Sitemap which is supposed to be processed by search engines which follow the XML Sitemap standard like Ask.com, Bing, Google and Yahoo.<br />
|
78 |
+
It was generated using the <a rel="external nofollow" href="http://wordpress.org/">WordPress</a> content management system and the <strong><a rel="external nofollow" href="http://www.arnebrachhold.de/redir/sitemap-home/" title="Google (XML) Sitemaps Generator Plugin for WordPress">XML Sitemap Generator Plugin</a></strong> by <a rel="external nofollow" href="http://www.arnebrachhold.de/">Arne Brachhold</a>.<br />
|
79 |
+
You can find more information about XML sitemaps on <a rel="external nofollow" href="http://sitemaps.org">sitemaps.org</a> and Google's <a rel="external nofollow" href="http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators">list of sitemap programs</a>.
|
80 |
+
</p>
|
81 |
+
</div>
|
82 |
+
<div id="content">
|
83 |
+
<table cellpadding="5">
|
84 |
+
<tr style="border-bottom:1px black solid;">
|
85 |
+
<th>URL</th>
|
86 |
+
<th>Priority</th>
|
87 |
+
<th>Change frequency</th>
|
88 |
+
<th>Last modified (GMT)</th>
|
89 |
+
</tr>
|
90 |
+
<xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
|
91 |
+
<xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
|
92 |
+
<xsl:for-each select="./sitemap:url">
|
93 |
+
<tr>
|
94 |
+
<xsl:if test="position() mod 2 != 1">
|
95 |
+
<xsl:attribute name="class">high</xsl:attribute>
|
96 |
+
</xsl:if>
|
97 |
+
<td>
|
98 |
+
<xsl:variable name="itemURL">
|
99 |
+
<xsl:value-of select="sitemap:loc"/>
|
100 |
+
</xsl:variable>
|
101 |
+
<a href="{$itemURL}">
|
102 |
+
<xsl:value-of select="sitemap:loc"/>
|
103 |
+
</a>
|
104 |
+
</td>
|
105 |
+
<td>
|
106 |
+
<xsl:value-of select="concat(sitemap:priority*100,'%')"/>
|
107 |
+
</td>
|
108 |
+
<td>
|
109 |
+
<xsl:value-of select="concat(translate(substring(sitemap:changefreq, 1, 1),concat($lower, $upper),concat($upper, $lower)),substring(sitemap:changefreq, 2))"/>
|
110 |
+
</td>
|
111 |
+
<td>
|
112 |
+
<xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/>
|
113 |
+
</td>
|
114 |
+
</tr>
|
115 |
+
</xsl:for-each>
|
116 |
+
</table>
|
117 |
+
</div>
|
118 |
+
</xsl:template>
|
119 |
+
|
120 |
+
|
121 |
+
<xsl:template match="sitemap:sitemapindex">
|
122 |
+
<h1>XML Sitemap Index</h1>
|
123 |
+
<div id="intro">
|
124 |
+
<p>
|
125 |
+
This is a XML Sitemap which is supposed to be processed by search engines which follow the XML Sitemap standard like Ask.com, Bing, Google and Yahoo.<br />
|
126 |
+
It was generated using the <a rel="external nofollow" href="http://wordpress.org/">WordPress</a> content management system and the <strong><a rel="external nofollow" href="http://www.arnebrachhold.de/redir/sitemap-home/" title="XML Sitemaps Generator Plugin for WordPress">XML Sitemap Generator Plugin</a></strong> by <a rel="external nofollow" href="http://www.arnebrachhold.de/">Arne Brachhold</a>.<br />
|
127 |
+
You can find more information about XML sitemaps on <a rel="external nofollow" href="http://sitemaps.org">sitemaps.org</a> and Google's <a rel="external nofollow" href="http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators">list of sitemap programs</a>.<br />
|
128 |
+
<br />
|
129 |
+
This file contains links to sub-sitemaps, follow them to see the actual sitemap content.
|
130 |
+
</p>
|
131 |
+
</div>
|
132 |
+
<div id="content">
|
133 |
+
<table cellpadding="5">
|
134 |
+
<tr style="border-bottom:1px black solid;">
|
135 |
+
<th>URL of sub-sitemap</th>
|
136 |
+
<th>Last modified (GMT)</th>
|
137 |
+
</tr>
|
138 |
+
<xsl:for-each select="./sitemap:sitemap">
|
139 |
+
<tr>
|
140 |
+
<xsl:if test="position() mod 2 != 1">
|
141 |
+
<xsl:attribute name="class">high</xsl:attribute>
|
142 |
+
</xsl:if>
|
143 |
+
<td>
|
144 |
+
<xsl:variable name="itemURL">
|
145 |
+
<xsl:value-of select="sitemap:loc"/>
|
146 |
+
</xsl:variable>
|
147 |
+
<a href="{$itemURL}">
|
148 |
+
<xsl:value-of select="sitemap:loc"/>
|
149 |
+
</a>
|
150 |
+
</td>
|
151 |
+
<td>
|
152 |
+
<xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/>
|
153 |
+
</td>
|
154 |
+
</tr>
|
155 |
+
</xsl:for-each>
|
156 |
+
</table>
|
157 |
+
</div>
|
158 |
+
</xsl:template>
|
|
|
159 |
</xsl:stylesheet>
|