bjoluc/wordcrumbs

此包已被弃用且不再维护。未建议替代包。

一个简单的PHP包,用于在WordPress网站上添加面包屑导航

v1.0.0 2019-06-14 10:22 UTC

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(' &raquo; ');
    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()。祝您玩得开心!