borysenko / sitemap
此包最新版本(dev-master)没有可用的许可证信息。
Yii 2 网站地图扩展
dev-master
2016-12-09 21:18 UTC
Requires
- borysenko/sitemap: dev-master
This package is auto-updated.
Last update: 2021-12-17 20:33:17 UTC
README
创建XML格式的网站地图。地图会被分割,每个网站地图最多可以有49000个链接,如果超过这个数量,将会创建额外的网站地图。安装
php composer.phar require borysenko/sitemap "dev-master"
或
php -d "disable_functions=" composer.phar require borysenko/sitemap "dev-master"
配置
在 console\config\main.php 中添加
'components' => [
'urlManager' => [
'class' => 'yii\web\UrlManager',
'scriptUrl' => 'http://www.example.com', // Setup your domain
'baseUrl' => 'http://www.example.com', // Setup your domain
'enablePrettyUrl' => true,
'showScriptName' => false,
// ...
],
],
使用
在 console\controllers\ 中创建 SitemapController.php 控制器,并在其中插入代码
namespace console\controllers;
use Yii;
use yii\console\Controller;
use yii\helpers\Console;
use borysenko\sitemap\SiteMap;
class SitemapController extends Controller
{
public function actionInit()
{
$siteMap = new SiteMap("@frontend/web/","sitemap");
$siteMap->addUrl("http://www.example.com/","1.0",date("Y-m-d"),"daily");
$siteMap->addTable("http://www.example.com/news/%s-%d/","0.9",date("Y-m-d"),"daily", "news",array("translit","id"),"1=1");
$siteMap->start();
$siteMap->saveXML("%d_sitemap.xml");
$siteMap->saveIndexXml("sitemap.xml");
Console::output('Success!');
}
}
请注意,$siteMap->addTable - "news" 是数据库中的表名,array("translit","id") 是需要插入URL的表字段,URL的末尾 /%s-%d/ - 即脚本在 %s 的位置插入 "translit" 字段的数据,在 %d 的位置插入 "id" 字段的数据。而 "1=1" 是SQL查询的条件,即Where(可以有一个例子 "active=1 AND status=1 AND ...")
可以通过控制台启动网站地图的生成:php yii sitemap/init 或设置到cron中