youandmedigital / craft-breadcrumb
This package is auto-updated.
Last update: 2019-02-28 12:46:22 UTC
README
Craft CMS 3.1的面包屑插件
基于您的URL段生成简单的面包屑。
要求
此插件需要Craft CMS 3.1或更高版本。
安装
要安装插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目
cd /path/to/project
-
然后告诉Composer加载插件
composer require youandmedigital/breadcrumb
-
在控制面板中,转到设置→插件,并点击“安装”按钮以安装面包屑。
面包屑概述
基于您的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')
:从面包屑数组中删除一个段。例如,如果您有URLhttps://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段。
我有一个多语言网站设置
如果你的网站是多语言的,面包屑功能会在面包屑中添加语言段。这可以通过与skipUrlSegment
、homeTitle
和homeUrl
一起工作来修复。
面包屑路线图
一些要做的事情以及潜在功能的想法
- 发布它...
欢迎PR & FR!