zoukankan      html  css  js  c++  java
  • WordPress免插件生成完整站点地图(sitemap.xml)的php代码

    让这个代码更加完善,可以同时生成首页、文章、单页面、分类和标签的 sitemap!

    php 代码

    <?php
    require(‘./wp-blog-header.php‘);
    header("Content-type: text/xml");
    header(‘HTTP/1.1 200 OK‘);
    $posts_to_show = 1000; 
    echo ‘<?xml version="1.0" encoding="UTF-8"?>‘;
    echo ‘<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‘); ?> Diy By 张戈博客(http://zhangge.net)-->
      <url>
          <loc><?php echo get_home_url(); ?></loc>
          <lastmod><?php $ltime = get_lastpostmodified(GMT);$ltime = gmdate(‘Y-m-dTH:i:s+00:00‘, strtotime($ltime)); echo $ltime; ?></lastmod>
          <changefreq>daily</changefreq>
          <priority>1.0</priority>
      </url>
    <?php
    /* 文章页面 */ 
    $myposts = get_posts( "numberposts=" . $posts_to_show );
    foreach( $myposts as $post ) { ?>
      <url>
          <loc><?php the_permalink(); ?></loc>
          <lastmod><?php the_time(‘c‘) ?></lastmod>
          <changefreq>monthly</changefreq>
          <priority>0.6</priority>
      </url>
    <?php } /* 文章循环结束 */ ?>  
    <?php
    /* 单页面 */ 
    $mypages = get_pages();
    if(count($mypages) > 0) {
        foreach($mypages 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 }} /* 单页面循环结束 */ ?> 
    <?php
    /* 博客分类 */ 
    $terms = get_terms(‘category‘, ‘orderby=name&hide_empty=0‘ );
    $count = count($terms);
    if($count > 0){
    foreach ($terms as $term) { ?>
        <url>
          <loc><?php echo get_term_link($term, $term->slug); ?></loc>
          <changefreq>weekly</changefreq>
          <priority>0.8</priority>
      </url>
    <?php }} /* 分类循环结束 */?> 
    <?php
     /* 标签(可选) */
    $tags = get_terms("post_tag");
    foreach ( $tags as $key => $tag ) {
        $link = get_term_link( intval($tag->term_id), "post_tag" );
             if ( is_wp_error( $link ) )
              return false;
              $tags[ $key ]->link = $link;
    ?>
     <url>
          <loc><?php echo $link ?></loc>
          <changefreq>monthly</changefreq>
          <priority>0.4</priority>
      </url>
    <?php  } /* 标签循环结束 */ ?> 
    </urlset>

    广州vi设计公司http://www.maiqicn.com 办公资源网站大全 https://www.wode007.com

    纯静态

    Linux 定时任务+wget 定时生成 sitemap.xml

    具体实现:将 sitemap.php 放到某个不为人知的目录,然后定时使用 wget 去请求这个文件,并将数据保存为 sitemap.xml 存放到网站根目录就可以了!比如:

    如果是启用了 https 的站点,需要加入 --no-check-certificate  的选项

    #每天在网站根目录生成一个sitemap.xml diypath为sitemap.php的实际位置(针对https网站)
    0 1 * * * wget -O /home/wwwroot/zhangge.net/sitemap.xml --no-check-certificate https://zhangge.net/diypath/sitemap.php  >/dev/null 2>&1

     

     
  • 相关阅读:
    383. Ransom Note
    598. Range Addition II
    453. Minimum Moves to Equal Array Elements
    492. Construct the Rectangle
    171. Excel Sheet Column Number
    697. Degree of an Array
    665. Nondecreasing Array
    视频网站使用H265编码能提高视频清晰度吗?
    现阶段的语音视频通话SDK需要解决哪些问题?
    企业远程高清会议平台视频会议系统在手机端使用的必备要求有哪些?
  • 原文地址:https://www.cnblogs.com/ypppt/p/13677602.html
Copyright © 2011-2022 走看看