dashaluna
  • 0
Учитель

Добавить определенную категорию в определенное место в меню, которое использует wp_list_pages

  • 0

У меня есть главное меню, где я отображаю страницы. Все страницы имеют связанные подстраницы, однако в меню некоторые из них отображаются сами по себе без подстраниц, а некоторые отображаются с подменю в виде списка всех подстраниц. Страницы в меню сортируются в соответствии с указанным для них порядком меню. (Пожалуйста, смотрите мой код ниже).

Теперь я хотел бы добавить некоторые категории в определенное место в меню и не знаю, как это лучше сделать.

Можно ли это сделать с помощью wp_list_pages? Что мне нравится в моем коде, так это то, что всякий раз, когда добавляется подстраница для родительской страницы, которая запрограммирована для отображения всех подстраниц, вновь добавленная подстраница автоматически появляется в меню сайта. В отличие от использования функций Внешний вид->Меню, когда пользователю нужно будет добавить вновь созданную подстраницу в меню, прежде чем она появится на сайте.

Я мог бы легко усложнить это (!), И единственный способ сделать это — через функциональность Внешний вид-> Меню. Буду очень признателен за любую помощь и советы!

Вот код, который я использую для отображения страниц, некоторые со всеми подстраницами, а некоторые только на верхнем уровне.

//main nav: use wp_list_pages to display cirtain parent pages without any and with all child pages (a tree with parent)
$parents = array(5,7,17,61,19,25);
$children = array();
foreach($parents as $parent) {
  $child_pages = get_pages( "child_of=$parent" );
  if($child_pages){
    foreach($child_pages as $child_page){
      $children[] = $child_page->ID;
    }
  }
}
//add all the pages that need to be included without children
$parents = array_merge( (array)$parents, (array)array(31,23) );
//merge $parents and $children
$menu_pages = array_merge( (array)$parents, (array)$children );
$menu_pages_str = implode(",", $menu_pages); 
?> 

<ul class="menu wrap">
  <?php wp_list_pages( "sort_column=menu_order&title_li=&include=$menu_pages_str" ); ?>
</ul>
Share
  1. Я выбрал функциональность меню.

    • 0
  2. wp_list_pages имеет ограниченную функциональность, и было бы сложно внедрить категории в микс, не переписав саму функцию.

    Использование встроенной функциональности меню, вероятно, является лучшим способом, потому что вы можете, по крайней мере, установить отдельные классы элементов, что позволит вам создавать заголовки меню для ваших категорий верхнего уровня (с элементами заголовка, использующими класс «заголовок» или аналогичный).

    Вы также можете просто использовать функцию get_pages(), которая будет возвращать массив страниц, а не просто печатать их на странице. Это позволит вам добавить логику к отображению данных при переборе массива.

    • 0

Оставить ответ

You must login to add an answer.