jjgrainger/wp-crumbs

简单的Wordpress面包屑导航。

v1.0.2 2015-01-22 13:24 UTC

This package is auto-updated.

Last update: 2024-09-18 18:33:40 UTC


README

简单的Wordpress面包屑导航

Build Status Total Downloads Latest Stable Version License

要求

安装

$ composer require jjgrainger/wp-crumbs

用法

基本用法

使用 the_crumbs 在模板中显示面包屑。

the_crumbs();

选项

可以传递一个可选的参数数组来修改面包屑输出。每个选项的默认值如下。

示例
the_crumbs( [
    'home'      => 'Home',   // Title for the Home (front page) link
    'blog'      => 'Blog',   // Title for the blog home page
    'seperator' => '/',      // Seperator to use between each crumb (string or false)
    'class'     => 'crumbs', // The class(es) applied to the wrapper element ('crumbs', 'nav crumbs')
    'element'   => 'nav'     // The HTML element to use (div, nav, ol, ul)
] );
输出
<nav class="crumbs">
    <a href="http://site.com/">Home</a>
    <span class="sep">/</span>
    <a href="http://site.com/blog/">Blog</a>
    <span class="sep">/</span>
    <span>Single Post Title</a>
</nav>

高级用法

get_crumbs()

使用 get_crumbs() 获取一个包含面包屑的数组。每个面包屑都有一个 标题URL

示例
$breadcrumbs = get_crumbs();

print_r( $breadcrumbs );
输出
Array(
    [0] => Array(
        [title] => "Home"
        [url] => "http://site.com/"
    )
    [1] => Array(
        [title] => "Blog"
        [url] => "http://site.com/blog/"
    )
    [2] => Array(
        [title] => "My First Post"
        [url] => false
    )
)

您可以修改返回的数组,或创建一个函数来生成所需的输出。

get_crumbs 接受与 the_crumbs 相同的参数。

过滤器

您可以使用 get_crumbs 的过滤器进一步修改面包屑数组。这也会影响 the_crumbs 的输出。

示例
// Example: modify title for a custom post type
function modify_crumbs( $crumbs ) {
    // if on events archive change title to shows
    if ( is_post_type_archive( 'event' ) || is_singular( 'event' ) ) {
        for ( $i = 0; $i < count($crumbs); $i++ ) {
            if ( $crumbs[$i]['title'] === 'Events' ) {
                $crumbs[$i]['title'] = "Shows";
            }
        }
    }

    return $crumbs;
}

add_filter( 'get_crumbs', 'modify_crumbs' );

array_insert()

array_insert() 是一个函数,允许您在数组的特定索引处插入一个新元素。您可以在这里看到它的示例

当修改面包屑路径时,您可以在特定位置添加新的面包屑。

示例
// Example: add post type archive on taxonomy archive page
function modify_crumbs( $crumbs ) {
    // if on the events category archive page
    if ( is_tax( 'event-categories' ) ) {
        // create a new crumb
        $crumb = [
            'title' => "Shows",
            'url'   => site_url( '/shows' ),
        ];

        // add the new crumb at the index of 1
        $crumbs = array_insert( $crumbs, $crumb, 1 );
    }

    return $crumbs;
}

add_filter( 'get_crumbs', 'modify_crumbs' );

注意

  • 许可协议:MIT License
  • 维护协议:Semantic Versioning Guide

作者

Joe Grainger