fokke/markup-metadata

在ProcessWire网站上渲染元标签。

安装: 943

依赖: 0

建议者: 0

安全性: 0

星级: 7

关注者: 2

分支: 2

开放性问题: 2

类型:pw-module

1.2.3 2024-03-06 12:39 UTC

This package is auto-updated.

Last update: 2024-09-06 14:05:44 UTC


README

ProcessWire的HTML文档头部分渲染元标签的模块。请注意,此模块不是一个完整的SEO解决方案,而是一个基于模块配置渲染元标签的简单工具。也支持添加自定义元标签。

内置元标签

以下元标签默认支持

  • 由页面标题和站点名称组成的文档标题
  • 字符集
  • 规范
  • 视口
  • 描述
  • 关键词
  • hreflang标签
  • 开放图
    • og:title
    • og:site_name
    • og:type
    • og:url
    • og:description
    • og:image
    • og:image:width
    • og:image:height
    • og:image:alt
  • Twitter元标签
    • twitter:card
    • twitter:site
    • twitter:creator
    • twitter:title
    • twitter:description
    • twitter:image
    • twitter:image:alt
  • Facebook元标签
    • fb:app_id

安装

使用Composer安装

composer require fokke/markup-metadata

手动安装

将模块文件提取到 site/modules/MarkupMetadata 目录。

用法

// Initialize module instance
$metadata = $modules->get('MarkupMetadata');

// Optionally set your custom meta tags, or overwrite module configuration before rendering...

// Render metadata
echo $metadata->render();

公共方法

setMeta($tag, $attrs, $content)

设置自定义元标签。

  • string $tag 要使用的HTML标签名
  • array|null $attrs 可选的HTML标签属性数组,格式如下:'name' => 'value'
  • string|null $content 可选的元素内部内容。最可能的情况是这仅用于<title>标签。
$metadata->setMeta('meta', [
  'name' => 'author',
  'content' => 'Jerry Cotton',
]);
// <meta name="author" content="Jerry Cotton">

render()

渲染所有元标签

$metadata->render();

配置

安装模块后,检查模块配置页面以获取可用选项。如果您愿意,所有这些选项都可以在代码中设置或覆盖,如下所示

// Add this line before rendering
$metadata->site_name = 'My custom site name';

// Set multiple properties
$metadata->setArray([
  'page_title' => 'My custom title',
  'site_name' => 'My custom site name',
  'description' => 'My custom description',
]);

page_url

类型: string

此URL将在canonicalog:url元标签中使用。如果未设置,页面URL将动态构建为base_url、当前页面URL和URL段(如果已定义)。

base_url

类型: string,默认值: 'https://domain.com'

用作构建当前页面URL的基础。

charset

类型: string,默认值: 'utf-8'

用于charset元标签。

viewport

类型: string,默认值: 'width=device-width, initial-scale=1.0'

用于viewport元标签。

keywords

类型: string

用于keywords元标签。如果未设置,将使用当前页面的关键词。请参阅keywords_selector

keywords_selector

类型: string,默认值: 'keywords'

此选择器将用于通过$page->get()方法获取当前页面关键词。

document_title

类型: string

默认情况下,文档标题将由page_titledocument_title_separatorsite_name组成。如果您想完全自定义文档标题,则可以覆盖此属性。

page_title

类型: string

值将用于titleog:titletwitter:title元标签。如果未设置,将使用当前页面的标题。请参阅page_title_selector

页面标题选择器

类型: string

此选择器将用于使用$page->get()方法获取当前页面标题。

文档标题分隔符

类型:string,默认:'-'

该值将用于在文档标题中分隔页面标题和站点名称。

站点名称

类型:string,默认:'站点名称'

该值将在页面标题之后添加到文档标题中。它也将用于og:site_name元标签。

描述

类型: string

用于descriptionog:descriptiontwitter:description元标签。如果未设置,将使用当前页面的描述。请参阅描述选择器

描述选择器

类型:string,默认:'summary'

此选择器将用于使用$page->get()方法获取当前页面描述。

描述最大长度

类型:integer,默认:'160'

描述将被截断到指定的字符数。

描述截断模式

类型:string,默认:'word'

选择与$sanitizer->truncate()方法一起使用的截断模式。

图片

类型:\ProcessWire\Pageimage

用于og:imagetwitter:image元标签。默认情况下,模块将尝试使用图片选择器从当前页面获取图片。此图片将被调整到由图片宽度图片高度属性定义的尺寸。

图片选择器

类型:string,默认:'image'

此选择器将用于使用$page->get()方法获取当前页面图片。

图片宽度

类型:integer,默认:1200

图片将被调整到指定的宽度。

图片高度

类型:integer,默认:630

图片将被调整到指定的宽度。

图片替代字段

类型:string,默认:alt

此字段的值将被用作图片的替代文本。为您的图片字段启用自定义字段并指定字段名称。

图片继承

类型:boolean,默认:false

如果无法从当前页面找到图片,模块将尝试从最近的父页面(包括主页)中找到图片。

图片备用页面

类型:\ProcessWire\Page,默认:null

如果无法从当前页面(可能启用了继承)找到图片,模块将尝试从给定的页面中找到图片。请使用此功能为所有页面定义默认图片。将使用上面定义的选择器来查找图片。

渲染hreflang

类型:boolean,默认:false

切换hreflang标签的渲染开/关。要启用,请设置值为true。为了渲染hreflang标签,必须满足以下要求

  1. 您的网站至少设置了两种语言
  2. 已安装LanguageSupportPageNames模块
  3. 在属性hreflang_code_field中定义的字段存在,并且您的语言模板包括该字段。
  4. 语言代码字段在每个语言页面中都已填充。如果语言代码字段为空,则不会为该语言渲染hreflang标签。

hreflang_code_field

类型:string,默认:'languageCode'

此字段名称将用于定义每个语言页面的语言代码。

渲染og

类型:boolean,默认:true

切换Open Graph标签的渲染开关。要禁用,设置值为false

og_type

类型:string,默认:'website'

页面/资源的Open Graph类型。用于og:type元标签。

render_twitter

类型:boolean,默认:false

切换Twitter标签的渲染开关。要启用,设置值为true

twitter_card

类型:string,默认:'summary_large_image'

Twitter卡片类型,可以是summarysummary_large_imageappplayer之一。用于twitter:card元标签。

twitter_site

类型:string,默认:null

Twitter用户名。用于twitter:site元标签。

twitter_creator

类型:string,默认:null

Twitter用户名。用于twitter:creator元标签。

render_facebook

类型:boolean,默认:false

切换Facebook标签的渲染开关。要启用,设置值为true

facebook_app_id

类型:string,默认:null

Facebook应用程序ID。用于fb:app_id元标签。