borysenko/sitemap

此包最新版本(dev-master)没有可用的许可证信息。

Yii 2 网站地图扩展

安装: 20

依赖: 1

建议者: 0

安全: 0

星星: 0

关注者: 1

分支: 1

公开问题: 0

类型:yii2-extension

dev-master 2016-12-09 21:18 UTC

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中