Version Description
Bugfix release and split custom post types by year/month
=
Download this release
Release Info
Developer | RavanH |
Plugin | ![]() |
Version | 4.2.3 |
Comparing to | |
See all releases |
Code changes from version 4.1.4 to 4.2.3
- includes/admin.php +122 -48
- includes/core.php +217 -77
- includes/feed-sitemap-post_type.php +75 -6
- includes/feed-sitemap-taxonomy.php +4 -57
- includes/feed-sitemap.php +2 -3
- languages/xml-sitemap-feed-fr_FR.mo +0 -0
- languages/xml-sitemap-feed-fr_FR.po +116 -73
- languages/xml-sitemap-feed-id_ID.mo +0 -0
- languages/xml-sitemap-feed-id_ID.po +304 -0
- languages/xml-sitemap-feed-nl_NL.mo +0 -0
- languages/xml-sitemap-feed-nl_NL.po +114 -71
- languages/xml-sitemap-feed.pot +99 -59
- readme.txt +29 -23
- xml-sitemap.php +10 -11
includes/admin.php
CHANGED
@@ -13,7 +13,7 @@
|
|
13 |
// TODO get a donation button in there and refer to support forum !
|
14 |
public function privacy_settings_section() {
|
15 |
echo '<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=ravanhagen%40gmail%2ecom&item_name=XML%20Sitemap%20Feeds&item_number='.XMLSF_VERSION.'&no_shipping=0&tax=0&charset=UTF%2d8¤cy_code=EUR" title="'.sprintf(__('Donate to keep the free %s plugin development & support going!','easy-fancybox'),__('XML Sitemap & Google News Feeds','xml-sitemap-feed')).'"><img src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" style="border:none;float:left;margin:4px 10px 0 0" alt="'.sprintf(__('Donate to keep the free %s plugin development & support going!','easy-fancybox'),__('XML Sitemap & Google News Feeds','xml-sitemap-feed')).'" width="92" height="26" /></a>'.sprintf(__('These settings control the XML Sitemaps generated by the %s plugin.','xml-sitemap-feed'),__('XML Sitemap & Google News Feeds','xml-sitemap-feed')).'<br/>';
|
16 |
-
echo ('1' == get_option('blog_public')) ? sprintf(__('XML Sitemaps will be disabled automatically when you
|
17 |
echo '</p>
|
18 |
<script type="text/javascript">
|
19 |
jQuery( document ).ready( function() {
|
@@ -23,14 +23,19 @@
|
|
23 |
$this.attr("disabled") ? $this.removeAttr("disabled") : $this.attr("disabled", "disabled");
|
24 |
});
|
25 |
});
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
27 |
jQuery("#xmlsf_post_types input:not([type=\'hidden\']),#xmlsf_post_types select,#xmlsf_taxonomies input:not([type=\'hidden\']),#xmlsf_ping input").each(function() {
|
28 |
var $this = jQuery(this);
|
29 |
$this.attr("disabled") ? $this.removeAttr("disabled") : $this.attr("disabled", "disabled");
|
30 |
});
|
31 |
});
|
32 |
});
|
33 |
-
</script>'
|
34 |
}
|
35 |
|
36 |
public function sitemaps_settings_field() {
|
@@ -42,7 +47,6 @@
|
|
42 |
if (isset($options['sitemap']))
|
43 |
echo '<span class="description"> – <a href="'.trailingslashit(get_bloginfo('url')). ( ('' == get_option('permalink_structure')) ? '?feed=sitemap' : $options['sitemap'] ) .'" target="_blank">'.__('View').'</a></span>';
|
44 |
|
45 |
-
//__('Note: if you do not include any post or taxonomy types below, the sitemap will only contain your sites root url.','xml-sitemap-feed')
|
46 |
echo '</p>
|
47 |
<p><label><input type="checkbox" name="xmlsf_sitemaps[sitemap-news]" id="xmlsf_sitemaps_news" value="'.XMLSF_NEWS_NAME.'" '.checked(isset($options['sitemap-news']), true, false).' '.disabled($disabled, true, false).' /> '.__('Google News Sitemap','xml-sitemap-feed').'</label>';
|
48 |
if (isset($options['sitemap-news']))
|
@@ -55,12 +59,15 @@
|
|
55 |
$options = parent::get_post_types();
|
56 |
$defaults = parent::defaults('post_types');
|
57 |
$do_note = false;
|
58 |
-
|
59 |
echo '<fieldset id="xmlsf_post_types"><legend class="screen-reader-text">'.__('Include post types','xml-sitemap-feed').'</legend>
|
60 |
';
|
61 |
foreach ( get_post_types(array('public'=>true),'objects') as $post_type ) {
|
62 |
-
|
|
|
|
|
63 |
|
|
|
|
|
64 |
echo '
|
65 |
<p><input type="hidden" name="xmlsf_post_types['.
|
66 |
$post_type->name.'][name]" value="'.
|
@@ -75,18 +82,6 @@
|
|
75 |
$count->publish.')';
|
76 |
|
77 |
if (!empty($options[$post_type->name]['active'])) {
|
78 |
-
/* Find a better way...
|
79 |
-
if ( !empty($options[$post_type->name]["tags"]) )
|
80 |
-
foreach ( (array)$options[$post_type->name]["tags"] as $tag )
|
81 |
-
echo '
|
82 |
-
<input type="hidden" name="xmlsf_post_types['.
|
83 |
-
$post_type->name.'][tags][]" value="'.$tag.'" />';
|
84 |
-
else
|
85 |
-
echo '
|
86 |
-
<input type="hidden" name="xmlsf_post_types['.
|
87 |
-
$post_type->name.'][tags][]" value="image" />
|
88 |
-
<input type="hidden" name="xmlsf_post_types['.
|
89 |
-
$post_type->name.'][tags][]" value="video" />';*/
|
90 |
|
91 |
echo ' – <span class="description"><a id="xmlsf_post_types_'.$post_type->name.'_link" href="#xmlsf_post_types_'.$post_type->name.'_settings">'.__('Settings').'</a></span></p>
|
92 |
<script type="text/javascript">
|
@@ -103,29 +98,29 @@
|
|
103 |
|
104 |
if ( isset($defaults[$post_type->name]['archive']) ) {
|
105 |
$archives = array (
|
106 |
-
'yearly' => __('
|
107 |
-
'monthly' => __('
|
108 |
);
|
109 |
$archive = !empty($options[$post_type->name]['archive']) ? $options[$post_type->name]['archive'] : $defaults[$post_type->name]['archive'];
|
110 |
echo '
|
111 |
<li><label>'.__('Split by','xml-sitemap-feed').' <select name="xmlsf_post_types['.
|
112 |
$post_type->name.'][archive]" id="xmlsf_post_types_'.
|
113 |
$post_type->name.'_archive">
|
114 |
-
<option value=""
|
115 |
foreach ($archives as $value => $translation)
|
116 |
echo '
|
117 |
<option value="'.$value.'" '.
|
118 |
selected( $archive == $value, true, false).
|
119 |
'>'.$translation.'</option>';
|
120 |
echo '</select>
|
121 |
-
</label> <span class="description"> '.__('Split by year if you experience
|
122 |
}
|
123 |
|
124 |
$priority_val = !empty($options[$post_type->name]['priority']) ? $options[$post_type->name]['priority'] : $defaults[$post_type->name]['priority'];
|
125 |
echo '
|
126 |
<li><label>'.__('Priority','xml-sitemap-feed').' <input type="number" step="0.1" min="0.1" max="0.9" name="xmlsf_post_types['.
|
127 |
$post_type->name.'][priority]" id="xmlsf_post_types_'.
|
128 |
-
$post_type->name.'_priority" value="'.$priority_val.'" class="small-text"></label> <span class="description">'.__('Priority can be overridden on individual posts.
|
129 |
|
130 |
echo '
|
131 |
<li><label><input type="checkbox" name="xmlsf_post_types['.
|
@@ -135,7 +130,40 @@
|
|
135 |
echo '
|
136 |
<li><label><input type="checkbox" name="xmlsf_post_types['.
|
137 |
$post_type->name.'][update_lastmod_on_comments]" value="1" '.
|
138 |
-
checked( !empty($options[$post_type->name]["update_lastmod_on_comments"]), true, false).' /> '.__('Update Lastmod and Changefreq on comments.','xml-sitemap-feed').'</label> <span class="description">'.__('Set this if discussion on your site warrants reindexation upon each new comment.','xml-sitemap-feed').'</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
</ul>';
|
140 |
} else {
|
141 |
echo '</p>';
|
@@ -144,7 +172,19 @@
|
|
144 |
}
|
145 |
|
146 |
echo '
|
147 |
-
<p class="description">'.__('Priority settings do not affect ranking in search results in any way. They are only meant to suggest search engines which URLs to index first. Once a URL has been indexed, its Priority becomes meaningless until its Lastmod is updated.','xml-sitemap-feed').'</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
148 |
echo '
|
149 |
</fieldset>';
|
150 |
}
|
@@ -152,10 +192,8 @@
|
|
152 |
public function taxonomies_settings_field() {
|
153 |
$options = parent::get_taxonomies();
|
154 |
$active = parent::get_option('post_types');
|
155 |
-
$
|
156 |
|
157 |
-
echo '<fieldset id="xmlsf_taxonomies"><legend class="screen-reader-text">'.__('Include taxonomies','xml-sitemap-feed').'</legend>
|
158 |
-
';
|
159 |
foreach ( get_taxonomies(array('public'=>true),'objects') as $taxonomy ) {
|
160 |
|
161 |
$skip = true;
|
@@ -164,26 +202,38 @@
|
|
164 |
$skip = false;
|
165 |
if ($skip) continue; // skip if none of the associated post types are active
|
166 |
|
167 |
-
$skipped_all = false;
|
168 |
$count = wp_count_terms( $taxonomy->name );
|
169 |
-
|
170 |
<label><input type="checkbox" name="xmlsf_taxonomies['.
|
171 |
$taxonomy->name.']" id="xmlsf_taxonomies_'.
|
172 |
$taxonomy->name.'" value="'.
|
173 |
$taxonomy->name.'"'.
|
174 |
checked(in_array($taxonomy->name,$options), true, false).' /> '.
|
175 |
$taxonomy->label.'</label> ('.
|
176 |
-
$count.')
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
}
|
178 |
|
179 |
-
if ($
|
180 |
echo '
|
181 |
-
<
|
|
|
182 |
|
183 |
-
|
184 |
-
|
185 |
-
|
|
|
|
|
186 |
</fieldset>';
|
|
|
|
|
|
|
|
|
187 |
}
|
188 |
|
189 |
public function ping_settings_field() {
|
@@ -191,14 +241,20 @@
|
|
191 |
$pings = parent::get_pings();
|
192 |
// search engines
|
193 |
$se = array(
|
194 |
-
'google' =>
|
195 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
);
|
197 |
|
198 |
echo '
|
199 |
<fieldset id="xmlsf_ping"><legend class="screen-reader-text">'.__('Ping on Publish','xml-sitemap-feed').'</legend>
|
200 |
';
|
201 |
-
foreach ( $
|
202 |
|
203 |
echo '
|
204 |
<input type="hidden" name="xmlsf_ping['.
|
@@ -210,7 +266,7 @@
|
|
210 |
$name.'][active]" id="xmlsf_ping_'.
|
211 |
$name.'" value="1"'.
|
212 |
checked( !empty($options[$name]["active"]), true, false).' /> '.
|
213 |
-
$
|
214 |
|
215 |
echo ' <span class="description">';
|
216 |
if (isset($pings[$name]))
|
@@ -304,6 +360,7 @@
|
|
304 |
/* Adds a box to the side column */
|
305 |
public function add_meta_box()
|
306 |
{
|
|
|
307 |
foreach (parent::get_post_types() as $post_type)
|
308 |
if (isset($post_type["active"]))
|
309 |
add_meta_box(
|
@@ -315,7 +372,6 @@
|
|
315 |
);
|
316 |
}
|
317 |
|
318 |
-
|
319 |
public function meta_box($post)
|
320 |
{
|
321 |
// Use nonce for verification
|
@@ -323,10 +379,19 @@
|
|
323 |
|
324 |
// The actual fields for data entry
|
325 |
// Use get_post_meta to retrieve an existing value from the database and use the value for the form
|
326 |
-
$value = get_post_meta( $post->ID, '
|
|
|
|
|
|
|
|
|
|
|
327 |
echo '<p><label>';
|
328 |
_e('Priority','xml-sitemap-feed');
|
329 |
-
echo ' <input type="number" step="0.1" min="0" max="1" name="xmlsf_priority" id="xmlsf_priority" value="'
|
|
|
|
|
|
|
|
|
330 |
}
|
331 |
|
332 |
/* When the post is saved, save our meta data */
|
@@ -338,16 +403,25 @@
|
|
338 |
if ( !current_user_can( 'edit_post', $post_id ) || !isset($_POST['xmlsf_sitemap_nonce']) || !wp_verify_nonce($_POST['xmlsf_sitemap_nonce'], plugin_basename( __FILE__ )) )
|
339 |
return;
|
340 |
|
|
|
341 |
if ( isset($_POST['xmlsf_priority']) && $_POST['xmlsf_priority'] != '' && is_numeric($_POST['xmlsf_priority']) ) {
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
update_post_meta($post_id, '_xmlsf_priority', $_POST['xmlsf_priority']);
|
348 |
} else {
|
349 |
delete_post_meta($post_id, '_xmlsf_priority');
|
350 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
351 |
}
|
352 |
|
353 |
/**
|
13 |
// TODO get a donation button in there and refer to support forum !
|
14 |
public function privacy_settings_section() {
|
15 |
echo '<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=ravanhagen%40gmail%2ecom&item_name=XML%20Sitemap%20Feeds&item_number='.XMLSF_VERSION.'&no_shipping=0&tax=0&charset=UTF%2d8¤cy_code=EUR" title="'.sprintf(__('Donate to keep the free %s plugin development & support going!','easy-fancybox'),__('XML Sitemap & Google News Feeds','xml-sitemap-feed')).'"><img src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" style="border:none;float:left;margin:4px 10px 0 0" alt="'.sprintf(__('Donate to keep the free %s plugin development & support going!','easy-fancybox'),__('XML Sitemap & Google News Feeds','xml-sitemap-feed')).'" width="92" height="26" /></a>'.sprintf(__('These settings control the XML Sitemaps generated by the %s plugin.','xml-sitemap-feed'),__('XML Sitemap & Google News Feeds','xml-sitemap-feed')).'<br/>';
|
16 |
+
echo ('1' == get_option('blog_public')) ? sprintf(__('XML Sitemaps will be disabled automatically when you check the option %1$s at %2$s above.','xml-sitemap-feed'),'<strong>'.__('Discourage search engines from indexing this site').'</strong>','<strong>'.__('Search Engine Visibility').'</strong>') : '<span style="color: red" class="error">'.sprintf(__('XML Sitemaps are disabled because you have checked the option %1$s at %2$s above.','xml-sitemap-feed'),'<strong>'.__('Discourage search engines from indexing this site').'</strong>','<strong>'.__('Search Engine Visibility').'</strong>').'</span>';
|
17 |
echo '</p>
|
18 |
<script type="text/javascript">
|
19 |
jQuery( document ).ready( function() {
|
23 |
$this.attr("disabled") ? $this.removeAttr("disabled") : $this.attr("disabled", "disabled");
|
24 |
});
|
25 |
});
|
26 |
+
});
|
27 |
+
</script>';
|
28 |
+
/* echo '
|
29 |
+
<script type="text/javascript">
|
30 |
+
jQuery( document ).ready( function() {
|
31 |
+
jQuery( "#xmlsf_sitemaps_index" ).on( \'change\', function() {
|
32 |
jQuery("#xmlsf_post_types input:not([type=\'hidden\']),#xmlsf_post_types select,#xmlsf_taxonomies input:not([type=\'hidden\']),#xmlsf_ping input").each(function() {
|
33 |
var $this = jQuery(this);
|
34 |
$this.attr("disabled") ? $this.removeAttr("disabled") : $this.attr("disabled", "disabled");
|
35 |
});
|
36 |
});
|
37 |
});
|
38 |
+
</script>';*/
|
39 |
}
|
40 |
|
41 |
public function sitemaps_settings_field() {
|
47 |
if (isset($options['sitemap']))
|
48 |
echo '<span class="description"> – <a href="'.trailingslashit(get_bloginfo('url')). ( ('' == get_option('permalink_structure')) ? '?feed=sitemap' : $options['sitemap'] ) .'" target="_blank">'.__('View').'</a></span>';
|
49 |
|
|
|
50 |
echo '</p>
|
51 |
<p><label><input type="checkbox" name="xmlsf_sitemaps[sitemap-news]" id="xmlsf_sitemaps_news" value="'.XMLSF_NEWS_NAME.'" '.checked(isset($options['sitemap-news']), true, false).' '.disabled($disabled, true, false).' /> '.__('Google News Sitemap','xml-sitemap-feed').'</label>';
|
52 |
if (isset($options['sitemap-news']))
|
59 |
$options = parent::get_post_types();
|
60 |
$defaults = parent::defaults('post_types');
|
61 |
$do_note = false;
|
|
|
62 |
echo '<fieldset id="xmlsf_post_types"><legend class="screen-reader-text">'.__('Include post types','xml-sitemap-feed').'</legend>
|
63 |
';
|
64 |
foreach ( get_post_types(array('public'=>true),'objects') as $post_type ) {
|
65 |
+
// skip unallowed post types
|
66 |
+
if (in_array($post_type->name,parent::disabled_post_types()))
|
67 |
+
continue;
|
68 |
|
69 |
+
$count = wp_count_posts( $post_type->name );
|
70 |
+
|
71 |
echo '
|
72 |
<p><input type="hidden" name="xmlsf_post_types['.
|
73 |
$post_type->name.'][name]" value="'.
|
82 |
$count->publish.')';
|
83 |
|
84 |
if (!empty($options[$post_type->name]['active'])) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
|
86 |
echo ' – <span class="description"><a id="xmlsf_post_types_'.$post_type->name.'_link" href="#xmlsf_post_types_'.$post_type->name.'_settings">'.__('Settings').'</a></span></p>
|
87 |
<script type="text/javascript">
|
98 |
|
99 |
if ( isset($defaults[$post_type->name]['archive']) ) {
|
100 |
$archives = array (
|
101 |
+
'yearly' => __('Year','xml-sitemap-feed'),
|
102 |
+
'monthly' => __('Month','xml-sitemap-feed')
|
103 |
);
|
104 |
$archive = !empty($options[$post_type->name]['archive']) ? $options[$post_type->name]['archive'] : $defaults[$post_type->name]['archive'];
|
105 |
echo '
|
106 |
<li><label>'.__('Split by','xml-sitemap-feed').' <select name="xmlsf_post_types['.
|
107 |
$post_type->name.'][archive]" id="xmlsf_post_types_'.
|
108 |
$post_type->name.'_archive">
|
109 |
+
<option value="">'.__('None').'</option>';
|
110 |
foreach ($archives as $value => $translation)
|
111 |
echo '
|
112 |
<option value="'.$value.'" '.
|
113 |
selected( $archive == $value, true, false).
|
114 |
'>'.$translation.'</option>';
|
115 |
echo '</select>
|
116 |
+
</label> <span class="description"> '.__('Split by year if you experience errors or slow sitemaps. In very rare cases, split by month is needed.','xml-sitemap-feed').'</span></li>';
|
117 |
}
|
118 |
|
119 |
$priority_val = !empty($options[$post_type->name]['priority']) ? $options[$post_type->name]['priority'] : $defaults[$post_type->name]['priority'];
|
120 |
echo '
|
121 |
<li><label>'.__('Priority','xml-sitemap-feed').' <input type="number" step="0.1" min="0.1" max="0.9" name="xmlsf_post_types['.
|
122 |
$post_type->name.'][priority]" id="xmlsf_post_types_'.
|
123 |
+
$post_type->name.'_priority" value="'.$priority_val.'" class="small-text"></label> <span class="description">'.__('Priority can be overridden on individual posts. *','xml-sitemap-feed').'</span></li>';
|
124 |
|
125 |
echo '
|
126 |
<li><label><input type="checkbox" name="xmlsf_post_types['.
|
130 |
echo '
|
131 |
<li><label><input type="checkbox" name="xmlsf_post_types['.
|
132 |
$post_type->name.'][update_lastmod_on_comments]" value="1" '.
|
133 |
+
checked( !empty($options[$post_type->name]["update_lastmod_on_comments"]), true, false).' /> '.__('Update Lastmod and Changefreq on comments.','xml-sitemap-feed').'</label> <span class="description">'.__('Set this if discussion on your site warrants reindexation upon each new comment.','xml-sitemap-feed').'</li>';
|
134 |
+
|
135 |
+
if (isset($defaults[$post_type->name]['tags'])) :
|
136 |
+
echo '
|
137 |
+
<li><fieldset id="xmlsf_post_types_tags"><legend><strong>'.__('Include:','xml-sitemap-feed').' </strong></legend>
|
138 |
+
<ul style="margin-left:18px">';
|
139 |
+
|
140 |
+
$image = !empty($options[$post_type->name]['tags']['image']) ? $options[$post_type->name]['tags']['image'] : $defaults[$post_type->name]['tags']['image'];
|
141 |
+
echo '
|
142 |
+
<li><label>'.__('Image tags for','xml-sitemap-feed').' <select name="xmlsf_post_types['.
|
143 |
+
$post_type->name.'][tags][image]">
|
144 |
+
<option value="no">'.__('None').'</option>
|
145 |
+
<option value="featured" '.
|
146 |
+
selected( $image == "featured", true, false).
|
147 |
+
'>'.__('Featured Image').'</option>
|
148 |
+
<option value="attached" '.
|
149 |
+
selected( $image == "attached", true, false).
|
150 |
+
'>'.__('Attached images','xml-sitemap-feed').'</option>
|
151 |
+
';
|
152 |
+
echo '</select></label></li>';
|
153 |
+
|
154 |
+
if (isset($defaults[$post_type->name]['tags']['news'])) {
|
155 |
+
echo '
|
156 |
+
<li><label><input type="checkbox" name="xmlsf_post_types['.
|
157 |
+
$post_type->name.'][tags][news]" value="1" '.
|
158 |
+
checked( !empty($options[$post_type->name]['tags']['news']), true, false).' /> '.__('Google News tags','xml-sitemap-feed').'</label> <span class="description">'.__('Only set when your site has been or will soon be accepted by Google News. **','xml-sitemap-feed').'</span></li>';
|
159 |
+
}
|
160 |
+
|
161 |
+
echo '
|
162 |
+
</ul>
|
163 |
+
</fieldset></li>';
|
164 |
+
endif;
|
165 |
+
|
166 |
+
echo '
|
167 |
</ul>';
|
168 |
} else {
|
169 |
echo '</p>';
|
172 |
}
|
173 |
|
174 |
echo '
|
175 |
+
<p class="description">'.__('* Priority settings do not affect ranking in search results in any way. They are only meant to suggest search engines which URLs to index first. Once a URL has been indexed, its Priority becomes meaningless until its Lastmod is updated.','xml-sitemap-feed').' <a href="#xmlsf_post_types_note_1_more" id="xmlsf_post_types_note_1_link">'.__('(more...)').'</a> <span id="xmlsf_post_types_note_1_more">'.__('Maximum Priority (1.0) is reserved for the front page, individual posts and, when allowed, posts with high comment count.','xml-sitemap-feed').' '.__('Priority values are taken as relative values. Setting all to the same (high) value is pointless.','xml-sitemap-feed').'</span></p>
|
176 |
+
<script type="text/javascript">
|
177 |
+
jQuery( document ).ready( function() {
|
178 |
+
jQuery("#xmlsf_post_types_note_1_more").hide();
|
179 |
+
jQuery("#xmlsf_post_types_note_1_link").click( function(event) {
|
180 |
+
event.preventDefault();
|
181 |
+
jQuery("#xmlsf_post_types_note_1_link").hide();
|
182 |
+
jQuery("#xmlsf_post_types_note_1_more").show("slow");
|
183 |
+
});
|
184 |
+
});
|
185 |
+
</script>';
|
186 |
+
echo '
|
187 |
+
<p class="description">'.sprintf(__('** Google recommends using a seperate news sitemap. You can do this by checking the option %1$s at %2$s above.','xml-sitemap-feed'),'<strong>'.__('Google News Sitemap','xml-sitemap-feed').'</strong>','<strong>'.__('Enable XML sitemaps','xml-sitemap-feed').'</strong>').'</p>';
|
188 |
echo '
|
189 |
</fieldset>';
|
190 |
}
|
192 |
public function taxonomies_settings_field() {
|
193 |
$options = parent::get_taxonomies();
|
194 |
$active = parent::get_option('post_types');
|
195 |
+
$output = '';
|
196 |
|
|
|
|
|
197 |
foreach ( get_taxonomies(array('public'=>true),'objects') as $taxonomy ) {
|
198 |
|
199 |
$skip = true;
|
202 |
$skip = false;
|
203 |
if ($skip) continue; // skip if none of the associated post types are active
|
204 |
|
|
|
205 |
$count = wp_count_terms( $taxonomy->name );
|
206 |
+
$output .= '
|
207 |
<label><input type="checkbox" name="xmlsf_taxonomies['.
|
208 |
$taxonomy->name.']" id="xmlsf_taxonomies_'.
|
209 |
$taxonomy->name.'" value="'.
|
210 |
$taxonomy->name.'"'.
|
211 |
checked(in_array($taxonomy->name,$options), true, false).' /> '.
|
212 |
$taxonomy->label.'</label> ('.
|
213 |
+
$count.') ';
|
214 |
+
|
215 |
+
// if ( in_array($taxonomy->name,$options) && empty($taxonomy->show_tagcloud) )
|
216 |
+
// echo '<span class="description error" style="color: red">'.__('This taxonomy type might not be suitable for public use. Please check the urls in the taxonomy sitemap.','xml-sitemap-feed').'</span>';
|
217 |
+
|
218 |
+
$output .= '
|
219 |
+
<br />';
|
220 |
}
|
221 |
|
222 |
+
if ($output) {
|
223 |
echo '
|
224 |
+
<fieldset id="xmlsf_taxonomies"><legend class="screen-reader-text">'.__('Include taxonomies','xml-sitemap-feed').'</legend>
|
225 |
+
';
|
226 |
|
227 |
+
echo $output;
|
228 |
+
|
229 |
+
echo '
|
230 |
+
<p class="description">'.__('It is generally not recommended to include taxonomy pages, unless their content brings added value. For example, when you use category descriptions with information that is not present elsewhere on your site or if taxonomy pages list posts with an excerpt that is different from, but complementary to the post content. In these cases you might consider including certain taxonomies. Otherwise, you might even consider disallowing indexation to prevent a possible duplicate content penalty. You can do this by adding specific robots.txt rules below.','xml-sitemap-feed');
|
231 |
+
echo '</p>
|
232 |
</fieldset>';
|
233 |
+
} else {
|
234 |
+
echo '
|
235 |
+
<p style="color: red" class="error">'.__('No taxonomies available for the currently included post types.','xml-sitemap-feed').'</p>';
|
236 |
+
}
|
237 |
}
|
238 |
|
239 |
public function ping_settings_field() {
|
241 |
$pings = parent::get_pings();
|
242 |
// search engines
|
243 |
$se = array(
|
244 |
+
'google' => array (
|
245 |
+
'name' => __('Google','xml-sitemap-feed'),
|
246 |
+
'uri' => 'http://www.google.com/webmasters/tools/ping?sitemap='
|
247 |
+
),
|
248 |
+
'bing' => array (
|
249 |
+
'name' => __('Bing','xml-sitemap-feed'),
|
250 |
+
'uri' => 'http://www.bing.com/ping?sitemap='
|
251 |
+
)
|
252 |
);
|
253 |
|
254 |
echo '
|
255 |
<fieldset id="xmlsf_ping"><legend class="screen-reader-text">'.__('Ping on Publish','xml-sitemap-feed').'</legend>
|
256 |
';
|
257 |
+
foreach ( $se as $name => $values ) {
|
258 |
|
259 |
echo '
|
260 |
<input type="hidden" name="xmlsf_ping['.
|
266 |
$name.'][active]" id="xmlsf_ping_'.
|
267 |
$name.'" value="1"'.
|
268 |
checked( !empty($options[$name]["active"]), true, false).' /> '.
|
269 |
+
$values['name'].'</label>';
|
270 |
|
271 |
echo ' <span class="description">';
|
272 |
if (isset($pings[$name]))
|
360 |
/* Adds a box to the side column */
|
361 |
public function add_meta_box()
|
362 |
{
|
363 |
+
// Only include metaboxes on post types that are included
|
364 |
foreach (parent::get_post_types() as $post_type)
|
365 |
if (isset($post_type["active"]))
|
366 |
add_meta_box(
|
372 |
);
|
373 |
}
|
374 |
|
|
|
375 |
public function meta_box($post)
|
376 |
{
|
377 |
// Use nonce for verification
|
379 |
|
380 |
// The actual fields for data entry
|
381 |
// Use get_post_meta to retrieve an existing value from the database and use the value for the form
|
382 |
+
$value = get_post_meta( $post->ID, '_xmlsf_exclude', true );
|
383 |
+
echo '<!-- '.$value.' -->';
|
384 |
+
echo '<p><label><input type="checkbox" name="xmlsf_exclude" id="xmlsf_exclude" value="1"'.checked(!empty($value), true, false).' > ';
|
385 |
+
_e('Exclude from XML Sitemap','xml-sitemap-feed');
|
386 |
+
echo '</label></p>';
|
387 |
+
|
388 |
echo '<p><label>';
|
389 |
_e('Priority','xml-sitemap-feed');
|
390 |
+
echo ' <input type="number" step="0.1" min="0" max="1" name="xmlsf_priority" id="xmlsf_priority" value="';
|
391 |
+
echo get_post_meta( $post->ID, '_xmlsf_priority', true );
|
392 |
+
echo '" class="small-text"></label> <span class="description">';
|
393 |
+
printf(__('Leave empty for automatic Priority as configured on %1$s > %2$s.','xml-sitemap-feed'),__('Settings'),__('Reading'));
|
394 |
+
echo '</span></p>';
|
395 |
}
|
396 |
|
397 |
/* When the post is saved, save our meta data */
|
403 |
if ( !current_user_can( 'edit_post', $post_id ) || !isset($_POST['xmlsf_sitemap_nonce']) || !wp_verify_nonce($_POST['xmlsf_sitemap_nonce'], plugin_basename( __FILE__ )) )
|
404 |
return;
|
405 |
|
406 |
+
// _xmlsf_priority
|
407 |
if ( isset($_POST['xmlsf_priority']) && $_POST['xmlsf_priority'] != '' && is_numeric($_POST['xmlsf_priority']) ) {
|
408 |
+
if ($_POST['xmlsf_priority'] <= 0)
|
409 |
+
update_post_meta($post_id, 'priority', '0');
|
410 |
+
elseif ($_POST['xmlsf_priority'] >= 1)
|
411 |
+
update_post_meta($post_id, '_xmlsf_priority', '1');
|
412 |
+
else
|
413 |
update_post_meta($post_id, '_xmlsf_priority', $_POST['xmlsf_priority']);
|
414 |
} else {
|
415 |
delete_post_meta($post_id, '_xmlsf_priority');
|
416 |
}
|
417 |
+
|
418 |
+
// _xmlsf_exclude
|
419 |
+
if ( isset($_POST['xmlsf_exclude']) && $_POST['xmlsf_exclude'] != '' ) {
|
420 |
+
update_post_meta($post_id, '_xmlsf_exclude', $_POST['xmlsf_exclude']);
|
421 |
+
} else {
|
422 |
+
delete_post_meta($post_id, '_xmlsf_exclude');
|
423 |
+
}
|
424 |
+
|
425 |
}
|
426 |
|
427 |
/**
|
includes/core.php
CHANGED
@@ -22,11 +22,15 @@ class XMLSitemapFeed {
|
|
22 |
private $yes_mother = false;
|
23 |
|
24 |
private $defaults = array();
|
|
|
25 |
|
26 |
// Global values used for priority and changefreq calculation
|
27 |
private $firstdate;
|
28 |
private $lastmodified;
|
29 |
private $postmodified = array();
|
|
|
|
|
|
|
30 |
|
31 |
private function build_defaults()
|
32 |
{
|
@@ -41,11 +45,17 @@ class XMLSitemapFeed {
|
|
41 |
// post_types
|
42 |
$this->defaults['post_types'] = array();
|
43 |
foreach ( get_post_types(array('public'=>true),'names') as $name ) {
|
|
|
|
|
|
|
|
|
44 |
$this->defaults['post_types'][$name] = array(
|
45 |
'name' => $name,
|
46 |
'active' => '',
|
|
|
47 |
'priority' => '0.5',
|
48 |
'dynamic_priority' => '',
|
|
|
49 |
);
|
50 |
}
|
51 |
|
@@ -61,20 +71,25 @@ class XMLSitemapFeed {
|
|
61 |
if ( isset($this->defaults['post_types']['post']) ) {
|
62 |
if (wp_count_posts('post')->publish > 500)
|
63 |
$this->defaults['post_types']['post']['archive'] = 'yearly';
|
64 |
-
|
65 |
-
$this->defaults['post_types']['post']['archive'] = '';
|
66 |
-
//$this->defaults['post_types']['post']['tags'] => array('news','image','video');
|
67 |
$this->defaults['post_types']['post']['priority'] = '0.7';
|
68 |
$this->defaults['post_types']['post']['dynamic_priority'] = '1';
|
69 |
}
|
70 |
|
71 |
if ( isset($this->defaults['post_types']['page']) ) {
|
72 |
-
|
|
|
73 |
$this->defaults['post_types']['page']['priority'] = '0.3';
|
74 |
}
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
// taxonomies
|
77 |
-
$this->defaults['taxonomies'] = array()
|
78 |
|
79 |
// ping search engines
|
80 |
$this->defaults['ping'] = array(
|
@@ -91,10 +106,12 @@ class XMLSitemapFeed {
|
|
91 |
$this->defaults['pings'] = array(); // for storing last ping timestamps and status
|
92 |
|
93 |
// robots
|
94 |
-
$this->defaults['robots'] = "Disallow: /xmlrpc.php\nDisallow: /wp-\nDisallow: /trackback/\nDisallow: ?wptheme=\nDisallow: ?comments=\nDisallow: ?replytocom\nDisallow: /comment-page-\nDisallow: /?s=\nDisallow: /wp-content/\
|
|
|
|
|
|
|
95 |
}
|
96 |
|
97 |
-
|
98 |
public function defaults($key = false)
|
99 |
{
|
100 |
if (empty($this->defaults))
|
@@ -112,15 +129,15 @@ class XMLSitemapFeed {
|
|
112 |
{
|
113 |
return get_option($this->prefix.$option, $this->defaults($option));
|
114 |
}
|
115 |
-
|
116 |
public function get_sitemaps()
|
117 |
-
{
|
118 |
$return = $this->get_option('sitemaps');
|
119 |
|
120 |
// make sure it's an array we are returning
|
121 |
return (is_array($return)) ? (array)$return : array();
|
122 |
}
|
123 |
-
|
124 |
public function get_ping()
|
125 |
{
|
126 |
$return = $this->get_option('ping');
|
@@ -128,7 +145,7 @@ class XMLSitemapFeed {
|
|
128 |
// make sure it's an array we are returning
|
129 |
return (!empty($return)) ? (array)$return : array();
|
130 |
}
|
131 |
-
|
132 |
public function get_pings()
|
133 |
{
|
134 |
$return = $this->get_option('pings');
|
@@ -136,7 +153,13 @@ class XMLSitemapFeed {
|
|
136 |
// make sure it's an array we are returning
|
137 |
return (!empty($return)) ? (array)$return : array();
|
138 |
}
|
139 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
public function get_post_types()
|
141 |
{
|
142 |
$return = $this->get_option('post_types');
|
@@ -156,9 +179,8 @@ class XMLSitemapFeed {
|
|
156 |
$count = wp_count_posts( $values['name'] );
|
157 |
if ($count->publish > 0) {
|
158 |
$values['count'] = $count->publish;
|
159 |
-
|
160 |
-
|
161 |
-
}
|
162 |
}
|
163 |
}
|
164 |
|
@@ -221,7 +243,7 @@ class XMLSitemapFeed {
|
|
221 |
return ( $robots = $this->get_option('robots') ) ? $robots : '';
|
222 |
}
|
223 |
|
224 |
-
public function
|
225 |
{
|
226 |
$return = $this->get_option('post_types');
|
227 |
|
@@ -229,45 +251,135 @@ class XMLSitemapFeed {
|
|
229 |
return (!empty($return[$type]['tags'])) ? (array)$return[$type]['tags'] : array();
|
230 |
}
|
231 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
|
233 |
/**
|
234 |
* TEMPLATE FUNCTIONS
|
235 |
*/
|
236 |
|
237 |
-
public function
|
238 |
{
|
239 |
-
|
240 |
|
241 |
-
|
242 |
-
|
243 |
-
|
|
|
|
|
|
|
|
|
|
|
244 |
|
245 |
-
if(
|
246 |
-
$
|
247 |
-
|
248 |
-
'number' => 1,
|
249 |
-
'post_id' => $post->ID,
|
250 |
-
) );
|
251 |
|
252 |
-
|
253 |
-
|
254 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
255 |
|
256 |
-
|
257 |
-
|
258 |
|
259 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
260 |
}
|
261 |
|
262 |
-
public function
|
263 |
{
|
264 |
-
|
265 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
}
|
267 |
|
268 |
-
public function get_changefreq()
|
269 |
{
|
270 |
-
$lastactivityage = ( gmdate('U') - mysql2date( 'U', $this->
|
271 |
|
272 |
if ( ($lastactivityage/86400) < 1 ) { // last activity less than 1 day old
|
273 |
$changefreq = 'hourly';
|
@@ -284,53 +396,76 @@ class XMLSitemapFeed {
|
|
284 |
return $changefreq;
|
285 |
}
|
286 |
|
287 |
-
public function get_priority()
|
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 |
-
// reduce by age
|
317 |
-
if ( is_sticky($post->ID) )
|
318 |
-
$priority = $priority_value;
|
319 |
-
else
|
320 |
-
$priority = ( $this->lastmodified > $this->firstdate ) ? $priority_value - $priority_value * ( $this->lastmodified - $post_modified ) / ( $this->lastmodified - $this->firstdate ) : $priority_value;
|
321 |
|
322 |
-
|
323 |
-
|
|
|
|
|
|
|
|
|
324 |
|
325 |
-
|
326 |
-
|
327 |
-
$priority = 1;
|
328 |
|
329 |
-
|
330 |
-
|
331 |
-
|
|
|
|
|
|
|
|
|
332 |
|
333 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
334 |
|
335 |
return number_format($priority,1);
|
336 |
}
|
@@ -352,13 +487,14 @@ class XMLSitemapFeed {
|
|
352 |
|
353 |
public function get_excluded($post_type)
|
354 |
{
|
355 |
-
global $polylang;
|
356 |
$exclude = array();
|
357 |
|
358 |
if ( $post_type == 'page' && $id = get_option('page_on_front') ) {
|
359 |
-
|
360 |
if ( isset($polylang) )
|
361 |
-
$exclude
|
|
|
|
|
362 |
}
|
363 |
|
364 |
return $exclude;
|
@@ -519,6 +655,10 @@ class XMLSitemapFeed {
|
|
519 |
$request['no_found_rows'] = true;
|
520 |
$request['update_post_meta_cache'] = false;
|
521 |
$request['update_post_term_cache'] = false;
|
|
|
|
|
|
|
|
|
522 |
|
523 |
return $request;
|
524 |
}
|
22 |
private $yes_mother = false;
|
23 |
|
24 |
private $defaults = array();
|
25 |
+
private $disabled_post_types = array('attachment');
|
26 |
|
27 |
// Global values used for priority and changefreq calculation
|
28 |
private $firstdate;
|
29 |
private $lastmodified;
|
30 |
private $postmodified = array();
|
31 |
+
private $termmodified = array();
|
32 |
+
private $blogpage;
|
33 |
+
private $images = array();
|
34 |
|
35 |
private function build_defaults()
|
36 |
{
|
45 |
// post_types
|
46 |
$this->defaults['post_types'] = array();
|
47 |
foreach ( get_post_types(array('public'=>true),'names') as $name ) {
|
48 |
+
// skip unallowed post types
|
49 |
+
if (in_array($name,$this->disabled_post_types))
|
50 |
+
continue;
|
51 |
+
|
52 |
$this->defaults['post_types'][$name] = array(
|
53 |
'name' => $name,
|
54 |
'active' => '',
|
55 |
+
'archive' => '',
|
56 |
'priority' => '0.5',
|
57 |
'dynamic_priority' => '',
|
58 |
+
'tags' => array('news' => '','image' => 'no')
|
59 |
);
|
60 |
}
|
61 |
|
71 |
if ( isset($this->defaults['post_types']['post']) ) {
|
72 |
if (wp_count_posts('post')->publish > 500)
|
73 |
$this->defaults['post_types']['post']['archive'] = 'yearly';
|
74 |
+
$this->defaults['post_types']['post']['tags']['image'] = 'featured';
|
|
|
|
|
75 |
$this->defaults['post_types']['post']['priority'] = '0.7';
|
76 |
$this->defaults['post_types']['post']['dynamic_priority'] = '1';
|
77 |
}
|
78 |
|
79 |
if ( isset($this->defaults['post_types']['page']) ) {
|
80 |
+
unset($this->defaults['post_types']['page']['archive']);
|
81 |
+
$this->defaults['post_types']['page']['tags'] = array('image' => 'featured');
|
82 |
$this->defaults['post_types']['page']['priority'] = '0.3';
|
83 |
}
|
84 |
|
85 |
+
/* attachment post type is disabled... images are included via tags in the post and page sitemaps
|
86 |
+
if ( isset($this->defaults['post_types']['attachment']) ) {
|
87 |
+
$this->defaults['post_types']['attachment']['tags']['image'] = 'attached';
|
88 |
+
$this->defaults['post_types']['attachment']['priority'] = '0.3';
|
89 |
+
}*/
|
90 |
+
|
91 |
// taxonomies
|
92 |
+
$this->defaults['taxonomies'] = array(); // by default do not include any taxonomies
|
93 |
|
94 |
// ping search engines
|
95 |
$this->defaults['ping'] = array(
|
106 |
$this->defaults['pings'] = array(); // for storing last ping timestamps and status
|
107 |
|
108 |
// robots
|
109 |
+
$this->defaults['robots'] = "Disallow: /xmlrpc.php\nDisallow: /wp-\nDisallow: /trackback/\nDisallow: ?wptheme=\nDisallow: ?comments=\nDisallow: ?replytocom\nDisallow: /comment-page-\nDisallow: /?s=\nDisallow: /wp-content/\n";
|
110 |
+
global $blog_id;
|
111 |
+
if ( !is_multisite() || $blog_id == 1 )
|
112 |
+
$this->defaults['robots'] .= "Allow: /wp-content/uploads/\n";
|
113 |
}
|
114 |
|
|
|
115 |
public function defaults($key = false)
|
116 |
{
|
117 |
if (empty($this->defaults))
|
129 |
{
|
130 |
return get_option($this->prefix.$option, $this->defaults($option));
|
131 |
}
|
132 |
+
|
133 |
public function get_sitemaps()
|
134 |
+
{
|
135 |
$return = $this->get_option('sitemaps');
|
136 |
|
137 |
// make sure it's an array we are returning
|
138 |
return (is_array($return)) ? (array)$return : array();
|
139 |
}
|
140 |
+
|
141 |
public function get_ping()
|
142 |
{
|
143 |
$return = $this->get_option('ping');
|
145 |
// make sure it's an array we are returning
|
146 |
return (!empty($return)) ? (array)$return : array();
|
147 |
}
|
148 |
+
|
149 |
public function get_pings()
|
150 |
{
|
151 |
$return = $this->get_option('pings');
|
153 |
// make sure it's an array we are returning
|
154 |
return (!empty($return)) ? (array)$return : array();
|
155 |
}
|
156 |
+
|
157 |
+
public function disabled_post_types()
|
158 |
+
{
|
159 |
+
return $this->disabled_post_types;
|
160 |
+
|
161 |
+
}
|
162 |
+
|
163 |
public function get_post_types()
|
164 |
{
|
165 |
$return = $this->get_option('post_types');
|
179 |
$count = wp_count_posts( $values['name'] );
|
180 |
if ($count->publish > 0) {
|
181 |
$values['count'] = $count->publish;
|
182 |
+
$return[$type] = $values;
|
183 |
+
}
|
|
|
184 |
}
|
185 |
}
|
186 |
|
243 |
return ( $robots = $this->get_option('robots') ) ? $robots : '';
|
244 |
}
|
245 |
|
246 |
+
public function do_tags( $type = 'post' )
|
247 |
{
|
248 |
$return = $this->get_option('post_types');
|
249 |
|
251 |
return (!empty($return[$type]['tags'])) ? (array)$return[$type]['tags'] : array();
|
252 |
}
|
253 |
|
254 |
+
public function is_home($id) {
|
255 |
+
|
256 |
+
if ( empty($this->blogpage) ) {
|
257 |
+
$blogpage = get_option('page_for_posts');
|
258 |
+
|
259 |
+
if ( !empty($blogpage) ) {
|
260 |
+
global $polylang;
|
261 |
+
if ( isset($polylang) )
|
262 |
+
$this->blogpage = $polylang->get_translations('post', $blogpage);
|
263 |
+
else
|
264 |
+
$this->blogpage = array($blogpage);
|
265 |
+
} else {
|
266 |
+
$this->blogpage = array('-1');
|
267 |
+
}
|
268 |
+
}
|
269 |
+
|
270 |
+
return in_array($id,$this->blogpage);
|
271 |
+
|
272 |
+
}
|
273 |
|
274 |
/**
|
275 |
* TEMPLATE FUNCTIONS
|
276 |
*/
|
277 |
|
278 |
+
public function modified($sitemap = 'post_type', $term = '')
|
279 |
{
|
280 |
+
if ('post_type' == $sitemap) :
|
281 |
|
282 |
+
global $post;
|
283 |
+
|
284 |
+
// if blog page look for last post date
|
285 |
+
if ( $post->post_type == 'page' && $this->is_home($post->ID) ) {
|
286 |
+
//if ( empty($this->lastmodified) )
|
287 |
+
//$this->lastmodified = mysql2date('U',get_lastmodified('GMT','post'));
|
288 |
+
return get_lastmodified('GMT','post'); //$this->lastmodified;
|
289 |
+
}
|
290 |
|
291 |
+
if ( empty($this->postmodified[$post->ID]) ) {
|
292 |
+
$postmodified = get_post_modified_time( 'Y-m-d H:i:s', true, $post->ID );
|
293 |
+
$options = $this->get_option('post_types');
|
|
|
|
|
|
|
294 |
|
295 |
+
if( !empty($options[$post->post_type]['update_lastmod_on_comments']) )
|
296 |
+
$lastcomment = get_comments( array(
|
297 |
+
'status' => 'approve',
|
298 |
+
'number' => 1,
|
299 |
+
'post_id' => $post->ID,
|
300 |
+
) );
|
301 |
+
|
302 |
+
if ( isset($lastcomment[0]->comment_date_gmt) )
|
303 |
+
if ( mysql2date( 'U', $lastcomment[0]->comment_date_gmt ) > mysql2date( 'U', $postmodified ) )
|
304 |
+
$postmodified = $lastcomment[0]->comment_date_gmt;
|
305 |
|
306 |
+
$this->postmodified[$post->ID] = $postmodified;
|
307 |
+
}
|
308 |
|
309 |
+
return $this->postmodified[$post->ID];
|
310 |
+
|
311 |
+
elseif ( !empty($term) ) :
|
312 |
+
|
313 |
+
if ( is_object($term) ) {
|
314 |
+
if ( empty($this->termmodified[$term->term_id]) ) {
|
315 |
+
// get the latest post in this taxonomy item, to use its post_date as lastmod
|
316 |
+
$posts = get_posts ( array(
|
317 |
+
'numberposts' => 1,
|
318 |
+
'no_found_rows' => true,
|
319 |
+
'update_post_meta_cache' => false,
|
320 |
+
'update_post_term_cache' => false,
|
321 |
+
'update_cache' => false,
|
322 |
+
'tax_query' => array(
|
323 |
+
array(
|
324 |
+
'taxonomy' => $term->taxonomy,
|
325 |
+
'field' => 'slug',
|
326 |
+
'terms' => $term->slug
|
327 |
+
)
|
328 |
+
)
|
329 |
+
)
|
330 |
+
);
|
331 |
+
$this->termmodified[$term->term_id] = $posts[0]->post_date_gmt;
|
332 |
+
}
|
333 |
+
return $this->termmodified[$term->term_id];
|
334 |
+
} else {
|
335 |
+
$obj = get_taxonomy($term);
|
336 |
+
return get_lastdate( 'gmt', $obj->object_type[0] );
|
337 |
+
// uses get_lastdate() function defined in xml-sitemap/hacks.php !
|
338 |
+
// which is a shortcut: returns last post date, not last modified date...
|
339 |
+
// TODO find the long way around (take tax type, get all terms,
|
340 |
+
// do tax_query with all terms for one post and get its lastmod date)
|
341 |
+
}
|
342 |
+
|
343 |
+
|
344 |
+
else :
|
345 |
+
|
346 |
+
return '0000-00-00 00:00:00';
|
347 |
+
|
348 |
+
endif;
|
349 |
}
|
350 |
|
351 |
+
public function get_images()
|
352 |
{
|
353 |
+
global $post;
|
354 |
+
if ( empty($this->images[$post->ID]) ) {
|
355 |
+
$options = $this->get_option('post_types');
|
356 |
+
if('attached' == $options[$post->post_type]['tags']['image']) {
|
357 |
+
$args = array( 'post_type' => 'attachment', 'post_mime_type' => 'image', 'numberposts' => -1, 'post_status' =>'inherit', 'post_parent' => $post->ID );
|
358 |
+
$attachments = get_posts($args);
|
359 |
+
if ($attachments) {
|
360 |
+
foreach ( $attachments as $attachment ) {
|
361 |
+
$image = wp_get_attachment_image_src( $attachment->ID, 'full' );
|
362 |
+
$this->images[$post->ID][] = $image[0];
|
363 |
+
}
|
364 |
+
}
|
365 |
+
} elseif ('featured' == $options[$post->post_type]['tags']['image']) {
|
366 |
+
if (has_post_thumbnail( $post->ID ) ) {
|
367 |
+
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' );
|
368 |
+
$this->images[$post->ID][] = $image[0];
|
369 |
+
}
|
370 |
+
}
|
371 |
+
}
|
372 |
+
return ( isset($this->images[$post->ID]) ) ? $this->images[$post->ID] : array();
|
373 |
+
}
|
374 |
+
|
375 |
+
public function get_lastmod($sitemap = 'post_type', $term = '')
|
376 |
+
{
|
377 |
+
return mysql2date('Y-m-d\TH:i:s+00:00', $this->modified($sitemap,$term), false);
|
378 |
}
|
379 |
|
380 |
+
public function get_changefreq($sitemap = 'post_type', $term = '')
|
381 |
{
|
382 |
+
$lastactivityage = ( gmdate('U') - mysql2date( 'U', $this->modified($sitemap,$term) ) ); // post age
|
383 |
|
384 |
if ( ($lastactivityage/86400) < 1 ) { // last activity less than 1 day old
|
385 |
$changefreq = 'hourly';
|
396 |
return $changefreq;
|
397 |
}
|
398 |
|
399 |
+
public function get_priority($sitemap = 'post_type', $term = '')
|
400 |
{
|
401 |
+
if ( 'post_type' == $sitemap ) :
|
402 |
+
global $post;
|
403 |
+
$options = $this->get_option('post_types');
|
404 |
+
$defaults = $this->defaults('post_types');
|
405 |
+
$priority_meta = get_metadata('post', $post->ID, '_xmlsf_priority' , true);
|
406 |
|
407 |
+
if ( !empty($priority_meta) ) {
|
408 |
|
409 |
+
$priority = $priority_meta;
|
410 |
|
411 |
+
} elseif ( !empty($options[$post->post_type]['dynamic_priority']) ) {
|
412 |
+
|
413 |
+
$post_modified = mysql2date('U',$post->post_modified_gmt);
|
414 |
|
415 |
+
if ( empty($this->lastmodified) )
|
416 |
+
$this->lastmodified = mysql2date('U',get_lastmodified('GMT',$post->post_type));
|
417 |
+
// last posts or page modified date in Unix seconds
|
418 |
+
// uses get_lastmodified() function defined in xml-sitemap/hacks.php !
|
419 |
|
420 |
+
if ( empty($this->firstdate) )
|
421 |
+
$this->firstdate = mysql2date('U',get_firstdate('GMT',$post->post_type));
|
422 |
+
// uses get_firstdate() function defined in xml-sitemap/hacks.php !
|
423 |
|
424 |
+
if ( isset($options[$post->post_type]['priority']) )
|
425 |
+
$priority_value = $options[$post->post_type]['priority'];
|
426 |
+
else
|
427 |
+
$priority_value = $defaults[$post->post_type]['priority'];
|
|
|
|
|
|
|
|
|
|
|
|
|
428 |
|
429 |
+
// reduce by age
|
430 |
+
// NOTE : home/blog page gets same treatment as sticky post
|
431 |
+
if ( is_sticky($post->ID) || $this->is_home($post->ID) )
|
432 |
+
$priority = $priority_value;
|
433 |
+
else
|
434 |
+
$priority = ( $this->lastmodified > $this->firstdate ) ? $priority_value - $priority_value * ( $this->lastmodified - $post_modified ) / ( $this->lastmodified - $this->firstdate ) : $priority_value;
|
435 |
|
436 |
+
if ( $post->comment_count > 0 )
|
437 |
+
$priority = $priority + 0.1 + ( 0.9 - $priority ) * $post->comment_count / wp_count_comments($post->post_type)->approved;
|
|
|
438 |
|
439 |
+
// and a final trim for cases where we end up above 1 (sticky posts with many comments)
|
440 |
+
if ($priority > 1)
|
441 |
+
$priority = 1;
|
442 |
+
|
443 |
+
} else {
|
444 |
+
|
445 |
+
$priority = ( isset($options[$post->post_type]['priority']) && is_numeric($options[$post->post_type]['priority']) ) ? $options[$post->post_type]['priority'] : $defaults[$post->post_type]['priority'];
|
446 |
|
447 |
+
}
|
448 |
+
|
449 |
+
elseif ( ! empty($term) ) :
|
450 |
+
|
451 |
+
$max_priority = 0.4;
|
452 |
+
$min_priority = 0.0;
|
453 |
+
// TODO make these values optional
|
454 |
+
|
455 |
+
$tax_obj = get_taxonomy($term->taxonomy);
|
456 |
+
$postcount = 0;
|
457 |
+
foreach ($tax_obj->object_type as $post_type) {
|
458 |
+
$_post_count = wp_count_posts($post_type);
|
459 |
+
$postcount += $_post_count->publish;
|
460 |
+
}
|
461 |
+
|
462 |
+
$priority = ( $postcount > 0 ) ? $min_priority + ( $max_priority * $term->count / $postcount ) : $min_priority;
|
463 |
+
|
464 |
+
else :
|
465 |
+
|
466 |
+
$priority = 0.5;
|
467 |
+
|
468 |
+
endif;
|
469 |
|
470 |
return number_format($priority,1);
|
471 |
}
|
487 |
|
488 |
public function get_excluded($post_type)
|
489 |
{
|
|
|
490 |
$exclude = array();
|
491 |
|
492 |
if ( $post_type == 'page' && $id = get_option('page_on_front') ) {
|
493 |
+
global $polylang;
|
494 |
if ( isset($polylang) )
|
495 |
+
$exclude += $polylang->get_translations('post', $id);
|
496 |
+
else
|
497 |
+
$exclude[] = $id;
|
498 |
}
|
499 |
|
500 |
return $exclude;
|
655 |
$request['no_found_rows'] = true;
|
656 |
$request['update_post_meta_cache'] = false;
|
657 |
$request['update_post_term_cache'] = false;
|
658 |
+
/*if ('attachment' == $post_type['name']) {
|
659 |
+
$request['post_status'] = 'inherit';
|
660 |
+
$request['post_mime_type'] = 'image,audio'; // ,video,audio
|
661 |
+
}*/
|
662 |
|
663 |
return $request;
|
664 |
}
|
includes/feed-sitemap-post_type.php
CHANGED
@@ -8,11 +8,6 @@
|
|
8 |
status_header('200'); // force header('HTTP/1.1 200 OK') even for sites without posts
|
9 |
header('Content-Type: text/xml; charset=' . get_bloginfo('charset'), true);
|
10 |
|
11 |
-
global $xmlsf;
|
12 |
-
$post_type = get_query_var('post_type');
|
13 |
-
foreach ( $xmlsf->get_do_tags($post_type) as $tag )
|
14 |
-
$$tag = true;
|
15 |
-
|
16 |
echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?>
|
17 |
<?xml-stylesheet type="text/xsl" href="' . plugins_url('xsl/sitemap.xsl.php',__FILE__) . '?ver=' . XMLSF_VERSION . '"?>
|
18 |
<!-- generated-on="' . date('Y-m-d\TH:i:s+00:00') . '" -->
|
@@ -20,8 +15,17 @@ echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?>
|
|
20 |
<!-- generator-url="http://status301.net/wordpress-plugins/xml-sitemap-feed/" -->
|
21 |
<!-- generator-version="' . XMLSF_VERSION . '" -->
|
22 |
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" ';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
echo !empty($news) ? '
|
24 |
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" ' : '';
|
|
|
|
|
25 |
echo '
|
26 |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
27 |
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
@@ -29,9 +33,20 @@ echo '
|
|
29 |
echo !empty($news) ? '
|
30 |
http://www.google.com/schemas/sitemap-news/0.9
|
31 |
http://www.google.com/schemas/sitemap-news/0.9/sitemap-news.xsd' : '';
|
|
|
|
|
|
|
32 |
echo '">
|
33 |
';
|
34 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
// any ID's we need to exclude?
|
36 |
$excluded = $xmlsf->get_excluded($post_type);
|
37 |
|
@@ -42,8 +57,11 @@ if ( have_posts() ) :
|
|
42 |
|
43 |
// check if we are not dealing with an external URL :: Thanks to Francois Deschenes :)
|
44 |
// or if page is in the exclusion list (like front pages)
|
45 |
-
|
|
|
|
|
46 |
continue;
|
|
|
47 |
// TODO news, image & video tags
|
48 |
?>
|
49 |
<url>
|
@@ -51,6 +69,57 @@ if ( have_posts() ) :
|
|
51 |
<lastmod><?php echo $xmlsf->get_lastmod(); ?></lastmod>
|
52 |
<changefreq><?php echo $xmlsf->get_changefreq(); ?></changefreq>
|
53 |
<priority><?php echo $xmlsf->get_priority(); ?></priority>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
</url>
|
55 |
<?php
|
56 |
endwhile;
|
8 |
status_header('200'); // force header('HTTP/1.1 200 OK') even for sites without posts
|
9 |
header('Content-Type: text/xml; charset=' . get_bloginfo('charset'), true);
|
10 |
|
|
|
|
|
|
|
|
|
|
|
11 |
echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?>
|
12 |
<?xml-stylesheet type="text/xsl" href="' . plugins_url('xsl/sitemap.xsl.php',__FILE__) . '?ver=' . XMLSF_VERSION . '"?>
|
13 |
<!-- generated-on="' . date('Y-m-d\TH:i:s+00:00') . '" -->
|
15 |
<!-- generator-url="http://status301.net/wordpress-plugins/xml-sitemap-feed/" -->
|
16 |
<!-- generator-version="' . XMLSF_VERSION . '" -->
|
17 |
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" ';
|
18 |
+
|
19 |
+
global $xmlsf;
|
20 |
+
$post_type = get_query_var('post_type');
|
21 |
+
|
22 |
+
foreach ( $xmlsf->do_tags($post_type) as $tag => $setting )
|
23 |
+
$$tag = $setting;
|
24 |
+
|
25 |
echo !empty($news) ? '
|
26 |
xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" ' : '';
|
27 |
+
echo !empty($image) ? '
|
28 |
+
xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" ' : '';
|
29 |
echo '
|
30 |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
31 |
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
33 |
echo !empty($news) ? '
|
34 |
http://www.google.com/schemas/sitemap-news/0.9
|
35 |
http://www.google.com/schemas/sitemap-news/0.9/sitemap-news.xsd' : '';
|
36 |
+
echo !empty($image) ? '
|
37 |
+
http://www.google.com/schemas/sitemap-image/1.1
|
38 |
+
http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd' : '';
|
39 |
echo '">
|
40 |
';
|
41 |
|
42 |
+
// get site language for default language
|
43 |
+
// bloginfo_rss('language') returns improper format so
|
44 |
+
// we explode on hyphen and use only first part.
|
45 |
+
// TODO this workaround breaks (simplified) chinese :(
|
46 |
+
$language = reset(explode('-', get_bloginfo_rss('language')));
|
47 |
+
if ( empty($language) )
|
48 |
+
$language = 'en';
|
49 |
+
|
50 |
// any ID's we need to exclude?
|
51 |
$excluded = $xmlsf->get_excluded($post_type);
|
52 |
|
57 |
|
58 |
// check if we are not dealing with an external URL :: Thanks to Francois Deschenes :)
|
59 |
// or if page is in the exclusion list (like front pages)
|
60 |
+
// or if post meta says "exclude"
|
61 |
+
$exclude = get_post_meta( $post->ID, '_xmlsf_exclude', true );
|
62 |
+
if ( !empty($exclude) || !preg_match('/^' . preg_quote(home_url(), '/') . '/i', get_permalink()) || in_array($post->ID, $excluded) )
|
63 |
continue;
|
64 |
+
|
65 |
// TODO news, image & video tags
|
66 |
?>
|
67 |
<url>
|
69 |
<lastmod><?php echo $xmlsf->get_lastmod(); ?></lastmod>
|
70 |
<changefreq><?php echo $xmlsf->get_changefreq(); ?></changefreq>
|
71 |
<priority><?php echo $xmlsf->get_priority(); ?></priority>
|
72 |
+
<?php
|
73 |
+
if ( !empty($news) && $post->post_date > date('Y-m-d H:i:s', strtotime('-49 hours') ) ) : ?>
|
74 |
+
<news:news>
|
75 |
+
<news:publication>
|
76 |
+
<news:name><?php
|
77 |
+
if(defined('XMLSF_GOOGLE_NEWS_NAME'))
|
78 |
+
echo apply_filters('the_title_rss', XMLSF_GOOGLE_NEWS_NAME);
|
79 |
+
else
|
80 |
+
echo bloginfo_rss('name'); ?></news:name>
|
81 |
+
<news:language><?php
|
82 |
+
$lang = reset(get_the_terms($post->ID,'language'));
|
83 |
+
echo (is_object($lang)) ? $lang->slug : $language; ?></news:language>
|
84 |
+
</news:publication>
|
85 |
+
<news:publication_date><?php
|
86 |
+
echo mysql2date('Y-m-d\TH:i:s+00:00', $post->post_date_gmt, false); ?></news:publication_date>
|
87 |
+
<news:title><?php the_title_rss() ?></news:title>
|
88 |
+
<news:keywords><?php
|
89 |
+
$do_comma = false;
|
90 |
+
$keys_arr = get_the_category();
|
91 |
+
foreach($keys_arr as $key) {
|
92 |
+
echo ( $do_comma ) ? ', ' : '' ;
|
93 |
+
echo apply_filters('the_title_rss', $key->name);
|
94 |
+
$do_comma = true;
|
95 |
+
} ?></news:keywords>
|
96 |
+
<?php
|
97 |
+
// TODO: create the new taxonomy "Google News Genre" with some genres preset
|
98 |
+
if ( taxonomy_exists('gn_genre') && get_the_terms($post->ID,'gn_genre') ) {
|
99 |
+
?>
|
100 |
+
<news:genres><?php
|
101 |
+
$do_comma = false;
|
102 |
+
foreach(get_the_terms($post->ID,'gn_genre') as $key) {
|
103 |
+
echo ( $do_comma ) ? ', ' : '' ;
|
104 |
+
echo apply_filters('the_title_rss', $key->name);
|
105 |
+
$do_comma = true;
|
106 |
+
} ?></news:genres>
|
107 |
+
<?php
|
108 |
+
}
|
109 |
+
?>
|
110 |
+
</news:news>
|
111 |
+
<?php
|
112 |
+
endif;
|
113 |
+
if ( !empty($image) && $xmlsf->get_images() ) :
|
114 |
+
foreach ( $xmlsf->get_images() as $loc ) {
|
115 |
+
?>
|
116 |
+
<image:image>
|
117 |
+
<image:loc><?php echo $loc; ?></image:loc>
|
118 |
+
</image:image>
|
119 |
+
<?php
|
120 |
+
}
|
121 |
+
endif;
|
122 |
+
?>
|
123 |
</url>
|
124 |
<?php
|
125 |
endwhile;
|
includes/feed-sitemap-taxonomy.php
CHANGED
@@ -5,10 +5,7 @@
|
|
5 |
* @package XML Sitemap Feed plugin for WordPress
|
6 |
*/
|
7 |
|
8 |
-
global $xmlsf;
|
9 |
-
|
10 |
status_header('200'); // force header('HTTP/1.1 200 OK') for sites without posts
|
11 |
-
// TODO test if we can do without it
|
12 |
header('Content-Type: text/xml; charset=' . get_bloginfo('charset', 'UTF-8'), true);
|
13 |
|
14 |
echo '<?xml version="1.0" encoding="'.get_bloginfo('charset', 'UTF-8').'"?>
|
@@ -17,33 +14,16 @@ echo '<?xml version="1.0" encoding="'.get_bloginfo('charset', 'UTF-8').'"?>
|
|
17 |
<!-- generator="XML & Google News Sitemap Feed plugin for WordPress" -->
|
18 |
<!-- generator-url="http://status310.net/wordpress-plugins/xml-sitemap-feed/" -->
|
19 |
<!-- generator-version="'.XMLSF_VERSION.'" -->
|
20 |
-
|
21 |
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
22 |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
23 |
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
24 |
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
|
25 |
';
|
26 |
|
27 |
-
|
28 |
-
|
29 |
-
$max_priority = 0.4; // Maximum priority value for any URL in the sitemap; set to any other value between 0 and 1.
|
30 |
-
$min_priority = 0.0; // Minimum priority value for any URL in the sitemap; set to any other value between 0 and 1.
|
31 |
-
// NOTE: Changing these values will influence each URL's priority. Priority values are taken by
|
32 |
-
// search engines to represent RELATIVE priority within the site domain. Forcing all URLs
|
33 |
-
// to a priority of above 0.5 or even fixing them all to 1.0 - for example - is useless.
|
34 |
|
35 |
$taxonomy = get_query_var('taxonomy');
|
36 |
$lang = get_query_var('lang');
|
37 |
-
echo "<!-- taxonomy: $taxonomy -->";
|
38 |
-
$tax_obj = get_taxonomy($taxonomy);
|
39 |
-
$postcount = 0;
|
40 |
-
foreach ( $tax_obj->object_type as $post_type) {
|
41 |
-
$_post_count = wp_count_posts($post_type);
|
42 |
-
$postcount += $_post_count->publish;
|
43 |
-
}
|
44 |
-
|
45 |
-
//$_terms_count = wp_count_terms(get_query_var('taxonomy'));
|
46 |
-
//$average_count = $_post_count->publish / $_terms_count;
|
47 |
|
48 |
$terms = get_terms( $taxonomy, array(
|
49 |
'orderby' => 'count',
|
@@ -57,45 +37,12 @@ if ( $terms ) :
|
|
57 |
|
58 |
foreach ( $terms as $term ) :
|
59 |
|
60 |
-
// calculate priority based on number of posts
|
61 |
-
// or maybe take child taxonomy terms into account.?
|
62 |
-
|
63 |
-
$priority = $min_priority + ( $max_priority * $term->count / $postcount );
|
64 |
-
|
65 |
-
// get the latest post in this taxonomy item, to use its post_date as lastmod
|
66 |
-
$posts = get_posts ( array(
|
67 |
-
'numberposts' => 1,
|
68 |
-
'no_found_rows' => true,
|
69 |
-
'update_post_meta_cache' => false,
|
70 |
-
'update_post_term_cache' => false,
|
71 |
-
'update_cache' => false,
|
72 |
-
'tax_query' => array(
|
73 |
-
array(
|
74 |
-
'taxonomy' => $term->taxonomy,
|
75 |
-
'field' => 'slug',
|
76 |
-
'terms' => $term->slug
|
77 |
-
)
|
78 |
-
)
|
79 |
-
)
|
80 |
-
);
|
81 |
?>
|
82 |
<url>
|
83 |
<loc><?php echo get_term_link( $term ); ?></loc>
|
84 |
-
<priority><?php echo
|
85 |
-
<lastmod><?php echo
|
86 |
-
<changefreq><?php
|
87 |
-
$lastactivityage = (gmdate('U') - mysql2date('U', $posts[0]->post_date_gmt));
|
88 |
-
if(($lastactivityage/86400) < 1) { // last activity less than 1 day old
|
89 |
-
echo 'hourly';
|
90 |
-
} else if(($lastactivityage/86400) < 7) { // last activity less than 1 week old
|
91 |
-
echo 'daily';
|
92 |
-
} else if(($lastactivityage/86400) < 30) { // last activity between 1 week and one month old
|
93 |
-
echo 'weekly';
|
94 |
-
} else if(($lastactivityage/86400) < 365) { // last activity between 1 month and 1 year old
|
95 |
-
echo 'monthly';
|
96 |
-
} else {
|
97 |
-
echo 'yearly';
|
98 |
-
} ?></changefreq>
|
99 |
</url>
|
100 |
<?php
|
101 |
endforeach;
|
5 |
* @package XML Sitemap Feed plugin for WordPress
|
6 |
*/
|
7 |
|
|
|
|
|
8 |
status_header('200'); // force header('HTTP/1.1 200 OK') for sites without posts
|
|
|
9 |
header('Content-Type: text/xml; charset=' . get_bloginfo('charset', 'UTF-8'), true);
|
10 |
|
11 |
echo '<?xml version="1.0" encoding="'.get_bloginfo('charset', 'UTF-8').'"?>
|
14 |
<!-- generator="XML & Google News Sitemap Feed plugin for WordPress" -->
|
15 |
<!-- generator-url="http://status310.net/wordpress-plugins/xml-sitemap-feed/" -->
|
16 |
<!-- generator-version="'.XMLSF_VERSION.'" -->
|
|
|
17 |
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
18 |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
19 |
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
|
20 |
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
|
21 |
';
|
22 |
|
23 |
+
global $xmlsf;
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
$taxonomy = get_query_var('taxonomy');
|
26 |
$lang = get_query_var('lang');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
$terms = get_terms( $taxonomy, array(
|
29 |
'orderby' => 'count',
|
37 |
|
38 |
foreach ( $terms as $term ) :
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
?>
|
41 |
<url>
|
42 |
<loc><?php echo get_term_link( $term ); ?></loc>
|
43 |
+
<priority><?php echo $xmlsf->get_priority('taxonomy',$term); ?></priority>
|
44 |
+
<lastmod><?php echo $xmlsf->get_lastmod('taxonomy',$term); ?></lastmod>
|
45 |
+
<changefreq><?php echo $xmlsf->get_changefreq('taxonomy',$term); ?></changefreq>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
</url>
|
47 |
<?php
|
48 |
endforeach;
|
includes/feed-sitemap.php
CHANGED
@@ -48,11 +48,10 @@ foreach ( $xmlsf->have_post_types() as $post_type ) {
|
|
48 |
foreach ( $xmlsf->get_taxonomies() as $taxonomy ) {
|
49 |
|
50 |
if ( wp_count_terms( $taxonomy ) > 0 ) {
|
51 |
-
$obj = get_taxonomy($taxonomy);
|
52 |
?>
|
53 |
<sitemap>
|
54 |
-
<loc><?php echo $xmlsf->get_index_url('taxonomy'
|
55 |
-
<lastmod><?php echo
|
56 |
</sitemap>
|
57 |
<?php
|
58 |
// TODO add lastmod ?
|
48 |
foreach ( $xmlsf->get_taxonomies() as $taxonomy ) {
|
49 |
|
50 |
if ( wp_count_terms( $taxonomy ) > 0 ) {
|
|
|
51 |
?>
|
52 |
<sitemap>
|
53 |
+
<loc><?php echo $xmlsf->get_index_url('taxonomy',$taxonomy); ?></loc>
|
54 |
+
<lastmod><?php echo $xmlsf->get_lastmod('taxonomy',$taxonomy); ?></lastmod>
|
55 |
</sitemap>
|
56 |
<?php
|
57 |
// TODO add lastmod ?
|
languages/xml-sitemap-feed-fr_FR.mo
CHANGED
Binary file
|
languages/xml-sitemap-feed-fr_FR.po
CHANGED
@@ -2,8 +2,8 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: XML Sitemap and Google News feeds/4.0\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2013-
|
6 |
-
"PO-Revision-Date: 2013-
|
7 |
"Last-Translator: RavanH <ravanhagen@gmail.com>\n"
|
8 |
"Language-Team: \n"
|
9 |
"Language: \n"
|
@@ -21,7 +21,7 @@ msgid "Donate to keep the free %s plugin development & support going!"
|
|
21 |
msgstr "Faites un don pour aider le développement et support de l'extension %s. Merci !"
|
22 |
|
23 |
#: ../includes/admin.php:15
|
24 |
-
#: ../includes/admin.php:
|
25 |
msgid "XML Sitemap & Google News Feeds"
|
26 |
msgstr "Flux XML Sitemap & Google News"
|
27 |
|
@@ -32,24 +32,24 @@ msgstr "Ces options contrôlent le XML Sitemap par l'extension %s."
|
|
32 |
|
33 |
#: ../includes/admin.php:16
|
34 |
#, php-format
|
35 |
-
msgid "XML Sitemaps will be disabled automatically when you
|
36 |
-
msgstr "Les XML Sitemaps seront
|
37 |
|
38 |
#: ../includes/admin.php:16
|
39 |
-
msgid "
|
40 |
msgstr ""
|
41 |
|
42 |
#: ../includes/admin.php:16
|
43 |
-
msgid "
|
44 |
msgstr ""
|
45 |
|
46 |
#: ../includes/admin.php:16
|
47 |
#, php-format
|
48 |
-
msgid "XML Sitemaps are disabled because you have
|
49 |
-
msgstr "Les XML Sitemaps sont
|
50 |
|
51 |
#: ../includes/admin.php:40
|
52 |
-
#: ../includes/admin.php:
|
53 |
msgid "XML Sitemaps"
|
54 |
msgstr "XML Sitemaps"
|
55 |
|
@@ -58,160 +58,203 @@ msgid "Regular XML Sitemaps"
|
|
58 |
msgstr "XML Sitemaps normaux"
|
59 |
|
60 |
#: ../includes/admin.php:43
|
61 |
-
#: ../includes/admin.php:
|
62 |
msgid "View"
|
63 |
msgstr ""
|
64 |
|
65 |
-
#: ../includes/admin.php:
|
|
|
66 |
msgid "Google News Sitemap"
|
67 |
msgstr "Google News Sitemap"
|
68 |
|
69 |
-
#: ../includes/admin.php:
|
70 |
-
#: ../includes/admin.php:
|
71 |
msgid "Include post types"
|
72 |
msgstr "Types d'articles à inclure"
|
73 |
|
74 |
-
#: ../includes/admin.php:
|
75 |
-
#: ../includes/admin.php:
|
76 |
-
#: ../includes/admin.php:
|
77 |
msgid "Settings"
|
78 |
msgstr ""
|
79 |
|
80 |
-
#: ../includes/admin.php:
|
81 |
-
msgid "
|
82 |
-
msgstr "
|
83 |
|
84 |
-
#: ../includes/admin.php:
|
85 |
-
msgid "
|
86 |
-
msgstr "
|
87 |
|
88 |
-
#: ../includes/admin.php:
|
89 |
msgid "Split by"
|
90 |
msgstr "Trier par"
|
91 |
|
92 |
-
#: ../includes/admin.php:
|
93 |
-
|
94 |
-
|
|
|
|
|
|
|
|
|
|
|
95 |
|
96 |
-
#: ../includes/admin.php:
|
97 |
-
#: ../includes/admin.php:
|
98 |
msgid "Priority"
|
99 |
msgstr "Priorité"
|
100 |
|
101 |
-
#: ../includes/admin.php:
|
102 |
-
msgid "Priority can be overridden on individual posts."
|
103 |
-
msgstr "La Priorité peut être remplacée par article."
|
104 |
-
|
105 |
-
#: ../includes/admin.php:128
|
106 |
-
msgid "Maximum Priority (1.0) is reserved for the front page, individual posts and, when allowed, posts with high comment count."
|
107 |
-
msgstr "La Priorité maximum (1.0) est réservé à la page d'accueil, articles individuels et, si permis, articles avec beaucoup des commentaires."
|
108 |
|
109 |
-
#: ../includes/admin.php:
|
110 |
msgid "Automatically adjusts Priority according to relative age and comment count."
|
111 |
msgstr "Ajuste la Priorité automatiquement selon l'âge relatif et le nombre des commentaires."
|
112 |
|
113 |
-
#: ../includes/admin.php:
|
114 |
msgid "Sticky posts will not be subject to reduction by age. Individual posts with fixed Priority will always keep that value."
|
115 |
msgstr "Articles mise en avant ne seront pas soumis à la réduction selon l'âge. Articles avec Priorité fixe garderont cette valeur."
|
116 |
|
117 |
-
#: ../includes/admin.php:
|
118 |
msgid "Update Lastmod and Changefreq on comments."
|
119 |
msgstr "Mise à jour de Lastmod et Changefreq à la soumission des commentaires."
|
120 |
|
121 |
-
#: ../includes/admin.php:
|
122 |
msgid "Set this if discussion on your site warrants reindexation upon each new comment."
|
123 |
msgstr "Configurez ceci si la discussion sur votre site nécessite la ré-indexation après chaque nouveau commentaire."
|
124 |
|
125 |
-
#: ../includes/admin.php:
|
126 |
-
msgid "
|
127 |
-
msgstr "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
|
129 |
-
#: ../includes/admin.php:
|
130 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
msgid "Include taxonomies"
|
132 |
msgstr "Taxonomies à inclure"
|
133 |
|
134 |
-
#: ../includes/admin.php:
|
135 |
msgid "No taxonomies available for the currently included post types."
|
136 |
msgstr "Aucun taxonomie disponible pour les types d'articles actuellement inclus."
|
137 |
|
138 |
-
#: ../includes/admin.php:
|
139 |
-
msgid "It is generally not recommended to include taxonomy pages, unless their content brings added value. For example, when you use category descriptions with information that is not present elsewhere on your site or if taxonomy pages list posts with an excerpt that is different from, but complementary to the post content. In these cases you might consider including certain taxonomies. Otherwise, you might even consider disallowing indexation by adding specific robots.txt rules below."
|
140 |
-
msgstr "Généralement, il est déconseillé à inclure les pages des taxonomies, sauf si ils représentent une valeur ajoutée. Par exemple, lorsque on utilise des descriptions des catégories que donnent des informations pas présents ailleurs sur le site. Sinon, vous pourriez même envisager interdire l'indexation
|
141 |
|
142 |
-
#: ../includes/admin.php:
|
143 |
msgid "Google"
|
144 |
-
msgstr ""
|
145 |
|
146 |
-
#: ../includes/admin.php:
|
147 |
msgid "Bing"
|
148 |
-
msgstr ""
|
149 |
|
150 |
-
#: ../includes/admin.php:
|
151 |
-
#: ../includes/admin.php:
|
152 |
msgid "Ping on Publish"
|
153 |
msgstr "Ping en Publiant"
|
154 |
|
155 |
-
#: ../includes/admin.php:
|
156 |
#, php-format
|
157 |
msgid "Successfully pinged for %1$s on %2$s GMT."
|
158 |
msgstr "Pingé avec succès pour %1$s le %2$s GMT."
|
159 |
|
160 |
-
#: ../includes/admin.php:
|
161 |
#, php-format
|
162 |
msgid "Rules to append to the %s generated by WordPress."
|
163 |
msgstr "Règles à ajouter au %s produit par WordPress."
|
164 |
|
165 |
-
#: ../includes/admin.php:
|
166 |
msgid "Only add rules here when you know what you are doing, otherwise you might break search engine access to your site."
|
167 |
msgstr "Ajoutez des règles ici seulement si vous saviez le faire, vous risquez bloquer l'accès aux moteurs de recherche."
|
168 |
|
169 |
-
#: ../includes/admin.php:
|
170 |
msgid "These rules will not have effect when you are using a static robots.txt file."
|
171 |
msgstr "Ces règles ne seront pas effectué si vous utilisez un fichier robots.txt statique."
|
172 |
|
173 |
-
#: ../includes/admin.php:
|
174 |
msgid "Clear all XML Sitemap Feed options from the database and start fresh with the default settings."
|
175 |
msgstr "Supprimez tous les options Flux XML Sitemap et redémarrez avec les valeurs par défaut."
|
176 |
|
177 |
-
#: ../includes/admin.php:
|
178 |
#, php-format
|
179 |
msgid "Disabling and reenabling the %s plugin will have the same effect."
|
180 |
msgstr "La désactivation et la réactivation de l'extension % s auront le même effet."
|
181 |
|
182 |
-
#: ../includes/admin.php:
|
183 |
msgid "XML Sitemap"
|
184 |
msgstr "XML Sitemap"
|
185 |
|
186 |
-
#: ../includes/admin.php:
|
|
|
|
|
|
|
|
|
187 |
#, php-format
|
188 |
msgid "Leave empty for automatic Priority as configured on %1$s > %2$s."
|
189 |
msgstr "Laissez vide pour la Priorité automatique comme configuré dans %1$s > %2$s."
|
190 |
|
191 |
-
#: ../includes/admin.php:
|
192 |
msgid "Reading"
|
193 |
msgstr ""
|
194 |
|
195 |
-
#: ../includes/admin.php:
|
196 |
-
msgid "Enable XML sitemaps"
|
197 |
-
msgstr "Activez XML Sitemaps"
|
198 |
-
|
199 |
-
#: ../includes/admin.php:381
|
200 |
msgid "Additional robots.txt rules"
|
201 |
msgstr "Règles robots.txt additionelles"
|
202 |
|
203 |
-
#: ../includes/admin.php:
|
204 |
msgid "Reset XML sitemaps"
|
205 |
msgstr "Remise à nouveau"
|
206 |
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
#~ msgid "Note:"
|
208 |
#~ msgstr "Attention :"
|
209 |
|
210 |
#~ msgid "year"
|
211 |
#~ msgstr "an"
|
212 |
|
213 |
-
#~ msgid "month"
|
214 |
-
#~ msgstr "mois"
|
215 |
-
|
216 |
#~ msgid "Divide by"
|
217 |
#~ msgstr "Trier par"
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: XML Sitemap and Google News feeds/4.0\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2013-04-29 19:59+0100\n"
|
6 |
+
"PO-Revision-Date: 2013-04-29 21:03+0100\n"
|
7 |
"Last-Translator: RavanH <ravanhagen@gmail.com>\n"
|
8 |
"Language-Team: \n"
|
9 |
"Language: \n"
|
21 |
msgstr "Faites un don pour aider le développement et support de l'extension %s. Merci !"
|
22 |
|
23 |
#: ../includes/admin.php:15
|
24 |
+
#: ../includes/admin.php:269
|
25 |
msgid "XML Sitemap & Google News Feeds"
|
26 |
msgstr "Flux XML Sitemap & Google News"
|
27 |
|
32 |
|
33 |
#: ../includes/admin.php:16
|
34 |
#, php-format
|
35 |
+
msgid "XML Sitemaps will be disabled automatically when you check the option %1$s at %2$s above."
|
36 |
+
msgstr "Les XML Sitemaps seront désactivés automatiquement si l'option %1$s sous %2$s en haut est activée."
|
37 |
|
38 |
#: ../includes/admin.php:16
|
39 |
+
msgid "Discourage search engines from indexing this site"
|
40 |
msgstr ""
|
41 |
|
42 |
#: ../includes/admin.php:16
|
43 |
+
msgid "Search Engine Visibility"
|
44 |
msgstr ""
|
45 |
|
46 |
#: ../includes/admin.php:16
|
47 |
#, php-format
|
48 |
+
msgid "XML Sitemaps are disabled because you have checked the option %1$s at %2$s above."
|
49 |
+
msgstr "Les XML Sitemaps sont désactivés parce-que l'option %1$s sous %2$s en haut est activée."
|
50 |
|
51 |
#: ../includes/admin.php:40
|
52 |
+
#: ../includes/admin.php:410
|
53 |
msgid "XML Sitemaps"
|
54 |
msgstr "XML Sitemaps"
|
55 |
|
58 |
msgstr "XML Sitemaps normaux"
|
59 |
|
60 |
#: ../includes/admin.php:43
|
61 |
+
#: ../includes/admin.php:48
|
62 |
msgid "View"
|
63 |
msgstr ""
|
64 |
|
65 |
+
#: ../includes/admin.php:46
|
66 |
+
#: ../includes/admin.php:173
|
67 |
msgid "Google News Sitemap"
|
68 |
msgstr "Google News Sitemap"
|
69 |
|
70 |
+
#: ../includes/admin.php:58
|
71 |
+
#: ../includes/admin.php:419
|
72 |
msgid "Include post types"
|
73 |
msgstr "Types d'articles à inclure"
|
74 |
|
75 |
+
#: ../includes/admin.php:82
|
76 |
+
#: ../includes/admin.php:327
|
77 |
+
#: ../includes/admin.php:369
|
78 |
msgid "Settings"
|
79 |
msgstr ""
|
80 |
|
81 |
+
#: ../includes/admin.php:97
|
82 |
+
msgid "Year"
|
83 |
+
msgstr "Année"
|
84 |
|
85 |
+
#: ../includes/admin.php:98
|
86 |
+
msgid "Month"
|
87 |
+
msgstr "Mois"
|
88 |
|
89 |
+
#: ../includes/admin.php:102
|
90 |
msgid "Split by"
|
91 |
msgstr "Trier par"
|
92 |
|
93 |
+
#: ../includes/admin.php:105
|
94 |
+
#: ../includes/admin.php:140
|
95 |
+
msgid "None"
|
96 |
+
msgstr ""
|
97 |
+
|
98 |
+
#: ../includes/admin.php:112
|
99 |
+
msgid "Split by year if you experience errors or slow sitemaps. In very rare cases, split by month is needed."
|
100 |
+
msgstr "Trie par an si tu vois des erreurs ou des sitemaps très lentes. Aux très rares cas, un trie par mois est nécessaire."
|
101 |
|
102 |
+
#: ../includes/admin.php:117
|
103 |
+
#: ../includes/admin.php:365
|
104 |
msgid "Priority"
|
105 |
msgstr "Priorité"
|
106 |
|
107 |
+
#: ../includes/admin.php:119
|
108 |
+
msgid "Priority can be overridden on individual posts. *"
|
109 |
+
msgstr "La Priorité peut être remplacée par article. *"
|
|
|
|
|
|
|
|
|
110 |
|
111 |
+
#: ../includes/admin.php:124
|
112 |
msgid "Automatically adjusts Priority according to relative age and comment count."
|
113 |
msgstr "Ajuste la Priorité automatiquement selon l'âge relatif et le nombre des commentaires."
|
114 |
|
115 |
+
#: ../includes/admin.php:124
|
116 |
msgid "Sticky posts will not be subject to reduction by age. Individual posts with fixed Priority will always keep that value."
|
117 |
msgstr "Articles mise en avant ne seront pas soumis à la réduction selon l'âge. Articles avec Priorité fixe garderont cette valeur."
|
118 |
|
119 |
+
#: ../includes/admin.php:129
|
120 |
msgid "Update Lastmod and Changefreq on comments."
|
121 |
msgstr "Mise à jour de Lastmod et Changefreq à la soumission des commentaires."
|
122 |
|
123 |
+
#: ../includes/admin.php:129
|
124 |
msgid "Set this if discussion on your site warrants reindexation upon each new comment."
|
125 |
msgstr "Configurez ceci si la discussion sur votre site nécessite la ré-indexation après chaque nouveau commentaire."
|
126 |
|
127 |
+
#: ../includes/admin.php:133
|
128 |
+
msgid "Include:"
|
129 |
+
msgstr "Inclure :"
|
130 |
+
|
131 |
+
#: ../includes/admin.php:138
|
132 |
+
msgid "Image tags for"
|
133 |
+
msgstr "Balises d'image pour"
|
134 |
+
|
135 |
+
#: ../includes/admin.php:143
|
136 |
+
msgid "Featured Image"
|
137 |
+
msgstr ""
|
138 |
+
|
139 |
+
#: ../includes/admin.php:146
|
140 |
+
msgid "Attached images"
|
141 |
+
msgstr "Images attachées"
|
142 |
+
|
143 |
+
#: ../includes/admin.php:154
|
144 |
+
msgid "Google News tags"
|
145 |
+
msgstr "Balises Google News"
|
146 |
+
|
147 |
+
#: ../includes/admin.php:154
|
148 |
+
msgid "Only set when your site has been or will soon be accepted by Google News. **"
|
149 |
+
msgstr "Seulement si ton site est (ou sera bientôt) accepté par Google News. **"
|
150 |
|
151 |
+
#: ../includes/admin.php:171
|
152 |
+
msgid "* Priority settings do not affect ranking in search results in any way. They are only meant to suggest search engines which URLs to index first. Once a URL has been indexed, its Priority becomes meaningless until its Lastmod is updated."
|
153 |
+
msgstr "* Les paramètres de Priorité n'affectent pas le classement dans les résultats de recherche. Ils ont pour seul but de proposer des moteurs de recherche les URL à premier indice. Une fois qu'un URL a été indexé, sa priorité devient vide de sens jusqu'à le moment son Lastmod est mis à jour."
|
154 |
+
|
155 |
+
#: ../includes/admin.php:171
|
156 |
+
msgid "Maximum Priority (1.0) is reserved for the front page, individual posts and, when allowed, posts with high comment count."
|
157 |
+
msgstr "La Priorité maximum (1.0) est réservé à la page d'accueil, articles individuels et, si permis, articles avec beaucoup des commentaires."
|
158 |
+
|
159 |
+
#: ../includes/admin.php:173
|
160 |
+
#, php-format
|
161 |
+
msgid "** Google recommends using a seperate news sitemap. You can do this by checking the option %1$s at %2$s above."
|
162 |
+
msgstr "** Google recommande un sitemap dédié News. Utilise l'option %1$s sous %2$s en haut pour cela."
|
163 |
+
|
164 |
+
#: ../includes/admin.php:173
|
165 |
+
#: ../includes/admin.php:413
|
166 |
+
msgid "Enable XML sitemaps"
|
167 |
+
msgstr "Activez XML Sitemaps"
|
168 |
+
|
169 |
+
#: ../includes/admin.php:183
|
170 |
+
#: ../includes/admin.php:422
|
171 |
msgid "Include taxonomies"
|
172 |
msgstr "Taxonomies à inclure"
|
173 |
|
174 |
+
#: ../includes/admin.php:213
|
175 |
msgid "No taxonomies available for the currently included post types."
|
176 |
msgstr "Aucun taxonomie disponible pour les types d'articles actuellement inclus."
|
177 |
|
178 |
+
#: ../includes/admin.php:216
|
179 |
+
msgid "It is generally not recommended to include taxonomy pages, unless their content brings added value. For example, when you use category descriptions with information that is not present elsewhere on your site or if taxonomy pages list posts with an excerpt that is different from, but complementary to the post content. In these cases you might consider including certain taxonomies. Otherwise, you might even consider disallowing indexation to prevent a possible duplicate content penalty. You can do this by adding specific robots.txt rules below."
|
180 |
+
msgstr "Généralement, il est déconseillé à inclure les pages des taxonomies, sauf si ils représentent une valeur ajoutée. Par exemple, lorsque on utilise des descriptions des catégories que donnent des informations pas présents ailleurs sur le site. Sinon, vous pourriez même envisager interdire l'indexation pour éviter punition 'duplicate content' . Ajoute des règles spécifiques robots.txt ci-dessous pour cela."
|
181 |
|
182 |
+
#: ../includes/admin.php:226
|
183 |
msgid "Google"
|
184 |
+
msgstr "Google"
|
185 |
|
186 |
+
#: ../includes/admin.php:227
|
187 |
msgid "Bing"
|
188 |
+
msgstr "Bing"
|
189 |
|
190 |
+
#: ../includes/admin.php:231
|
191 |
+
#: ../includes/admin.php:425
|
192 |
msgid "Ping on Publish"
|
193 |
msgstr "Ping en Publiant"
|
194 |
|
195 |
+
#: ../includes/admin.php:250
|
196 |
#, php-format
|
197 |
msgid "Successfully pinged for %1$s on %2$s GMT."
|
198 |
msgstr "Pingé avec succès pour %1$s le %2$s GMT."
|
199 |
|
200 |
+
#: ../includes/admin.php:259
|
201 |
#, php-format
|
202 |
msgid "Rules to append to the %s generated by WordPress."
|
203 |
msgstr "Règles à ajouter au %s produit par WordPress."
|
204 |
|
205 |
+
#: ../includes/admin.php:260
|
206 |
msgid "Only add rules here when you know what you are doing, otherwise you might break search engine access to your site."
|
207 |
msgstr "Ajoutez des règles ici seulement si vous saviez le faire, vous risquez bloquer l'accès aux moteurs de recherche."
|
208 |
|
209 |
+
#: ../includes/admin.php:260
|
210 |
msgid "These rules will not have effect when you are using a static robots.txt file."
|
211 |
msgstr "Ces règles ne seront pas effectué si vous utilisez un fichier robots.txt statique."
|
212 |
|
213 |
+
#: ../includes/admin.php:267
|
214 |
msgid "Clear all XML Sitemap Feed options from the database and start fresh with the default settings."
|
215 |
msgstr "Supprimez tous les options Flux XML Sitemap et redémarrez avec les valeurs par défaut."
|
216 |
|
217 |
+
#: ../includes/admin.php:269
|
218 |
#, php-format
|
219 |
msgid "Disabling and reenabling the %s plugin will have the same effect."
|
220 |
msgstr "La désactivation et la réactivation de l'extension % s auront le même effet."
|
221 |
|
222 |
+
#: ../includes/admin.php:344
|
223 |
msgid "XML Sitemap"
|
224 |
msgstr "XML Sitemap"
|
225 |
|
226 |
+
#: ../includes/admin.php:361
|
227 |
+
msgid "Exclude from XML Sitemap"
|
228 |
+
msgstr "Exclure de l'XML Sitemap"
|
229 |
+
|
230 |
+
#: ../includes/admin.php:369
|
231 |
#, php-format
|
232 |
msgid "Leave empty for automatic Priority as configured on %1$s > %2$s."
|
233 |
msgstr "Laissez vide pour la Priorité automatique comme configuré dans %1$s > %2$s."
|
234 |
|
235 |
+
#: ../includes/admin.php:369
|
236 |
msgid "Reading"
|
237 |
msgstr ""
|
238 |
|
239 |
+
#: ../includes/admin.php:431
|
|
|
|
|
|
|
|
|
240 |
msgid "Additional robots.txt rules"
|
241 |
msgstr "Règles robots.txt additionelles"
|
242 |
|
243 |
+
#: ../includes/admin.php:434
|
244 |
msgid "Reset XML sitemaps"
|
245 |
msgstr "Remise à nouveau"
|
246 |
|
247 |
+
#~ msgid "year of publication"
|
248 |
+
#~ msgstr "année de la publication"
|
249 |
+
|
250 |
+
#~ msgid "month of publication"
|
251 |
+
#~ msgstr "mois de la publication"
|
252 |
+
|
253 |
#~ msgid "Note:"
|
254 |
#~ msgstr "Attention :"
|
255 |
|
256 |
#~ msgid "year"
|
257 |
#~ msgstr "an"
|
258 |
|
|
|
|
|
|
|
259 |
#~ msgid "Divide by"
|
260 |
#~ msgstr "Trier par"
|
languages/xml-sitemap-feed-id_ID.mo
ADDED
Binary file
|
languages/xml-sitemap-feed-id_ID.po
ADDED
@@ -0,0 +1,304 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: XML Sitemap and Google News feeds/4.0\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2013-04-29 19:59+0100\n"
|
6 |
+
"PO-Revision-Date: 2013-07-21 01:07+0800\n"
|
7 |
+
"Last-Translator: RavanH <ravanhagen@gmail.com>\n"
|
8 |
+
"Language-Team: <nasrulhaq81@gmail.com>\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Poedit-KeywordsList: __;_e;_n\n"
|
13 |
+
"X-Poedit-Basepath: .\n"
|
14 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
15 |
+
"X-Generator: Poedit 1.5.7\n"
|
16 |
+
"Language: id_ID\n"
|
17 |
+
"X-Poedit-SearchPath-0: ..\n"
|
18 |
+
|
19 |
+
#: ../includes/admin.php:15
|
20 |
+
#, php-format
|
21 |
+
msgid "Donate to keep the free %s plugin development & support going!"
|
22 |
+
msgstr ""
|
23 |
+
"Donasi untuk menjaga pengembangan & dukungan plugin gratis %s berlangsung "
|
24 |
+
|
25 |
+
#: ../includes/admin.php:15 ../includes/admin.php:269
|
26 |
+
msgid "XML Sitemap & Google News Feeds"
|
27 |
+
msgstr "XML Sitemap & Google News Feeds"
|
28 |
+
|
29 |
+
#: ../includes/admin.php:15
|
30 |
+
#, php-format
|
31 |
+
msgid "These settings control the XML Sitemaps generated by the %s plugin."
|
32 |
+
msgstr ""
|
33 |
+
"Pengaturan ini mengontrol untuk menghasilkan XML Sitemaps oleh plugin %s"
|
34 |
+
|
35 |
+
#: ../includes/admin.php:16
|
36 |
+
#, php-format
|
37 |
+
msgid ""
|
38 |
+
"XML Sitemaps will be disabled automatically when you check the option %1$s "
|
39 |
+
"at %2$s above."
|
40 |
+
msgstr ""
|
41 |
+
"XML Sitemap akan dimatikan otomatis ketika anda mencentang pilihan %1$s di "
|
42 |
+
"%2$s atas"
|
43 |
+
|
44 |
+
#: ../includes/admin.php:16
|
45 |
+
msgid "Discourage search engines from indexing this site"
|
46 |
+
msgstr "Halangi mesin pencari mengindex situs ini"
|
47 |
+
|
48 |
+
#: ../includes/admin.php:16
|
49 |
+
msgid "Search Engine Visibility"
|
50 |
+
msgstr "Kenampakan mesin pencari"
|
51 |
+
|
52 |
+
#: ../includes/admin.php:16
|
53 |
+
#, php-format
|
54 |
+
msgid ""
|
55 |
+
"XML Sitemaps are disabled because you have checked the option %1$s at %2$s "
|
56 |
+
"above."
|
57 |
+
msgstr ""
|
58 |
+
"XML Sitemap dimatikan karena anda mencentang pilihan %1$s pada %2$s diatas."
|
59 |
+
|
60 |
+
#: ../includes/admin.php:40 ../includes/admin.php:410
|
61 |
+
msgid "XML Sitemaps"
|
62 |
+
msgstr "XML Sitemaps"
|
63 |
+
|
64 |
+
#: ../includes/admin.php:41
|
65 |
+
msgid "Regular XML Sitemaps"
|
66 |
+
msgstr "XML Sitemap Reguler"
|
67 |
+
|
68 |
+
#: ../includes/admin.php:43 ../includes/admin.php:48
|
69 |
+
msgid "View"
|
70 |
+
msgstr "Lihat"
|
71 |
+
|
72 |
+
#: ../includes/admin.php:46 ../includes/admin.php:173
|
73 |
+
msgid "Google News Sitemap"
|
74 |
+
msgstr "Google News Sitemap"
|
75 |
+
|
76 |
+
#: ../includes/admin.php:58 ../includes/admin.php:419
|
77 |
+
msgid "Include post types"
|
78 |
+
msgstr "Termasuk tipe post"
|
79 |
+
|
80 |
+
#: ../includes/admin.php:82 ../includes/admin.php:327
|
81 |
+
#: ../includes/admin.php:369
|
82 |
+
msgid "Settings"
|
83 |
+
msgstr "Pengaturan"
|
84 |
+
|
85 |
+
#: ../includes/admin.php:97
|
86 |
+
msgid "Year"
|
87 |
+
msgstr "Tahun"
|
88 |
+
|
89 |
+
#: ../includes/admin.php:98
|
90 |
+
msgid "Month"
|
91 |
+
msgstr "Bulan"
|
92 |
+
|
93 |
+
#: ../includes/admin.php:102
|
94 |
+
msgid "Split by"
|
95 |
+
msgstr "Dipilah oleh"
|
96 |
+
|
97 |
+
#: ../includes/admin.php:105 ../includes/admin.php:140
|
98 |
+
msgid "None"
|
99 |
+
msgstr "Tidak ada"
|
100 |
+
|
101 |
+
#: ../includes/admin.php:112
|
102 |
+
msgid ""
|
103 |
+
"Split by year if you experience errors or slow sitemaps. In very rare cases, "
|
104 |
+
"split by month is needed."
|
105 |
+
msgstr ""
|
106 |
+
"Pilah berdasarkan tahun jika sitemap mengalami kesalahan atau lambat. Kasus "
|
107 |
+
"yang jarang terjadi, pilah berdasarkan bulan dibutuhkan."
|
108 |
+
|
109 |
+
#: ../includes/admin.php:117 ../includes/admin.php:365
|
110 |
+
msgid "Priority"
|
111 |
+
msgstr "Prioritas"
|
112 |
+
|
113 |
+
#: ../includes/admin.php:119
|
114 |
+
msgid "Priority can be overridden on individual posts. *"
|
115 |
+
msgstr "Prioritas dapat ditimpa pada tiap post"
|
116 |
+
|
117 |
+
#: ../includes/admin.php:124
|
118 |
+
msgid ""
|
119 |
+
"Automatically adjusts Priority according to relative age and comment count."
|
120 |
+
msgstr ""
|
121 |
+
"Otomatis menyesuaikan Prioritas mengikuti usia post dan jumlah komentar"
|
122 |
+
|
123 |
+
#: ../includes/admin.php:124
|
124 |
+
msgid ""
|
125 |
+
"Sticky posts will not be subject to reduction by age. Individual posts with "
|
126 |
+
"fixed Priority will always keep that value."
|
127 |
+
msgstr ""
|
128 |
+
"Post terbaru tidak menjadi subyek mereduksi umur post, Tiap post dengan "
|
129 |
+
"Prioritas yang jelas akan selalu menjadi nilai."
|
130 |
+
|
131 |
+
#: ../includes/admin.php:129
|
132 |
+
msgid "Update Lastmod and Changefreq on comments."
|
133 |
+
msgstr "Perbarui Lastmod dan Changefreq di komentar."
|
134 |
+
|
135 |
+
#: ../includes/admin.php:129
|
136 |
+
msgid ""
|
137 |
+
"Set this if discussion on your site warrants reindexation upon each new "
|
138 |
+
"comment."
|
139 |
+
msgstr ""
|
140 |
+
"Atur ini jika diskusi di situs anda mengingatkan index ulang atas setiap "
|
141 |
+
"komentar baru."
|
142 |
+
|
143 |
+
#: ../includes/admin.php:133
|
144 |
+
msgid "Include:"
|
145 |
+
msgstr "Termasuk:"
|
146 |
+
|
147 |
+
#: ../includes/admin.php:138
|
148 |
+
msgid "Image tags for"
|
149 |
+
msgstr "Tag gambar untuk"
|
150 |
+
|
151 |
+
#: ../includes/admin.php:143
|
152 |
+
msgid "Featured Image"
|
153 |
+
msgstr "Fitur Gambar"
|
154 |
+
|
155 |
+
#: ../includes/admin.php:146
|
156 |
+
msgid "Attached images"
|
157 |
+
msgstr "Gambar terlampir"
|
158 |
+
|
159 |
+
#: ../includes/admin.php:154
|
160 |
+
msgid "Google News tags"
|
161 |
+
msgstr "Tag Google News"
|
162 |
+
|
163 |
+
#: ../includes/admin.php:154
|
164 |
+
msgid ""
|
165 |
+
"Only set when your site has been or will soon be accepted by Google News. **"
|
166 |
+
msgstr ""
|
167 |
+
"Atur ini hanya jika situs anda telah diterima atau akan diteriima oleh "
|
168 |
+
"Google News. **"
|
169 |
+
|
170 |
+
#: ../includes/admin.php:171
|
171 |
+
msgid ""
|
172 |
+
"* Priority settings do not affect ranking in search results in any way. They "
|
173 |
+
"are only meant to suggest search engines which URLs to index first. Once a "
|
174 |
+
"URL has been indexed, its Priority becomes meaningless until its Lastmod is "
|
175 |
+
"updated."
|
176 |
+
msgstr ""
|
177 |
+
"* Pengaturan Prioritas tidak berefek pada peringkat hasil pencarian. "
|
178 |
+
"Prioritas dimaksudkan hanya menyarankan mesin pencari dengan URL agar "
|
179 |
+
"diindex terlebih dahulu. ketika URL terindex, Prioritas tidak bermakna "
|
180 |
+
"hingga Lastmod diperbaharui"
|
181 |
+
|
182 |
+
#: ../includes/admin.php:171
|
183 |
+
msgid ""
|
184 |
+
"Maximum Priority (1.0) is reserved for the front page, individual posts and, "
|
185 |
+
"when allowed, posts with high comment count."
|
186 |
+
msgstr ""
|
187 |
+
"Prioritas Maksimum (1.0) tersedia dihalaman depan, tiap posting, dan jika "
|
188 |
+
"diijinkan, posting dengan komentar tinggi terhitung."
|
189 |
+
|
190 |
+
#: ../includes/admin.php:173
|
191 |
+
#, php-format
|
192 |
+
msgid ""
|
193 |
+
"** Google recommends using a seperate news sitemap. You can do this by "
|
194 |
+
"checking the option %1$s at %2$s above."
|
195 |
+
msgstr ""
|
196 |
+
"** Google merekomendasikan memakai sitemap terpisah. Anda dapat melakukannya "
|
197 |
+
"dengan mencentang pilihan %1$s pada %2$s diatas."
|
198 |
+
|
199 |
+
#: ../includes/admin.php:173 ../includes/admin.php:413
|
200 |
+
msgid "Enable XML sitemaps"
|
201 |
+
msgstr "Aktifkan XML sitemap"
|
202 |
+
|
203 |