您的位置 首页 php

WordPress定时生成Sitemap XML地图(非插件)

只用WordPress定时任务去生成sitemap.xml,这样比网上很多方法是在保存、发布文章时生成xml好一些,不会造成处理文章卡的现象。在WordPress主题文件 functions.php 中或者使用Code Snippets插件添加自定义代码:

 // 判断定时计划是否存在if ( ! wp_next_scheduled( 'sitemap_xml' ) ) {  wp_schedule_event( time(), 'twicedaily', 'sitemap_xml' ); // 每天两次}add_action( 'sitemap_xml', 'sitemap_xml_func' ); // 定时计划执行函数function sitemap_xml_func() {  // 获取文章数量  $count_posts = wp_count_posts();  if ( $count_posts ) {    $published_posts = $count_posts->publish;    $sitemap_num = $published_posts / 3000; // 每个xml文件最多包含3000篇文章    $sitemap_num = ceil($sitemap_num);     // 创建xml文件    for ($i = 1; $i <= $sitemap_num; $i++) {      $postsForSitemap = get_posts(array(        'numberposts' => 3000,        'orderby' => 'modified',        'post_type'  => array('post'),        'order'    => 'DESC',        'offset' => 3000 * ($i - 1)      ));      $sitemap = '<?xml version="1.0" encoding="UTF-8"?>';      $sitemap .= '<urlset xmlns="#34;>';      foreach($postsForSitemap as $post) {        setup_postdata($post);        $post_url = get_permalink($post->ID);        $post_date = get_the_modified_date( 'c',$post->ID );         $sitemap .= '<url>'.              '<loc>'. $post_url .'</loc>'.            '<lastmod>'.  $post_date .'</lastmod>'.              // '<lastmod>'. $postdate[0] .'</lastmod>'.          // '<changefreq>monthly</changefreq>'.          '</url>';      }      $sitemap .= '</urlset>';      $fp = fopen(ABSPATH . "sitemap-".$i.".xml", 'w');      fwrite($fp, $sitemap);      fclose($fp);    }     // 创建sitemap.xml文件    $sitemap_all = '<?xml version="1.0" encoding="UTF-8"?>';    $sitemap_all .= '<sitemapindex xmlns="#34;>';    for ($i = 1; $i <= $sitemap_num; $i++) {      $sitemap_all .= '<sitemap>'.            '<loc>'. get_bloginfo('url') .'/sitemap-'.$i.'.xml</loc>'.            '<lastmod>'. date('c') .'</lastmod>'.          '</sitemap>';    }    $sitemap_all .= '</sitemapindex>';    $fp = fopen(ABSPATH . "sitemap.xml", 'w');    fwrite($fp, $sitemap_all);    fclose($fp);  }}  

文章来源:智云一二三科技

文章标题:WordPress定时生成Sitemap XML地图(非插件)

文章地址:https://www.zhihuclub.com/37221.shtml

关于作者: 智云科技

热门文章

网站地图