youandmedigital/craft-breadcrumb

该包已被废弃且不再维护。作者建议使用youandmedigital/breadcrumb包。

基于您的URL段生成简单的面包屑

1.0.1 2019-02-28 09:56 UTC

This package is auto-updated.

Last update: 2019-02-28 12:46:22 UTC


README

Craft Breadcrumb

Craft CMS 3.1的面包屑插件

基于您的URL段生成简单的面包屑。

要求

此插件需要Craft CMS 3.1或更高版本。

安装

要安装插件,请按照以下说明操作。

  1. 打开您的终端并转到您的Craft项目

     cd /path/to/project
    
  2. 然后告诉Composer加载插件

     composer require youandmedigital/breadcrumb
    
  3. 在控制面板中,转到设置→插件,并点击“安装”按钮以安装面包屑。

面包屑概述

基于您的URL段生成简单的面包屑。非常适合具有描述性和意义的URL的网站。

如果您的网站URL看起来像这样

https://mysite.local/posts/categories/example-category

面包屑将生成以下数组

array (size=4)
  0 =>
    array (size=3)
      'title' => string 'Home' (length=4)
      'url' => string 'https://mysite.local' (length=18)
      'position' => int 1
  1 =>
    array (size=3)
      'title' => string 'Posts' (length=5)
      'url' => string 'https://mysite.local/posts' (length=24)
      'position' => int 2
  2 =>
    array (size=3)
      'title' => string 'Categories' (length=10)
      'url' => string 'https://mysite.local/posts/categories' (length=35)
      'position' => int 3
  3 =>
    array (size=3)
      'title' => string 'Example Category' (length=11)
      'url' => string 'https://mysite.local/posts/categories/example-category' (length=52)
      'position' => int 4

有了这个数组,您现在可以使用Twig来定义外观并应用额外的逻辑。以下是一个基本示例

{% set breadcrumb = craft.breadcrumb.config %}

{% if breadcrumb %}
<div class="c-breadcrumb">
    <ol class="c-breadcrumb__items">
        {% for crumb in breadcrumb  %}
            {% if loop.last %}
            <li class="c-breadcrumb__item">
                <span>{{ crumb.title }}</span>
            </li>
            {% else %}
            <li class="c-breadcrumb__item">
                <a class="c-breadcrumb__link" href="{{ crumb.url }}">
                    <span>{{ crumb.title }}</span>
                </a>
            </li>
            {% endif %}
        {% endfor %}
    </ol>
</div>
{% endif %}

此示例使用Twig循环变量来设置最后一个面包屑项。

配置面包屑

  • homeTitle (字符串,可选,默认 'Home'):自定义面包屑第一个项目的标题

  • homeUrl (字符串,可选,默认 '@baseUrl'):为面包屑的第一个项目设置自定义URL

  • skipUrlSegment (整数,可选,默认 'null'):从面包屑数组中删除一个段。例如,如果您有URL https://mysite.local/posts/categories/example-category,并希望从数组中删除categories,则输入3作为值。

  • customFieldHandleEntryId (整数,可选,默认 '0'):为customFieldHandle必需。无需自定义。

  • customFieldHandle (字符串,可选,默认 'null'):指定包含自定义标题的字段。这仅适用于面包屑数组中的最后一个项。需要customFieldHandleEntryId才能工作。

  • limit (整数,可选,默认 'null'):限制面包屑数组中返回的结果数量。

示例配置

{# If entry variable is empty, try category, tag and finally return null #}
{# This works with customFieldHandleEntryId and customFieldHandle #}
{% set entry = entry ?? category ?? tag ?? null %}

{# Breadcrumb settings array #}
{% set settings =
    {
        homeTitle: 'Home',
        homeUrl: 'https://example.com',
        skipUrlSegment: 1,
        customFieldHandleEntryId: entry.id,
        customFieldHandle: 'myCustomField',
        limit: '3'
    }
%}

{# Settings array passed into the Breadcrumb config #}
{% set breadcrumb = craft.breadcrumb.config(settings) %}

面包屑适合我吗?

我没有为URL中的每个段设置模板

如果您有一个URL如https://mysite.local/posts/categories/example-category,面包屑将基于URL中的每个段生成一个数组。这意味着如果您没有为https://mysite.local/posts/categories设置模板或重定向,链接将返回404并创建糟糕的用户体验。

我没有使用友好的URL

如果你的URL看起来像https://mysite.local/c/12/random/post-title,那么面包屑功能不适用于你。

我想使用字段来显示自定义标题

如果你需要从自定义字段中提取数据以生成每个标题,那么面包屑功能不适用于你。标题是从URL中生成的。你只能自定义最后一个URL段。

我有一个多语言网站设置

如果你的网站是多语言的,面包屑功能会在面包屑中添加语言段。这可以通过与skipUrlSegmenthomeTitlehomeUrl一起工作来修复。

面包屑路线图

一些要做的事情以及潜在功能的想法

  • 发布它...

欢迎PR & FR!

You & Me Digital提供