justintadlock / hybrid-breadcrumbs
一款强大的面包屑脚本,可插入到WordPress主题中。
Requires
- php: >=5.6
This package is auto-updated.
Last update: 2024-09-08 00:34:48 UTC
README
Hybrid Breadcrumbs 是一个即插即用的包,主题作者可以使用它为他们的WordPress主题添加面包屑。
该包是一个面向开发者的项目,旨在消除处理面包屑的所有工作。它是最先进且最健壮的面包屑系统之一,可以处理几乎任何设置,以显示每个页面最准确的面包屑。
该项目最初于2009年 推出,当时是 Breadcrumb Trail 插件。Hybrid Breadcrumbs 是对该原始脚本的重新构想,旨在为主题作者提供一个更好的即插即用包。
要求
- WordPress 4.9+。
- PHP 5.6+(最好是 7+)。
- Composer 用于管理PHP依赖项。
文档
以下文档是针对主题作者编写的,因为这将是最常见的用例。如果您将其包含在插件中,应该不会有太大差异。
安装
首先,您需要打开命令行工具并将目录更改到您的主题文件夹。
cd path/to/wp-content/themes/<your-theme-name>
然后,使用Composer安装包。
composer require justintadlock/hybrid-breadcrumbs
假设您还没有在主题中包含Composer自动加载文件,并且将其作为主题包的一部分进行分发,您可能需要在主题的 functions.php
中包含以下代码以自动加载此包(以及其他包)。
Composer自动加载文件将自动加载Hybrid Breadcrumbs,并使其代码可供您使用。
if ( file_exists( get_parent_theme_file_path( 'vendor/autoload.php' ) ) ) { require_once( get_parent_theme_file_path( 'vendor/autoload.php' ) ); }
翻译
由于此脚本中包含一些国际化文本字符串,您可能需要覆盖文本域或使用类似以下 一个主题中两个文本域的技巧(此项目的文本域为 'hybrid-core'
)。
如果您正在使用 Hybrid Core 框架 创建主题,您无需担心这个问题。Hybrid Core 将为您适当处理翻译。
使用
大多数开发人员都希望利用 Hybrid\Breadrumbs\Trail
类。这是一个静态包装类,实际上在主题模板中使用时相当于 语法糖。
通常,以下调用将进入您的主题的 header.php
模板,但可以在任何您想显示面包屑路径的地方使用。
Hybrid\Breadcrumbs\Trail::display();
请注意,插件的名字空间是 Hybrid\Breadcrumbs
。如果您在其他名字空间中工作,您需要在您的名字空间调用后添加一个 use
语句,或者直接调用 \Hybrid\Breadcrumbs\Trail::display()
。如果您正在处理名字空间,我将假设您知道自己在做什么。否则,请坚持使用上面提供的方法。
静态类
Hybrid\Breadcrumbs\Trail
类具有以下方法
// Returns a new instance of the Hybrid\Breadcrumbs\Breadcrumbs class. Trail::breadcrumbs( array $args = [] ); // Makes a breadcrumb trail and returns an instance of the Hybrid\Breadcrumbs\Breadcrumbs. Trail::make( array $args = [] ); // Returns an array of Hybrid\Breadcrumbs\Crumb\* objects. Trail::all( array $args = [] ); // Displays the HTML output of the breadcrumb trail if it exists. Trail::display( array $args = [] ); // Returns the HTML output of the breadcrumb trail or an empty string. Trail::render( array $args = [] );
面包屑类
如果您不喜欢静态类并需要直接与对象交互,这也是可以的。您可以创建并使用 Breadcrumbs
对象,如下所示
// Create a new Breadcrumbs object. $trail = new \Hybrid\Breadcrumbs\Breadcrumbs( array $args = [] ); // Makes the breadcrumb trail and returns an instance of the object. $trail->make(); // Returns an array of Hybrid\Breadcrumbs\Crumb\* objects. $trail->all(); // Displays the HTML output of the breadcrumb trail if it exists. $trail->display(); // Returns the HTML output of the breadcrumb trail or an empty string. $trail->render();
参数
Breadcrumbs
类和 Trail
类方法都接受一个参数,它是一个包含设置面包屑路径的可选参数的数组。以下是所有可用选项的列表(默认值见下文)。
labels
- 标签数组。post_taxonomy
- 基于帖子类型的单篇帖子要显示的分类数组。show_on_front
- 是否在网站首页显示面包屑路径。show_trail_end
- 是否显示最终的面包屑。network
- 在多站点中,是否在路径的开始处包含主站点。before
- 显示在前的HTML。after
- 显示在后的HTML。container_tag
- 用于容器的HTML标签。title_tag
- 用于标题的HTML标签。list_tag
- 用于列表的HTML标签。item_tag
- 用于每个面包屑的HTML标签。container_class
- 用于容器的类。title_class
- 用于标题的类。list_class
- 用于列表的类。item_class
- 用于每个面包屑的类。
默认参数
$defaults = [ 'labels' => [], 'post_taxonomy' => [], 'show_on_front' => false, 'show_trail_end' => true, 'network' => false, 'before' => '', 'after' => '', 'container_tag' => 'nav', 'title_tag' => 'h2', 'list_tag' => 'ul', 'item_tag' => 'li', 'container_class' => 'breadcrumbs', 'title_class' => 'breadcrumbs__title', 'list_class' => 'breadcrumbs__trail', 'item_class' => 'breadcrumbs__crumb' ];
默认标签
标签用于各种WordPress不提供标题/标签的面包屑位置。
$defaults = [ 'title' => __( 'Browse:', 'hybrid-core' ), 'aria_label' => _x( 'Breadcrumbs', 'breadcrumbs aria label', 'hybrid-core' ), 'home' => __( 'Home', 'hybrid-core' ), 'error_404' => __( '404 Not Found', 'hybrid-core' ), 'archives' => __( 'Archives', 'hybrid-core' ), // Translators: %s is the search query. 'search' => __( 'Search results for: %s', 'hybrid-core' ), // Translators: %s is the page number. 'paged' => __( 'Page %s', 'hybrid-core' ), // Translators: %s is the page number. 'paged_comments' => __( 'Comment Page %s', 'hybrid-core' ), // Translators: Minute archive title. %s is the minute time format. 'archive_minute' => __( 'Minute %s', 'hybrid-core' ), // Translators: Weekly archive title. %s is the week date format. 'archive_week' => __( 'Week %s', 'hybrid-core' ), // "%s" is replaced with the translated date/time format. 'archive_minute_hour' => '%s', 'archive_hour' => '%s', 'archive_day' => '%s', 'archive_month' => '%s', 'archive_year' => '%s', ];
默认文章分类
默认情况下,没有注册文章分类。但是,如果网站的帖子永久链接结构设置为仅 %postname%
,则以下为默认设置。
$defaults = [ 'post' => 'category' ];
版权和许可
本项目许可协议为GNU GPL,版本2或更高。
2018-2019 © Justin Tadlock。