iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
Python

使用 Django 框架和 Wagtail,快速打造一個 CMS 網站系列 第 14

D14 - 網站導航欄 - 讓這些頁面都連結起來

  • 分享至 

  • xImage
  •  

接下來,我們做出可以連接首頁和其他添加的頁面,這個 page 會像 footer 一樣,會固定在每個頁面上。

首先,在的 base/templatetags/navigation_tags.py 文件中創建一個模板標籤:

from django import template

# import site:
from wagtail.models import Site

from base.models import FooterText

register = template.Library()

# ... keep the definition of get_footer_text and add the get_site_root template tag:
# 寫在前面的 get_footer_text 要保留
@register.simple_tag(takes_context=True)
def get_site_root(context):
    return Site.find_for_request(context["request"]).root_page

在前面的代碼中,你使用了 get_site_root 模板標籤來檢索你網站的根頁面,在這個例子中是你的 HomePage。

現在,創建 mysite/templates/includes/header.html 文件並添加以下內容:

{% load wagtailcore_tags navigation_tags %}

<header>
    {% get_site_root as site_root %}
    <nav>
        <p>
        <a href="{% pageurl site_root %}">Home</a> |
        {% for menuitem in site_root.get_children.live.in_menu %}
            <a href="{% pageurl menuitem %}">{{ menuitem.title }}</a>
        {% endfor %}
        </p>
    </nav>
</header>

在前面的模板中,你加載了 wagtailcore_tags 和 navigation_tags。有了這些標籤,你可以為你的 Wagtail 項目生成導航 menu。

{% get_site_root as site_root %} 檢索你的 HomePage 並將其賦值給變量 site_root。

<a href="{% pageurl site_root %}">Home</a> | 使用 pageurl 模板標籤和 site_root 作為參數創建指向你的 HomePage 的鏈接。它生成一個指向你的 HomePage 的鏈接,標籤為 Home,後面跟著一個管道符號 |,用來分隔 menu 項。

{% for menuitem in site_root.get_children.live.in_menu %} 是一個循環,遍歷你的 HomePage 的子頁面,這些子頁面是活躍的並且包括在 menu 中。

最後,通過修改你的 mysite/templates/base.html 文件,將你的頭部模板添加到你的基礎模板中:

<body class="{% block body_class %}{% endblock %}">
    {% wagtailuserbar %}

    {# Add your header template to your base template: #}
    {# 將 header 的 template 加在 base template #}
    {% include "includes/header.html" %}

    {% block content %}{% endblock %}

    {% include "includes/footer.html" %}

    {# Global javascript #}

    <script type="text/javascript" src="{% static 'js/mysite.js' %}"></script>

    {% block extra_js %}
    {# Override this in templates to add extra javascript #}
    {% endblock %}
</body>

將頁面添加到你的網站 menu

你可以通過以下方式將任何頂層頁面,如你的首頁、Blog 索引頁、作品集頁面和表單頁面添加到網站 menu 中:

  1. 前往你的管理介面。
  2. 前往任何頂層頁面。
  3. 點擊「推廣」。
  4. 勾選「在 menu 中顯示」選框。

在本教程的下一部分,我們將向你展示如何設計你的網站並改善其用戶體驗。


上一篇
D13 - 在 footer 加上可以被編輯的區塊
下一篇
D15 - 創造一個可填寫的表單 - 以聯絡用表單為例
系列文
使用 Django 框架和 Wagtail,快速打造一個 CMS 網站15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言