Timber Twig добавить класс в пункт меню предка, когда страница не в меню - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть меню с 2 подуровнями: / news / current-news / - на уровне «current-news» верхний элемент списка «news» правильно выбирает «current_page_parent» учебный класс. Пунктов на этой странице слишком много, чтобы поместить их в качестве третьего уровня меню. Это трейлеры с нумерацией страниц. Когда вы нажимаете на один из этих тизеров, URL-адрес будет / news / current-news / item-title - на этой странице я хочу, чтобы основной элемент «новости» в меню все еще выбирал «current_page_parent» 'класс - это возможно, так как это ребенок в URL, но не в структуре меню? Моя веточка для меню:

{% if menu %}
<ul class="nav-main">
{% for item in menu.get_items %}
  <li class="nav-main-item{{ item.classes|join(' ') }}" role="menuitem"
  {% if item.children %}role="menuitem" aria-haspopup="true" aria-expanded="false" tabindex="0"{% endif %}>
    <a class="nav-main-link" href="{{ item.get_link }}">{{ item.title }}</a>
    {% if item.get_children %}
      <ul class="nav-drop">
      {% for child in item.get_children %}
        <li class="nav-drop-item {{ child.classes | join(' ') }}">
          <a class="nav-drop-link" href="{{ child.get_link }}">
            <div class="menu-item-title">{{ child.title }}</div> 
            <div class="menu-item-description">{{ child.post_content }}</div>
          </a>
        </li>
      {% endfor %}
      </ul>
    {% endif %}
  </li>
{% endfor %}</ul>{% endif %}

и из шаблона php страницы:

<?php
/**
 * Template Name: Blog Landing Page
 * Template Post Type: page
 */

global $paged;
  if (!isset($paged) || !$paged){
      $paged = 1;
  }

 $context = Timber::context();

$timber_post     = new Timber\Post();
$context['post'] = $timber_post;

$newsArgs   =   array(
    'post_type'     =>  'post',
  'post_status'     => 'publish',
  'posts_per_page'  =>  6,
  'paged'           => $paged,
    'orderby'       =>  array(
    'date'          =>  'DESC'
));
$context['news'] = new Timber\PostQuery($newsArgs);

Timber::render( 'layouts/layout-blog.twig', $context );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...