ssnepenthe / hestia
此插件引入以下短代码:[ancestors],[attachments],[children],[siblings],[sitemap]。
Requires
- php: >=5.6
- composer/installers: ^1.0
- league/plates: ^3.0
- ssnepenthe/metis: ^0.7
- ssnepenthe/wp-requirements: ^0.1
Requires (Dev)
- psy/psysh: ^0.8
- symfony/var-dumper: ^3.0
This package is auto-updated.
Last update: 2024-09-09 14:14:21 UTC
README
此WordPress插件引入了基于文章层级的短代码,用于列出相关文章。
要求
PHP 5.6 或更高版本和Composer。
安装
使用Composer安装
$ composer require ssnepenthe/hestia
用法
一旦激活插件,您将能够访问以下短代码
ancestors
列出当前文章的所有父级文章。
接受以下属性
id
: 要显示祖先的帖子ID。默认为get_the_ID()
的返回值。order
:ASC
或DESC
之一。设置找到的帖子的排序顺序。默认为ASC
。thumbnails
:true
或false
。是否在帖子列表中包含特色图像。默认为false
。
示例: [ancestors order="DESC" thumbnails="true"]
attachments
列出直接附加到当前文章的所有媒体。
接受以下属性
id
: 要显示附件的帖子ID。默认为get_the_ID()
的返回值。link
:PAGE
或FILE
之一。设置是否链接到附件页面或实际附件文件。默认为PAGE
。max
: 1 到 100 之间的整数。设置要显示的附件的最大数量。默认为20
。order
:ASC
或DESC
之一。设置找到的帖子的排序顺序。默认为ASC
。thumbnails
:true
或false
。是否在列表中包含缩略图。默认为false
。
示例: [attachments link="FILE" max="50" order="DESC" thumbnails="true"]
children
列出当前文章的所有子文章。
接受以下属性
id
: 要显示子文章的帖子ID。默认为get_the_ID()
的返回值。max
: 1 到 100 之间的整数。设置要显示的子文章的最大数量。默认为20
。order
:ASC
或DESC
之一。设置找到的帖子的排序顺序。默认为ASC
。thumbnails
:true
或false
。是否在帖子列表中包含特色图像。默认为false
。
示例: [children max="35" order="DESC" thumbnails="true"]
siblings
列出当前文章的兄弟文章。
接受以下属性
id
: 要显示兄弟文章的帖子ID。默认为get_the_ID()
的返回值。max
: 1 到 100 之间的整数。设置要显示的兄弟文章的最大数量。默认为20
。order
:ASC
或DESC
之一。设置找到的帖子的排序顺序。默认为ASC
。thumbnails
:true
或false
。是否在帖子列表中包含特色图像。默认为false
。
示例: [siblings max="65" order="DESC" thumbnails="true"]
sitemap
列出每种公开文章类型的最最近文章。
接受以下属性
max
: 1 到 100 之间的整数。设置每种文章类型要显示的文章的最大数量。默认为20
。order
:ASC
或DESC
之一。设置找到的帖子的排序顺序。默认为ASC
。thumbnails
:true
或false
。是否在帖子列表中包含特色图像。默认为false
。
示例: [sitemap max="100" order="DESC" thumbnails="true"]
自定义输出
可以在主题或子主题中覆盖短代码输出。为此,在主题根目录或模板子目录中创建以下PHP文件
hestia-ancestors.php
hestia-attachments.php
hestia-children.php
hestia-siblings.php
hestia-sitemap.php
这些模板与标准WordPress循环不同 - 它们使用 Plates模板系统 进行渲染,其中包含一个 WP_Post
对象数组。
查看现有插件模板以了解给定文件中将可用哪些数据。
关于自定义模板和文章元数据的注意事项
默认情况下,所有查询都执行时,不更新元缓存,除非启用缩略图。这样做是为了最小化数据库查询次数。
然而 - 如果你需要创建一个自定义短代码模板,该模板会访问文章元数据,则每个文章的结果将会有额外的数据库查询 每个文章一次!
这显然不是期望的结果,因此提供了以下过滤器来强制更新元缓存
hestia_ancestors_preload_meta
hestia_attachments_preload_meta
hestia_children_preload_meta
hestia_siblings_preload_meta
hestia_sitemap_preload_meta
将这些中的任何一个返回 true
,则所有文章元数据将在初始时一次性通过单个查询加载,而不是每个文章一个查询。
缓存
此插件不执行任何缓存。
大部分情况下,这些短代码执行非常基本的查询,你不应该注意到任何性能影响。
可能的例外是网站地图短代码,它至少在每个公开文章类型上运行 两个查询。
如果你有大量的文章类型,我建议不要在没有实施可靠的缓存策略的情况下使用网站地图短代码。