在yii2中创建站点地图

时间:2016-05-30 09:55:16

标签: yii yii2 sitemap

我想在yii2中创建站点地图 我不知道我会做什么。 帮帮我从哪里开始? 这是我的新闻模式:

/**
 * @inheritdoc
 */
public static function tableName()
{
    return 'news';
}

/**
 * @inheritdoc
 */
public function rules()
{
    return [
        [['news_cat_id', 'user_id','time'], 'integer'],
        [['news_dec'], 'string'],
        [['news_title', 'logo'], 'string', 'max' => 255]
    ];
}

我无法使用扩展程序,因为这不是一份好文档。

1 个答案:

答案 0 :(得分:1)

  1. 安装包composer require evert/sitemap-php
  2. 在@ app / commands /目录中为控制台应用创建命令控制器。

    类SitemapController扩展Controller {

    public function actionIndex(){
    
        $host = 'http://yoursitehost.com/';
    
        $sitemap = new Sitemap($host);
    
        $sitemap->setPath(Yii::getAlias('@webroot').DIRECTORY_SEPARATOR);
    
        $sitemap->addItem('', '1.0', 'daily', 'Today');
        $sitemap->addItem('news', '9.0', 'daily', 'Today');
    
        foreach(News::find()->batch(50) as $news){
            foreach($news as $n){
                $sitemap->addItem(Url::toRoute(['news/view', 'id' => $n->id]), '8.0', 'daily', 'Today');
            }
        }
    
        $sitemap->createSitemapIndex($host, 'Today');
    }
    

    }

  3. 将您的控制器添加到console.php配置文件。

    $ config = [     ...     ' controllerMap' => [         '网站地图' => [             '类' => '应用程序\命令\ SitemapController'         ]     ] ];

  4. 并添加到顶部console.php Yii::setAlias('@webroot', dirname(__DIR__) . '/../web');

    1. 运行命令php yii sitemap。脚本生成文件sitemap.xml到web目录。

    2. 转到链接 - http://yourhost.com/sitemap.xml

    3. 您可以通过cron。

      运行此命令php yii sitemap