cnj / seotamic
Statamic 的简单 SEO 扩展插件
Requires
- php: ^8.2
- statamic/cms: ^5.0.0
Requires (Dev)
- orchestra/testbench: ^9.0
- dev-master
- v5.0.0
- v5.0.0-beta.1
- v4.x-dev
- v4.1.4
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.7
- v4.0.6
- v4.0.5
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v4.0.0-beta.1
- v3.x-dev
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v3.0.0-beta.5
- v3.0.0-beta.4
- v3.0.0-beta.3
- v3.0.0-beta.2
- v3.0.0-beta.1
- v2.1.0
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.0.1
- v1.0.0
- dev-dependabot/npm_and_yarn/elliptic-6.5.7
- dev-dependabot/npm_and_yarn/multi-9423f4c335
- dev-dependabot/npm_and_yarn/multi-cf87d80143
- dev-dependabot/npm_and_yarn/multi-d66d039ac5
- dev-dependabot/npm_and_yarn/webpack-5.94.0
- dev-ssg-changes
This package is auto-updated.
Last update: 2024-09-25 21:28:23 UTC
README
PRO 版本:如果您在许可证方面遇到问题,请确保在 config/statamic/editions.php
的 addons
数组中添加 'cnj/seotamic' => 'pro'
。
Seotamic - Statamic SEO 扩展插件
仅支持 Statamic v5。对于 Statamic v4,请使用 4.* 版本;对于 Statamic v3,请使用 3.* 版本。自动为所有集合条目添加 SEO 选项卡,您可以在其中为每个条目微调 SEO。与 Antlers、Blade 和无头模式(PRO 版本)完美配合,直接使用 Statamic REST API 或 GraphQL 集成。
快速 Antlers 使用示例
{{ seotamic }}
生成完整的 SEO 设置数组
<title>My Page Title</title> <meta name="description" content="SEO friendly description" /> <link rel="canonical" href="https://mysite.com/page" /> <meta property="og:url" content="https://mysite.com/page" /> <meta property="og:site_name" content="Site name" /> <meta property="og:title" content="My Page Title" /> <meta property="og:description" content="SEO friendly description" /> <meta property="og:image" content="https://mysite.com/img/og.jpg" /> ...
版本 5 更改
Seotamic v5.* 与 Statamic v5.0+ 兼容。
版本 4.1 更改
Seotamic v4.1 是一个小版本更新,增加了相关元标签。相关元标签用于在多站场景中链接到与当前页面相关的其他页面。它们作为标签可用,并可用于 Antlers 或 Blade 模板。在 PRO 查询模式下,相关元标签也通过 REST API 和 GraphQL 可用。
版本 4 更改
Statamic v4 兼容性。由于 Statamic v4 中蓝图的工作方式,一些内部函数发生了变化。此版本与 Statamic v3 不兼容。在升级到此版本之前,请先升级到 Statamic v4。从 SEOtamic v2 升级的路径仍然相同。
版本 3 更改
版本 3 有破坏性更改。如果您从版本 1 或 2 升级,您的全局设置将不会迁移。数据布局略有不同,特定条目的数据也是如此。
字符串标签已更改为数组,因此要访问数据,您需要使用 :meta
或 :social
前缀。例如 {{ seotamic:title }}
变为 {{ seotamic:meta:title }}
。
从版本 2 迁移
如果您从版本 2 迁移,可以使用以下命令迁移您的数据
php artisan seotamic:migrate
这将迁移您的全局设置和所有条目。它还将从条目中删除旧字段。在运行命令之前,请确保备份您的数据。
安装
使用 composer 包含包
composer require cnj/seotamic
此包需要 Laravel 9+ 和 PHP 8.1+。它将自动注册。
SEO & 社交选项卡将自动出现在所有集合条目中。
配置(可选)
您可以通过发布配置来覆盖默认选项
php artisan vendor:publish --provider="Cnj\Seotamic\ServiceProvider" --tag=config
这将复制默认配置文件到 `config/seotamic.php`。
如果您需要更改默认的资产容器,请确保在蓝图中也应用更改。
使用方法
使用方法相对简单直接。您可以通过在 CP 中的导航上点击 Seotamic 链接来访问全局设置。请确保遵循每个字段的说明。
在此之后,您可以通过编辑条目的 SEO 选项卡下的 SEO 设置来微调每个集合条目的输出。从版本 3 开始,您还可以预览元和社交设置的输出。预览应准确反映输出。
Antlers
有几个 antler 标签可用,最简单的方法是将执行所有操作的基标签包含在布局的头部
{{ seotamic }}
如果您需要更多控制,您可以通过使用以下方法手动获取输出的一部分
{{ seotamic:meta:title }}
{{ seotamic:meta:description }}
{{ seotamic:meta:canonical }}
{{ seotamic:meta:robots }}
{{ seotamic:meta:related }}
这将返回字符串,因此您需要将它们包装在适当的标签中,例如
<title>{{ seotamic:meta:title }}</title>
社交相关的仍然会返回所有带有这些标签的内容(通用标签也会返回这些内容)
{{ seotamic:og }}
{{ seotamic:twitter }}
如果您需要更多控制,您可以通过使用以下方法手动获取输出的一部分
{{ seotamic:social:title }}
{{ seotamic:social:description }}
{{ seotamic:social:image }}
{{ seotamic:social:site_name }}
这将返回字符串,因此您需要将它们包装在适当的标签中。
Blade
类似于Antlers的使用,您可以使用相同的标签通过Blade实现。
{!! Statamic::tag('seotamic')->context(get_defined_vars()) !!}
它的工作方式类似于Antlers标签,因此您也可以使用单个值。
无头(PRO版)
无头使用很简单。如果您使用REST API或GraphQL,条目将包含三个Seotamic字段:`seotamic_meta`、`seotamic_social`,它们将包含预填充的SEO数据。
您还可以通过在配置文件中设置`headless_mode`的值来设置基础 canonical URL。默认值为`false`,但将其设置为`https://mydomain.com`将更改所有 canonical URL。图片将不会使用此基础 URL,因为它们仍然由Statamic提供。
无头使用仅支持PRO版。
网站地图(PRO版)
如果网站地图配置选项设置为true(默认),则网站地图将在`/sitemap.xml` URL下自动生成。
网站地图仅支持PRO版。
动态OG图片注入
在需要OG图片动态生成的项目中,目前您可以使用此ViewModel并将其注入到您的集合中,以动态分配OG图片。
<?php namespace App\ViewModels; use Statamic\View\ViewModel; class OgImage extends ViewModel { public function data(): array { $social = $this->cascade->get('seotamic_social'); if ($social) { return [ ...$social, 'image' => 'https://myimageurl.com/image.jpg', ]; } return []; } }
在上面的示例中,我们使用了一个硬编码的图片URL,您可以根据您的用例进行更改。然后,在您的集合中,您只需注入ViewModel即可。
title: Posts inject: view_model: App\ViewModels\OgImage
致谢
此包由CNJ Digital构建。
版本3、4和5许可证
版本3和4是Statamic的商业插件。它是开源的,但不是免费使用的。您可以在Statamic市场购买许可证。
版本2和1许可证
版本2和1是根据MIT许可证授权的。