orgasmicnightmare/cakephp-seo

CakePHP 3的SEO插件

安装: 109

依赖关系: 0

建议者: 0

安全: 0

星星: 6

关注者: 2

分支: 2

类型:cakephp-plugin

dev-master 2021-03-14 07:48 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:36:47 UTC


README

License

为cakePHP 3提供的一个SEO插件,便于管理SEO标签。它包括一个行为、一个组件、一个视图单元和默认的admin crud操作。

  • 该行为可以帮助你为每个模型生成一些默认标签。你可以使用简单的文本、模式、回调函数。
  • 组件在视图中注入标签。
  • 视图单元可以帮助你在记录的admin视图中直接添加或编辑标签。

注意:此插件受到了CakePHP-Seo-Plugin的启发

安装

您可以使用composer将此插件安装到您的CakePHP应用程序中。

安装composer包的推荐方式是

composer require orgasmicnightmare/cakephp-seo

然后更新您的数据库以创建新的表

bin/cake migrations migrate -p Seo

现在您可以访问到admin部分

  • yoursite/admin/seo/seo-uris
  • yoursite/admin/seo/seo-titles
  • yoursite/admin/seo/seo-meta-tags
  • yoursite/admin/seo/seo-canonicals

行为

SeoBehavior允许您在添加新条目时自动创建SEO字段。

配置行为,请参见下面的默认配置,每次添加条目时,所有配置的标签都将生成。这可以节省大量时间...

稍后,您可以通过admin部分或通过在模型视图中添加Seo单元框来访问数据。

默认配置是

$_defaultConfig = [
    'urls' => [
        [   
            'url' => [
                'prefix' => false,
                'action' => 'view',
                '_' => [
                    'slug' => 'slug'
                ]
            ],
            'title' => 'Seo default title',
            'canonical' => true,
            'meta_tags' => [
                'og:type' => [
                    'content' => 'website',
                    'is_property' => true
                ],
                'og:description' => [
                    'content' => '{{content}}',
                    'is_property' => true
                ],
                'og:locale' => [
                    'callback' => 'getLocale',
                    'is_property' => true
                ],
                'twitter:description' => [
                    'content' => '{{content}}',
                    'is_property' => true
                ],
            ]
        ]
    ]
];
  • urls要添加标签的URL数组
  • urls.url标准的CakePHP路由选项数组。此键有两个特殊键
    • _用于传递路由的变量,例如:/brand/:slug
    • _callback一个回调函数,用于生成路由选项数组
  • urls.title标题模式。例如:{{name}},将仅使用字段'name'填充标题标签。
  • urls.canonical如果您想添加一个canonical标签,则为true
  • urls.meta_tags您想添加的元标签数组。每个键是新标签名,支持许多选项
    • callback一个回调函数,用于设置标签的内容(关于此稍后详细介绍)
    • content一个模板来格式化内容。例如:Hello {{name}}双大括号中的文本是实体的一个字段。
    • is_property如果为true,则标签使用属性"property"而不是"name"。
    • is_http_equiv如果为true,则标签将设置属性"is_http_equiv"为true。

组件

SeoComponent根据URI准备并发送信息到视图。
要使用它,只需将其添加到AppController.php或任何子控制器中。

默认配置是

$_defaultConfig = [
    'excludePrefix' => ['admin'],
    'defaults' => [
        'title' => 'Default Title',
        'prefix' => null,
        'suffix' => null
    ],
    'templates' => [
        'meta' => '<meta{{attrs}}/>',
        'canonical' => '<link rel="canonical" href="{{content}}"/>'
    ]
];
  • excludePrefix:绕过这些前缀的处理过程
  • defaults.title:标题标签
  • defaults.prefix:标题标签的前缀
  • defaults.suffix:标题标签的后缀

视图单元

您可以通过常规的admin URL(例如:yoursite/admin/seo/seo-titles)访问所有SEO数据。
但这并不真正有用,甚至可以说它很糟糕

单元视图是为了帮助您在所需的视图中直接获取所有SEO信息。
您有一个产品admin编辑视图。在Template/Admin/Products/edit.ctp中,只需添加

    $cell = $this->cell('Seo.Seobox', ['uri' => Router::url(['_name' => 'catalogView', $product->slugPath])]);
    echo $cell;
?>

在这个例子中,我使用了一个命名路由,但您也可以使用标准的数组。只需记住要使用要添加SEO元数据的路由,在这种情况下是产品的公共视图

实际上,默认模板并不遵循 CakePHP 默认布局,你肯定想覆盖它。为此,只需遵循常规方法