themehybrid / 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 插件的形式推出。[http://justintadlock.com/archives/2009/04/05/breadcrumb-trail-wordpress-plugin](http://justintadlock.com/archives/2009/04/05/breadcrumb-trail-wordpress-plugin)。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。