berensn / taxonomyplus
一个强大的Winter CMS插件,它扩展了Winter Blog,增加了有用的分类
Requires (Dev)
- phpmd/phpmd: ^2.6
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2021-11-15 21:22:21 UTC
README
是Blog Taxonomy的分支,已转换为Winter CMS
要求: Winter Blog插件
- 请确保首先安装Winter Blog,因为Taxonomy Plus修改了由Winter Blog插件创建的数据库表
安装: 在插件文件夹中创建文件夹结构 berensn/taxonomyplus
,将Taxonomy Plus插件内容放在 berensn/taxonomyplus
文件夹中,然后运行 php artisan winter:up
以运行迁移。这将安装插件并执行所有数据库迁移、表创建、编辑等。
目录
对原始博客插件的变化
分类
分类用于广泛分组你的帖子。将它们视为网站的一般主题或目录。分类用于帮助识别你的博客真正关于什么。它有助于读者在网站上找到合适的内容。分类是分层的,因此你可以定义子分类。
原始博客分类增强了在单个分类页面添加帖子的能力。
它们还以类似于标签的风格放在了标签和系列所在的新的 分类 标签页的CMS博客页面的后端。
此外,分类现在(自3.0.0版本起)可以有一个封面图片,以及一系列特色图片(分别对应 cover_image
和 featured_images
属性)。还增加了两个新的后端设置来启用或禁用此扩展。
标签
标签用于描述你帖子的具体细节。将它们视为你网站的索引词。它们是微数据,你可以使用它们来对内容进行微分类。标签不是分层的。
系列
系列可以帮助你组织你的帖子,使它们呈现为一系列相关的帖子。
类型
从3.0.0版本开始,可以为帖子分配类型。可以通过插件的后端设置启用帖子类型的支持。类型是一组可以与帖子相关联的属性。类型在后台以独立模型的形式创建和编辑。每个帖子类型定义了几个属性,当选择特定类型时,这些属性会作为额外的表单输入添加。
翻译插件支持
当安装了Winter Translate插件时,Taxonomy Plus支持该插件。所有标签和系列字段都应该被翻译。
实现前端页面
帖子类型
帖子类型提供了额外的属性,可以分配给博客帖子。每个属性创建时都会有一个自己的code
(例如,帖子的slug
、标签、系列等)。此代码可以用于访问单个帖子的属性值。为此,添加了以下方法
typeAttribute(string code) - to get one attribute
typeAttributes() - to get all attributes
因此,例如,如果您有一个具有rating
代码的“评分”属性,您可以在模板中这样显示它
<span>{{ post.typeAttribute('rating') }}</span>
组件
Taxonomy Plus插件提供了一些有用的组件,用于前端的基本标记。默认标记不是旨在适应任何现有前端主题,它只是一个示例,因此如果您认为默认标记不适合您的网站,请随意从默认部分复制它,并用您自己的标记替换。
可用的组件
- 帖子系列导航(
seriesNavigation
)-为单个帖子提供系列内的导航。 - 系列中的帖子(
postsInSeries
)-列出提供的系列中的所有帖子。 - 带有标签的帖子(
postsWithTag
)-列出具有提供的标签的所有帖子。 - 相关帖子(
relatedPosts
)-提供通过标签相关的帖子列表。 - 系列列表(
seriesList
)-显示系列列表。 - 标签列表(
tagList
)-显示标签列表。 - 相关系列(
relatedSeries
)-提供相关系列列表。
帖子系列导航
组件seriesNavigation
为单个帖子提供系列内的导航。您可以显示,例如,同一系列中的下一篇和上一篇文章,显示系列详细信息并链接到其页面等。
组件属性
- 帖子slug -通过URL参数中的slug值获取指定帖子的系列导航;例如,如果帖子slug是
:post
,则页面URL必须包含:post
参数,该参数的值将用作帖子slug以检索系列; - 系列页面 -包含
postsInSeries
组件的CMS页面,用于显示单个系列的内容和帖子; - 帖子页面 -要显示单个博客帖子内容的博客帖子页面名称。
系列中的帖子
组件postsInSeries
列出提供的系列中的所有帖子。该组件支持分页和帖子排序。
可用的属性
- 系列slug -使用此URL参数中提供的slug值查找系列;例如,如果系列slug是
:series
,则页面URL必须包含:series
参数,该参数的值将用作系列slug以检索系列; - 帖子排序 -属性和方向,根据该属性和方向对帖子进行排序;
- 页面参数 - 根据此URL参数计算分页;
- 每页项目数 - 每页应显示多少项(如果有),“0”显示所有项;
- 帖子页面 - 要显示单个博客帖子内容的博客帖子页面名称;
- 分类页面 - 要显示单个博客分类内容的分类页面名称;
- 包含标记的帖子 - 此外包含带有当前系列标记的帖子;
- 包含分类 - 分类ID/别名列表,用逗号分隔(可以混合使用);只有具有这些分类的帖子将被包含在列表中;
- 排除帖子 - 帖子ID/别名列表,用逗号分隔(可以混合使用);这些帖子将被排除在列表之外;
- 排除分类 - 分类ID/别名列表,用逗号分隔(可以混合使用);具有这些分类的帖子将被排除在列表之外。
带有标记的帖子
组件postsWithTag
列出所有带有指定标记的帖子。该组件支持分页和帖子排序。
可用的属性
- 标记别名 - 使用此URL参数中提供的别名值查找标记;例如,如果标记别名是
:tag
,则页面URL必须包含:tag
参数,其值将用作标记别名以检索标记; - 包含系列帖子 - 此外包含属于带有当前标记的系列的帖子;
- 帖子排序 -属性和方向,根据该属性和方向对帖子进行排序;
- 页面参数 - 根据此URL参数计算分页;
- 每页项目数 - 每页应显示多少项(如果有),“0”显示所有项;
- 帖子页面 - 要显示单个博客帖子内容的博客帖子页面名称;
- 分类页面 - 要显示单个博客分类内容的分类页面名称;
- 包含分类 - 分类ID/别名列表,用逗号分隔(可以混合使用);只有具有这些分类的帖子将被包含在列表中;
- 排除帖子 - 帖子ID/别名列表,用逗号分隔(可以混合使用);这些帖子将被排除在列表之外;
- 排除分类 - 分类ID/别名列表,用逗号分隔(可以混合使用);具有这些分类的帖子将被排除在列表之外。
相关帖子
组件relatedPosts
提供与标签相关的一系列帖子列表,例如具有一些共同标签的帖子。
可用的属性
- 帖子别名 - 通过URL参数中指定的别名值获取相关帖子;例如,如果帖子别名是
:post
,则页面URL必须包含:post
参数,其值将用作帖子别名以检索相关帖子; - 限制 - 要显示的帖子数,0检索所有相关帖子;
- 帖子排序 -属性和方向,根据该属性和方向对帖子进行排序;
- 帖子页面 -要显示单个博客帖子内容的博客帖子页面名称。
系列列表
组件seriesList
显示一系列系列。
可用的属性
- 显示空系列 - 是否显示没有任何帖子分配的系列;
- 限制 - 要显示的系列数,0检索所有系列;
- 系列排序 - 系列列表应该如何排序;
- 系列页面 -包含
postsInSeries
组件的CMS页面,用于显示单个系列的内容和帖子; - 获取相关帖子 - 如果启用,该组件将获取相关帖子,以便它们通过系列项的
posts
属性正确(已发布)可用;它执行额外的请求,因此会稍微降低性能; - 包含分类 - 分类ID/别名列表,用逗号分隔(可以混合使用);只有具有这些分类的帖子将被包含在系列的相关帖子计数和列表中;
- 排除帖子 - 帖子ID/别名列表,用逗号分隔(可以混合使用);这些帖子将被排除在系列的相关帖子计数和列表中;
- 排除分类 - 分类ID/别名列表,用逗号分隔(可以混合使用);具有这些分类的帖子将被排除在系列的相关帖子计数和列表中。
标签列表
组件tagList
显示一个标签列表。可用于构建标签云(因为每个标签都有帖子计数)。它还可以用于检索特定帖子的标签列表。
请务必在同一个页面上多次使用相同组件时(可能用于不同的目的),使用不同的别名。
可用的属性
- 显示空标签 - 是否显示未分配给任何文章的标签;
- 标签排序 - 标签应该如何排序;
- 限制 - 显示的标签数量,0 表示检索所有标签;
- 显示总数 - 组件具有
totalCount
属性,该属性将包含整体标签数量或仅包含 "限制" 的标签数量。例如,您总共有 10 个标签,但使用了 限制 为 5。这将使组件仅显示 5 个标签。启用 显示总数 后,您仍然可以在totalCount
中获得 "10"。否则,您将获得 5; - 获取标签文章 - 如果启用,组件将获取标签文章,因此它们将通过标签项的
posts
属性正确(已发布)地可用;它将进行额外的请求,因此会稍微降低性能; - 包含系列标签 - 如果启用,组件将额外包含应用于文章系列的标签,如果文章有系列且系列有标签;
- 调试输出 - 允许启用将调试输出到浏览器控制台。需要由主题实现;
- 获取系列文章数量 - 如果启用,组件将额外获取带有此标签的系列所属的文章数量,因此可以创建更准确的标签云;
- 包含分类 - 以逗号分隔的分类 ID/别名列表(可以混合使用);只有具有这些分类的文章才会被包含在标签相关的文章计数和文章列表中;
- 排除文章 - 以逗号分隔的文章 ID/别名列表(可以混合使用);这些文章将不会包含在标签相关的文章计数和文章列表中;
- 排除分类 - 以逗号分隔的分类 ID/别名列表(可以混合使用);具有这些分类的文章将不会包含在标签相关的文章计数和文章列表中。
如果您不需要完整的总数,请将其保留为
false
,因为它将为您提供更优化的结果
- 包含标签过滤器 - 是否包含标签过滤器输入。标签过滤器是一个文本输入,由 mark.js 提供支持,允许您很好地过滤标签列表。如果您有很多标签要显示,请使用它,因为它可以快速搜索特定标签。可能的值是 "从不"、"总是" 和 "当标签总计数 > 限制" 时。所有这些都是自我描述的,但请注意,最后一个选项应该在 限制 和 显示总数 启用时使用,否则可能会得到不希望的结果。组件公开
tagFilterEnabled
属性,当包含过滤器资源且可以使用过滤器时,将设置为true
;
默认标记将 JavaScript 注入到
{% scripts %}
占位符中,请确保您的主题具有它。此外,默认代码需要 jQuery。如果您没有它,请确保调整代码以满足您的需求
- 文章别名 - 从 URL 参数的 slug 值获取指定文章的标签;例如,如果文章别名是
:post
,则页面 URL 必须包含:post
参数,该参数的值将用作文章别名以检索标签;
除非您想显示针对特定文章的标签,否则无需将其设置为实际值
- 标签页面 - 包含
postsWithTag
组件的 CMS 页面,用于显示单个标签内容(其文章); - 标签页面 - CMS 页面,可能包含
tagList
组件,用于显示您拥有的所有标签;
相关系列
组件 relatedSeries
提供相关系列列表。可以通过访问其属性 related_series
获取相同列表的各个系列。唯一的区别是,该组件为相关系列填充 URL。
可用的属性
- 系列别名 - 使用从该 URL 参数提供的别名值查找相关系列;例如,如果系列别名是
:series
,则页面 URL 必须包含:series
参数,该参数的值将用作系列别名以检索相关系列; - 系列页面 - CMS 页面,包含
postsInSeries
组件,用于显示单个系列的内容和帖子。