首页 > WordPress > 开发笔记 > 给BIT主题增加网站地图功能

给BIT主题增加网站地图功能

一个老不正经 2022/01/03 846围观

在这里是在有些惭愧,这个功能是拔的知更鸟,目前在搜索引擎站长上面提交的sitemap有两种,一种是xml格式,另一种txt格式;但是一点优化一直找不到自己喜欢的sitemap,因为用知更鸟的用久了,个人也比较喜欢知更鸟这边,自己写也可以,但是有现成的,在下就偷偷懒,咳咳咳!对了,这两个格式的代码只适用于BIT主题,喜欢的可以自己改改;下面是代码。


sitemap.xml格式地图

<?php
function wp_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=' .of_get_option('sitemap_n') . '&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;
$posts = get_posts('post_type=bulletin&numberposts=' .of_get_option('sitemap_n') . '&orderby=post_date&order=DESC');
foreach($posts as $post) :
?>
<?php if (of_get_option('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>
<?php } ?>
<?php
endforeach;
$posts = get_posts('post_type=picture&numberposts=' .of_get_option('sitemap_n') . '&orderby=post_date&order=DESC');
foreach($posts as $post) :
?>
<?php if (of_get_option('no_gallery')) { ?>
<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 } ?>
<?php
endforeach;
$posts = get_posts('post_type=video&numberposts=' .of_get_option('sitemap_n') . '&orderby=post_date&order=DESC');
foreach($posts as $post) :
?>
<?php if (of_get_option('no_videos')) { ?>
<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 } ?>
<?php
endforeach;
$posts = get_posts('post_type=tao&numberposts=' .of_get_option('sitemap_n') . '&orderby=post_date&order=DESC');
foreach($posts as $post) :
?>
<?php if (of_get_option('no_tao')) { ?>
<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 } ?>
<?php
endforeach;
$posts = get_posts('post_type=show&numberposts=' .of_get_option('sitemap_n') . '&orderby=post_date&order=DESC');
foreach($posts as $post) :
?>
<?php if (of_get_option('no_products')) { ?>
<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 } ?>
<?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) :
?>
<?php if (of_get_option('no_sitemap_tag')) { ?>
<url>
<loc><?php echo get_term_link($tag, $tag->slug); ?></loc>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<?php } ?>
<?php
endforeach;
$categorys = get_terms('notice', 'orderby=name&hide_empty=0');
foreach ($categorys as $category) :
?>
<?php if (of_get_option('no_bulletin')) { ?>
<url>
<loc><?php echo get_term_link($category, $category->slug); ?></loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<?php } ?>
<?php
endforeach;
$categorys = get_terms('gallery', 'orderby=name&hide_empty=0');
foreach ($categorys as $category) :
?>
<?php if (of_get_option('no_gallery')) { ?>
<url>
<loc><?php echo get_term_link($category, $category->slug); ?></loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<?php } ?>
<?php
endforeach;
$categorys = get_terms('videos', 'orderby=name&hide_empty=0');
foreach ($categorys as $category) :
?>
<?php if (of_get_option('no_videos')) { ?>
<url>
<loc><?php echo get_term_link($category, $category->slug); ?></loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<?php } ?>
<?php
endforeach;
$categorys = get_terms('taobao', 'orderby=name&hide_empty=0');
foreach ($categorys as $category) :
?>
<?php if (of_get_option('no_tao')) { ?>
<url>
<loc><?php echo get_term_link($category, $category->slug); ?></loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<?php } ?>
<?php
endforeach;
$categorys = get_terms('products', 'orderby=name&hide_empty=0');
foreach ($categorys as $category) :
?>
<?php if (of_get_option('no_products')) { ?>
<url>
<loc><?php echo get_term_link($category, $category->slug); ?></loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<?php } ?>
<?php
endforeach;
?>
</urlset>
<?php
$sitemap = ob_get_contents();
ob_clean();
return $sitemap;
}

 

sitemap.txt格式网站地图

<?php 
function wp_get_txt_sitemap() {
ob_start();
?>
<?php echo get_home_url(); ?>

<?php 
$posts = get_posts('numberposts=' .of_get_option('sitemap_n') . '&orderby=post_date&order=DESC');
foreach($posts as $post) : 
?>
<?php echo get_permalink($post->ID); ?>

<?php 
endforeach;
$posts = get_posts('post_type=bulletin&numberposts=' .of_get_option('sitemap_n') . '&orderby=post_date&order=DESC');
foreach($posts as $post) : 
?>
<?php if (of_get_option('no_bulletin')) { ?>
<?php echo get_permalink($post->ID); ?>
<?php } ?>

<?php 
endforeach;
$posts = get_posts('post_type=picture&numberposts=' .of_get_option('sitemap_n') . '&orderby=post_date&order=DESC');
foreach($posts as $post) : 
?>
<?php if (of_get_option('no_gallery')) { ?>
<?php echo get_permalink($post->ID); ?>
<?php } ?>

<?php 
endforeach;
$posts = get_posts('post_type=video&numberposts=' .of_get_option('sitemap_n') . '&orderby=post_date&order=DESC');
foreach($posts as $post) : 
?>
<?php if (of_get_option('no_videos')) { ?>
<?php echo get_permalink($post->ID); ?>
<?php } ?>

<?php 
endforeach;
$posts = get_posts('post_type=tao&numberposts=' .of_get_option('sitemap_n') . '&orderby=post_date&order=DESC');
foreach($posts as $post) : 
?>
<?php if (of_get_option('no_tao')) { ?>
<?php echo get_permalink($post->ID); ?>
<?php } ?>

<?php 
endforeach;
$posts = get_posts('post_type=show&numberposts=' .of_get_option('sitemap_n') . '&orderby=post_date&order=DESC');
foreach($posts as $post) : 
?>
<?php if (of_get_option('no_products')) { ?>
<?php echo get_permalink($post->ID); ?>
<?php } ?>

<?php 
endforeach;
$categorys = get_terms('category', 'orderby=name&hide_empty=0');
foreach ($categorys as $category) : 
?>
<?php echo get_term_link($category, $category->slug); ?>

<?php 
endforeach;
$tags = get_terms('post_tag', 'orderby=name&hide_empty=0');
foreach ($tags as $tag) : 
?>
<?php if (of_get_option('no_sitemap_tag')) { ?>
<?php echo get_term_link($tag, $tag->slug); ?>
<?php } ?>

<?php 
endforeach;
$categorys = get_terms('notice', 'orderby=name&hide_empty=0');
foreach ($categorys as $category) : 
?>
<?php if (of_get_option('no_bulletin')) { ?>
<?php echo get_term_link($category, $category->slug); ?>
<?php } ?>

<?php 
endforeach;
$categorys = get_terms('gallery', 'orderby=name&hide_empty=0');
foreach ($categorys as $category) : 
?>
<?php if (of_get_option('no_gallery')) { ?>
<?php echo get_term_link($category, $category->slug); ?>
<?php } ?>

<?php 
endforeach;
$categorys = get_terms('videos', 'orderby=name&hide_empty=0');
foreach ($categorys as $category) : 
?>
<?php if (of_get_option('no_videos')) { ?>
<?php echo get_term_link($category, $category->slug); ?>
<?php } ?>

<?php 
endforeach;
$categorys = get_terms('taobao', 'orderby=name&hide_empty=0');
foreach ($categorys as $category) : 
?>
<?php if (of_get_option('no_tao')) { ?>
<?php echo get_term_link($category, $category->slug); ?>
<?php } ?>

<?php 
endforeach;
$categorys = get_terms('products', 'orderby=name&hide_empty=0');
foreach ($categorys as $category) : 
?>
<?php if (of_get_option('no_products')) { ?>
<?php echo get_term_link($category, $category->slug); ?>
<?php } ?>

<?php 
endforeach;
?>
<?php 
$sitemap_txt = ob_get_contents();
ob_clean();
return $sitemap_txt;
}