wordpress纯代码实现自动生成sitemap地图文件(不需要伪静态)

少羽.
392
文章
72
评论
2020年1月31日19:07:21 评论 974 1485字阅读4分57秒

今天我来说说wordpress纯代码实现自动生成sitemap地图文件(不需要伪静态)

这个怎么做,其实很简单,这也是我在写 Nostalgia主题 时发现的方法.

新建一个文件名为 Sitemap.php 放在模板目录

<?php
/**
 * Theme Baidu Sitemap function file
 * ShaoYu 
 * @Copyright passerby sauce 
 */
ob_start();
if ( ! defined( 'ABSPATH' ) ) exit;
if( str_replace('-', '', get_option('gmt_offset') ) <10 ) {
    $tempo = '-0'.str_replace('-', '', get_option('gmt_offset'));
} else {
    $tempo = get_option('gmt_offset');
}
if( strlen($tempo) == 3 ) $tempo = $tempo.':00';
$postsForSitemap = get_posts(array(
    'numberposts' => -1,
    'orderby' => 'modified',
    'post_type'  => array('post','page','property','product'),
    'order'=> 'DESC'
));

$sitemap .= '<?xml version="1.0" encoding="utf-8"?>';
$sitemap .= "\n".'<urlset>'."\n";
$sitemap .= "\t".'<url>'."\n"."\t\t".'<loc>'. esc_url( home_url( '/' ) ) .'</loc>'."\n\t\t".'<lastmod>' . date( "Y-m-d\TH:i:s", current_time( 'timestamp', 0 ) ) . $tempo . '</lastmod>'."\n\t\t".'<changefreq>monthly</changefreq>'."\n\t\t".'<priority>1.0</priority>'."\n\t".'</url>'."\n";

foreach($postsForSitemap as $post) {
setup_postdata($post);
$postdate = explode( " ", $post->post_modified );
$sitemap .= "\t".'<url>'."\n"."\t\t".'<loc>'. get_permalink($post->ID) .'</loc>'."\n\t\t".'<lastmod>'. $postdate[0] . 'T' . $postdate[1] . $tempo . '</lastmod>'."\n\t\t".'<changefreq>Weekly</changefreq>'."\n\t\t".'<priority>0.8</priority>'."\n\t".'</url>'."\n";
}
$sitemap .= '</urlset>';
$fp = fopen( ABSPATH . "sitemap.xml", 'w' );
fwrite( $fp, $sitemap );
fclose( $fp );

调用方法

输入验证码查看隐藏内容:


扫描二维码关注本站微信公众号 路人安全联盟
或者在微信里搜索 路人安全联盟
回复 sitemap地图文件 获取验证码

wechat
路人安全联盟

继续阅读
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
广告也精彩
  • 本文由 发表于 2020年1月31日19:07:21
WordPress模板开发之主题选项 Theme Options 探索之路

WordPress模板开发之主题选项 Theme Options

制作WordPress主题多少会涉及到主题选项(Theme Options)页面,即使是自用的主题,想尽量节省内存减少数据库查询,也要在易用性和性能之间寻求平衡,假如有些设置是很多模板需要用到的,硬编...
匿名

发表评论

匿名网友 填写信息

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