麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > CMS > Wordpress > 正文

WordPress免插件生成完整站點地圖(sitemap.xml)的php代碼及實現方法

2024-09-07 00:49:48
字體:
來源:轉載
供稿:網友
這篇文章主要為大家詳細介紹了WordPress免插件生成完整站點地圖(sitemap.xml)的php代碼及實現方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,有需要的朋友可以收藏方便以后借鑒。

       站點地圖(sitemap.xml)的作用,相信站長們都有所了解,這里織夢模板小編就不多說了。而免插件生成sitemap.xml,網絡上也早就有了純代碼生成的方法。

WordPress免插件生成完整站點地圖(sitemap.xml)的php代碼及實現方法

一直以來,都是用DX-SEO這個很好用的中文SEO插件生成的sitemap。今天整理電腦文件時,看到了以前收藏的生成sitemap.xml的php腳本,就隨手打開看了看,發現這個代碼只能生成主頁和文章頁的sitemap。果斷百度了一下,發現網上分享的都大同小異,只有首頁和文章頁。感覺有點缺憾,反正今天也是閑著,就動手改造了一番,讓這個代碼更加完善,可以同時生成首頁、文章、單頁面、分類和標簽的sitemap!

一、PHP代碼

<?phprequire('./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/">'?>    <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>

將以上代碼保存為sitemap.php,傳到網站根目錄,手動訪問查看效果。

二、偽靜態

①、Nginx

編輯已存在的Nginx偽靜態規則,新增如下規則后(平滑)重啟nginx即可:

rewrite ^/sitemap.xml$/sitemap.php last;

②、Apache

編輯網站根目錄的 .htaccess ,加入如下規則:

RewriteRule ^(sitemap).xml$ $1.php

做好偽靜態規則后,就可以直接訪問sitemap.xml看看效果了。

三、純靜態

看到很多朋友已經在問這個sitemap如何靜態化,加快打開速度。畢竟每次重新生成絕對是一個耗能大戶,而且還有可能被有心之人拿來作為攻擊入口!實現方法有多種,比如在Nginx的fastcgi緩存中取消xml文件的緩存屏蔽,或者使用博客最早使用的php生成靜態文件等。

在這里,我就分享一個自己一直在用的最簡單的實現方法:Linux定時任務+wget定時生成sitemap.xml

具體實現:將sitemap.php放到某個不為人知的目錄,然后定時使用wget去請求這個文件,并將數據保存為sitemap.xml存放到網站根目錄就可以了!比如:

#每天在網站根目錄生成一個sitemap.xml diypath為sitemap.php的實際位置0 1 * * * wget -O/home/wwwroot/www.yudouyudou.com/sitemap.xml https://www.yudouyudou.com/diypath/sitemap.php >/dev/null 2>&1

如果是啟用了https的站點,需要加入 --no-check-certificate  的選項,即:

#每天在網站根目錄生成一個sitemap.xml diypath為sitemap.php的實際位置(針對https網站)0 1 * * * wget -O/home/wwwroot/www.yudouyudou.com/sitemap.xml --no-check-certificate https://zhang.ge/diypath/sitemap.php >/dev/null 2>&1

Ps:使用這個方法,注意sitemap.php里面的 require('./wp-blog-header.php'); 要改成 require('../wp-blog-header.php'); 也就是注意相對位置!

如果實在搞不清楚什么是相對路徑,那么就用簡單粗暴的方法:將網站根目錄的sitemap.php重命名為一個只有自己知道的php文件,比如xml.php,然后如下添加任務:

#每天在網站根目錄生成一個sitemap.xml(xml.php為自己重命名的php文件名稱)0 1 * * * wget -O/home/wwwroot/www.yudouyudou.com/sitemap.xml https://www.yudouyudou.com/xml.php >/dev/null 2>&1

這樣一來,就解決了sitemap.xml是動態數據問題了!

四、文章最后

①、確認無誤之后,已開通sitemap權限的就可以前往百度站長平臺提交了,沒開通權限的可以發送申請郵件到百度站長平臺管理員郵箱申請,并且將sitemap.xml使用a標簽鏈接在網站底部即可。

②、代碼使用很簡單,可以根據需要增減內容,比如覺得標簽不應該出現在sitemap里面的,可以將標簽部分的php代碼刪除即可,但一定要注意不要誤刪除結尾的</urlset>標簽。

以上就是WordPress免插件生成完整站點地圖(sitemap.xml)的php代碼及實現方法的全部內容,希望對大家的學習和解決疑問有所幫助,也希望大家多多支持武林網。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 韩国精品一区二区三区四区五区 | 久久久久久久久久久亚洲 | 欧洲精品久久久 | 国产精品久久久久久久久久尿 | 日日天日日夜日日摸 | 亚洲第九十九页 | 国产大片全部免费看 | 成人在线视频免费看 | 久久国产精品成人免费网站 | 李宗瑞国产福利视频一区 | 色就色 综合偷拍区91网 | 欧美成人免费 | 亚洲成人精品国产 | 免费欧美| 成人毛片视频免费看 | 中文字幕精品一二三四五六七八 | 久草在线免费看 | 国产精品久久久久久久不卡 | 美女久久久久久久久 | 干一夜综合 | 亚洲性综合网 | 免费视频99| 色的综合 | 亚洲91在线| 黄色影院在线观看视频 | 爱唯侦察 国产合集 亚洲 | 一级一片免费看 | 九九热视频免费观看 | 免费黄网站在线播放 | 国产一区二区三区在线视频 | 成人福利在线播放 | 九九热在线视频观看 | 久久亚洲网 | 中文字幕一区2区 | 看免费5xxaaa毛片 | 欧美一级做性受免费大片免费 | 黄污在线观看 | 草莓福利视频在线观看 | 操操电影| 国产妇女乱码一区二区三区 | 亚洲精品一区国产精品丝瓜 |