홈페이지 및 기타 페이지 연결을 위한 사이트 메뉴 설정

이 튜토리얼 섹션에서는 홈페이지 및 추가할 다른 페이지에 연결하기 위한 사이트 메뉴를 만드는 방법을 배웁니다. 사이트 메뉴는 바닥글처럼 포트폴리오 웹사이트의 모든 페이지에 나타납니다.

base/templatetags/navigation_tags.py 파일에 템플릿 태그를 생성하여 시작합니다:

from django import template

# site 가져오기:
from wagtail.models import Site

from base.models import FooterText

register = template.Library()


# ... get_footer_text 정의를 유지하고 get_site_root 템플릿 태그를 추가합니다:
@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 %}"></a> |
        {% for menuitem in site_root.get_children.live.in_menu %}
            <a href="{% pageurl menuitem %}">{{ menuitem.title }}</a>
        {% endfor %}
        </p>
    </nav>
</header>

이전 템플릿에서 wagtailcore_tagsnavigation_tags 를 로드했습니다. 이러한 태그를 사용하여 Wagtail 프로젝트의 탐색 메뉴를 생성할 수 있습니다.

{% get_site_root as site_root %}HomePage 를 검색하여 site_root 변수에 할당합니다.

<a href="{% pageurl site_root %}">홈</a> |site_root 를 인수로 사용하여 pageurl 템플릿 태그를 사용하여 HomePage 에 대한 링크를 생성합니다. 이라는 레이블과 메뉴 항목을 구분하는 파이프 기호 | 가 있는 HomePage 에 대한 링크를 생성합니다.

{% for menuitem in site_root.get_children.live.in_menu %} 는 라이브 상태이고 메뉴에 포함된 HomePage 의 자식 페이지를 반복하는 루프입니다.

마지막으로 mysite/templates/base.html 파일을 수정하여 header 템플릿을 base 템플릿에 추가합니다:

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

    {# header 템플릿을 base 템플릿에 추가합니다: #}
    {% include "includes/header.html" %}

    {% block content %}{% endblock %}

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

    {# 전역 자바스크립트 #}

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

    {% block extra_js %}
    {# 추가 자바스크립트를 추가하려면 템플릿에서 이것을 재정의하십시오 #}
    {% endblock %}
</body>

이제 서버를 다시 시작하고 홈페이지를 다시 로드하면 으로 레이블이 지정된 홈페이지 링크가 있는 사이트 메뉴가 표시됩니다.

사이트 메뉴에 페이지 추가

홈 페이지와 같은 최상위 페이지, 블로그 인덱스 페이지, 포트폴리오 페이지 및 폼 페이지를 다음을 수행하여 사이트 메뉴에 추가할 수 있습니다:

  1. 관리 인터페이스로 이동합니다.

  2. 최상위 페이지로 이동합니다.

  3. 홍보를 클릭합니다.

  4. 메뉴에 표시 확인란을 선택합니다.

이 튜토리얼의 다음 섹션에서는 사이트 스타일을 지정하고 사용자 경험을 개선하는 방법을 보여줍니다.