bjoluc / wordcrumbs
一个简单的PHP包,用于在WordPress网站上添加面包屑导航
Requires
- php: >=5.4
- symfony/translation: ^5.0@dev
- symfony/yaml: ^5.0@dev
This package is auto-updated.
Last update: 2021-06-12 16:46:39 UTC
README
一个简单的PHP包,用于在WordPress网站上添加面包屑导航
是否曾需要在不让用户感到烦恼的情况下,为WordPress主题添加自定义面包屑导航?现在您可以使用WordCrumbs了!WordCrumbs是一个可定制的、易于扩展的PHP包,可以在WordPress网站上自动生成面包屑导航。它包含一组格式化工具,可用于控制WordCrumbs的HTML输出。
我想使用这个包,需要做什么?
如果您尚未使用Composer,请先安装它。安装Composer后,导航到您的主题目录并运行
composer require bjoluc/wordcrumbs
如果您的主题尚未使用Composer自动加载器,请在您的functions.php文件中包含它
require __DIR__ . '/vendor/autoload.php';
之后,例如在您的主题的header.php文件中,您可以像这样使用WordCrumbs
<?php use bjoluc\WordCrumbs\WordCrumbs; use bjoluc\WordCrumbs\Formatters\HtmlFormatter; $wordcrumbs = new WordCrumbs(); $wordcrumbs->detect(); $formatter = new HtmlFormatter(' » '); print $wordcrumbs->format($formatter); ?>
自定义
行为
默认情况下,WordCrumbs在文章、页面、分类存档、标签存档、日期存档、附件、搜索结果和404错误页面上显示面包屑导航。您可以在调用detect()之前使用以下方法禁用这些中的任何一项
$wordcrumbs->disablePosts();$wordcrumbs->disablePages();$wordcrumbs->disableCategories();$wordcrumbs->disableTags();$wordcrumbs->disableDates();$wordcrumbs->disableAttachments();$wordcrumbs->disableSearch();$wordcrumbs->disableError404();
默认情况下禁用自定义分类和自定义文章类型的面包屑导航。您可以使用以下方法启用它们
$wordcrumbs->enableCustomTaxonomies()$wordcrumbs->enableCustomPostTypes()
这两个方法也接受一个数组,用于指定要启用面包屑导航的分类或文章类型名称。
如果您有一个用于自定义分类的页面,其中列出了分类术语,您可以使用enableTermListPages()使分类面包屑链接到该页面。例如,如果您有一个位于/colors的页面,其中列出了“颜色”分类的术语,并且您调用enableTermListPages()或更具体地,调用enableTermListPages(['color']),颜色术语将具有指向/colors的面包屑链接。
格式化
您可以通过几种方式自定义HTML(或纯文本)输出。首先,您可以在现有的格式化工具之间切换。这些是
其次,所有这些格式化工具都支持可选的构造函数参数来修改它们的输出(有关详细信息,请参阅PHPDoc注释)。
第三,您可以扩展这些格式化工具中的任何一种(包括抽象的BaseFormatter类)或自己实现FormatterInterface接口。
本地化
语言环境存储在 locales 目录中的 yaml 文件中。首选的语言环境可以通过字符串传递给 WordCrumbs 构造函数(例如 new WordCrumbs('de_DE'))。否则,使用 WordPress 函数 get_locale() 来设置语言环境。如果相应的语言环境文件不存在,则默认使用 en_US。添加语言环境就像复制 en_US.yaml 并相应地修改字符串一样简单。如果您添加了语言环境,欢迎创建 PR 或打开问题,提供 yaml 文件内容。我很乐意接受您的请求或为您添加文件!
深入修改
根据页面不同,detect() 方法会调用以 _process 为前缀的不同受保护方法。例如,如果您想修改附件页面上创建面包屑的方式,您可以简单地继承 WordCrumbs 并相应地覆盖 _processAttachment()。祝您玩得开心!