magicalella / yii2-sef
用于管理 Sef URL、页面 Meta description 和 Title 的组件
Requires
- php: >=7.4.0
- yiisoft/yii2: ~2.0.0
Requires (Dev)
- php: >=7.4.0
- yiisoft/yii2: ~2.0.6
This package is auto-updated.
Last update: 2024-09-15 14:40:39 UTC
README
安装
安装此扩展的最佳方式是通过 composer。
启动
php composer.phar require --prefer-dist magicalella/yii2-sef "*"
或添加
"magicalella/yii2-sef": "*"
到你的 "composer.json" 文件的 require 部分。
然后启动文件迁移
yii migrate/up --migrationPath=@vendor/magicalella/yii2-sef/migrations
可以手动创建。即,表 sef
只有三列
id(主键, 自增); link(varchar(255)); link_sef(varchar(255)); meta_title(varchar(255)); meta_description(varchar(255));
使用方法
在文件: config/web.php
或 frontend/config/main.php
(如果你使用 yii advanced,请写)
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
// Ci sono delle regole qui.
[
'class' => 'magicalella\sef\SefRule',
'connectionID' => 'db',
],
],
],
对于管理面板,你可以创建一个 "Sef" 模型,或者使用已准备好的 "magicalella\sef\src\Sef" 模型
'link' = 这是指原始链接的字段,例如文章/视图?id=49
'link_sef' = 这个字段是 URL 的同义词
'meta_title' = 页面标题
'meta_description' = 页面 Meta description
自动将 URL 保存到数据库并自动替换 Meta Title 和 Description
插入
到 _protected\ (Yii basic) 或 _protected\common\ (Yii advanced)
- models Sef.php 和 SefSearch.php
到 _protected\backend\controllers
- controller SefController.php
到 FrontendController
use app\models\Sef (Yii basic) use common\models\Sef (Yii advanced)
public function afterAction($action, $result) { $result = parent::afterAction($action, $result); $request = Yii::$app->request;
if ($request->isGet){
Sef::inserisciSef($action,$request);
}
return $result;
}
public function render ( $view, $params = [] ){
$request = Yii::$app->request;
$controller = Yii::$app->controller->id;
// ! SEO
$meta_titol = Sef::scriviMetaTitle($view,$controller,$request);
$meta_description = Sef::scriviMetaDescription($view,$controller,$request);
Yii::$app->view->title = $meta_titol;
Yii::$app->view->registerMetaTag([
'name' => 'description',
'content' => $meta_description,
]);
return parent::render($view, $params);
}
在 params
//如果设置,则添加前缀 'add_prefix_meta_titol' => 1, //如果没有设置,则默认使用站点名称,如果 add_prefix 是 1 则使用 'prefix_meta_titol' => 'prefix', //如果没有设置,则默认使用 ' | ' 'separazione_meta_titol' => ' | ', 'meta_description' => 'Default meta description',