#DUX# WordPress 更新文章时生成站点地图xml 自动更新 代码版 (sitemap.xml)

Mr.M
Mr.M
Mr.M
504
文章
19
评论
2019年5月11日20:36:16 2 5,066 3085字阅读10分17秒

简介

演示地址:本站:https://cvps.top/sitemap.xml

演示截图:

#DUX#  WordPress 更新文章时生成站点地图xml 自动更新 代码版 (sitemap.xml)

方法

以下方法适合DUX主题。其他主题自行修改相对位置位置,谢谢。

  • 在主题目录中options.php 添加开关。(至于放哪个位置,看你喜欢!)
	$options[] = array(
		'name' => __('更新文章时生成站点地图xml', 'haoui'),
		'desc' => __('开启', 'haoui'),
		'id' => 'sitemap_xml',
		'std' => true,
		'type' => 'checkbox');
  • 在主题目录 functions.php 添加:
// sitemap_xml
if (_hui('sitemap_xml')) {  
    function cvps_sitemap_refresh() {
        require_once get_template_directory() . '/modules/sitemap-xml.php';
        $sitemap_xml = cvps_get_xml_sitemap();
        file_put_contents(ABSPATH.'sitemap.xml', $sitemap_xml);
    }
    if ( defined('ABSPATH') ) {
        add_action('publish_post', 'cvps_sitemap_refresh');
        add_action('save_post', 'cvps_sitemap_refresh');
        add_action('edit_post', 'cvps_sitemap_refresh');
        add_action('delete_post', 'cvps_sitemap_refresh');
    }
}
  • 在主题目录中 modules 文件夹 新建 sitemap-xml.php 并添加以下代码:

由于代码过长,请点击 展开

<?php 
function cvps_get_xml_sitemap() {
	ob_start();
	echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/">
<!-- generated-on=<?php echo get_lastpostdate('blog'); ?> -->
<url>
<loc><?php echo get_home_url(); ?></loc>
<lastmod><?php echo gmdate('Y-m-d\TH:i:s+00:00', strtotime(get_lastpostmodified('GMT'))); ?></lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<?php 
	// 文章
	$posts = get_posts('numberposts=-1&orderby=post_date&order=DESC');
	foreach($posts as $post) : 
?>
<url>
<loc><?php echo get_permalink($post->ID); ?></loc>
<lastmod><?php echo str_replace(" ", "T", get_post($post->ID)->post_modified); ?>+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<?php 
	endforeach;
	// 页面
	$pages = get_pages('numberposts=-1&orderby=post_date&order=DESC');
	foreach($pages as $page) :
?>
<url>
<loc><?php echo get_page_link($page->ID); ?></loc>
<lastmod><?php echo str_replace(" ", "T", get_page($page->ID)->post_modified); ?>+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<?php 
	endforeach;
	// 分类
	$categorys = get_terms('category', 'orderby=name&hide_empty=0');
	foreach ($categorys as $category) : 
?>
<url>
<loc><?php echo get_term_link($category, $category->slug); ?></loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<?php 
	endforeach;
	// 标签
	$tags = get_terms('post_tag', 'orderby=name&hide_empty=0');
	foreach ($tags as $tag) : 
?>
<url>
<loc><?php echo get_term_link($tag, $tag->slug); ?></loc>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<?php 
	endforeach;
?>
</urlset>
<?php 
	$sitemap = ob_get_contents();
	ob_clean();
	return $sitemap;
}

送给懒癌患者:丢到 主题目录中 modules 文件夹

链接:https://pan.baidu.com/s/1Q8r3DX0D6Uu0kVhRWdxLpg

提取码:72ep

复制这段内容后打开百度网盘手机App,操作更方便哦

  • 如果您需要添加公告到sitemap中,请在</url>后  <?php  前加入以下代码:
<?php 
	endforeach;
	// 公告
	$posts = get_posts('post_type=bulletin&numberposts=-1&orderby=post_date&order=DESC');
	foreach($posts as $post) : 
?>
<?php if (_hui('no_bulletin')) { ?>
<url>
<loc><?php echo get_permalink($post->ID); ?></loc>
<lastmod><?php echo str_replace(" ", "T", get_post($post->ID)->post_modified); ?>+00:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>

DUX公告添加方法:https://cvps.top/9244.html  。

总结

此代码乃参考begin主题,然后删减得来,也就是现在本小站使用的主题集成的。

注意:请使用此方法后,到后台随意打开一个文章,然后进行编辑 =>更新 。这样就能更新sitemap.xml 了。

嘿嘿,标题就告诉您 更新文章时生成站点地图xml 了。

继续阅读
  • 支付宝红包
  • 扫一扫获得红包
  • weinxin
  • 支付宝打赏
  • 扫一扫支付宝打赏
  • weinxin
Mr.M
  • 本文由 发表于 2019年5月11日20:36:16
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
WordPress 如何查看分类/标签的ID ? WordPress

WordPress 如何查看分类/标签的ID ?

主题里很多地方都需要设置分类ID列表,对于wp小白来说,分类ID是什么呢?请看下图:   鼠标移动到编辑处,看到浏览器底部出现链接,其中的tag_ID=1中这个1就是分类的ID,标签同理。
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:2   其中:访客  2   博主  0
    • 文字咖 文字咖 2

      <meta name=”viewport” content=”width=device-width,initial-scale=1.0″> 代码居然评论不了。。。

      • 文字咖 文字咖 2

        代码很好,建议在 head 标签加一句 <meta name=”viewport” content=”width=device-width,initial-scale=1.0″> 设置一个视口值,可以是移动端缩放效果!