bennothommo/wn-meta-plugin

提供了一种简单的方法,将HTML元标签和链接标签插入到Winter CMS布局或页面中。

v1.1.0 2021-03-18 14:20 UTC

This package is auto-updated.

Last update: 2024-09-18 22:31:06 UTC


README

提供了一种简单的方法,允许Winter CMS插件将HTML <meta><link> 标签以及JSON-LD块插入到布局或页面中。该插件提供了三个辅助类来填充元标签和链接标签或JSON-LD块,并为每个组件提供了一个注入Winter CMS布局、部分或页面文件的组件。

使用方法

对于主题开发者

提供了三个组件,可以将元标签和链接标签或JSON-LD块注入到您的主题中 - metaListlinkListjsonLdList

元标签

将“Meta -> Meta List”组件添加到您的页面中,并在您想插入元标签的位置添加以下行。这最好在 <head> 标签内进行。

{% component 'metaList' %}

元标签将以以下结构生成

<meta name="(name)" content="(value)">

组件还提供了以下两个选项

  • 包含页面元标签?:如果勾选(默认),则Winter CMS提供的元标题和描述字段也将包含在生成的元标签中。
  • 转义标签值?:如果勾选(默认),则插入到 content 属性中的值将使用 htmlentities 转义。如果这破坏了您的内容,您可以选择不勾选以插入原始内容。

链接标签

将“Meta -> Link List”组件添加到您的页面中,并在您想插入链接标签的位置添加以下行。如上所述,这也最好在 <head> 标签内进行。

{% component 'linkList' %}

链接标签将以以下结构生成

<link rel="(name)" href="(value)">

组件还提供了一个选项

  • 转义标签值?:如果勾选(默认),则插入到 href 属性中的值将使用 htmlentities 转义。如果这破坏了您的内容,您可以选择不勾选以插入原始内容。

JSON-LD块

将“Meta -> JSON-LD List”组件添加到您的页面中,并在您想插入JSON-LD块的位置添加以下行。如上所述,这也最好在 <head> 标签内进行,在所有 <meta><link> 标签之后。

{% component 'jsonLdList' %}

JSON-LD块将以以下结构生成

<script type="application/ld+json">
    (value)
</script>

组件还提供了一个选项

  • 转义JSON-LD内容?:如果勾选(默认),则插入到JSON-LD内容块中的值将使用 htmlentities 转义。如果这破坏了您的内容 - 尤其是在HTML内容的情况下,您可以选择不勾选以插入原始内容。

对于插件开发者

如果您希望在使用此插件时,在您的插件安装的网站上提供元标签和链接标签或JSON-LD块内容,您可以在您的插件中使用 \BennoThommo\Meta\Meta\BennoThommo\Meta\Link\BennoThommo\Meta\JsonLd 辅助类。

这些类可以在上述组件在Winter CMS中渲染之前使用。

元标签

要添加元标签,请使用以下行

\BennoThommo\Meta\Meta::set('name', 'value')

其中 name 是元标签的名称,value 是元标签的内容。

您也可以一次添加多个元标签。

\BennoThommo\Meta\Meta::set([
    'name1' => 'value1',
    'name2' => 'value2'
]);

请注意,每个 name 只能使用一个值。如果在一个较新的对辅助函数的调用中使用相同的名称,所提供的值将覆盖任何先前的值。

链接标签

要添加链接标签,使用以下行

\BennoThommo\Meta\Link::set('name', 'value')

其中 name 是链接标签的名称,value 是链接标签的 href。

您也可以一次添加多个链接标签。

\BennoThommo\Meta\Link::set([
    'name1' => 'value1',
    'name2' => 'value2'
]);

请注意,每个 name 只能使用一个值。如果在一个较新的对辅助函数的调用中使用相同的名称,所提供的值将覆盖任何先前的值。

JSON-LD块

要添加 JSON-LD 块,使用以下行

\BennoThommo\Meta\JsonLd::set('name', '{key: value}')

其中 name 是 JSON-LD 块的名称,value 是您希望在该块中使用的 JSON 编码内容。

将检查所有提供的值以确保它们是有效的 JSON - 如果提供的值不是有效的 JSON 内容,将抛出 ApplicationException

您也可以一次添加多个 JSON-LD 块。

\BennoThommo\Meta\JsonLd::set([
    'name1' => '{key1: value1}',
    'name2' => '{key2: value2}'
]);