Пропустить

Как автоматически обновлять меню на WordPress

Divi: самая простая тема WordPress для использования

Divi: Лучшая тема WordPress всех времен!

Более Загрузка 600.000, Divi - самая популярная тема WordPress в мире. Он является полным, простым в использовании и поставляется с более чем бесплатными шаблонами 62. [Рекомендуется]

Когда система меню навигации была выпущена с WordPress 3.0, это стало одним из факторов, которые превратили WordPress из платформы для ведения блогов в CMS.

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

Но иногда вы не хотите на это полагаться. Если вы разрабатываете сайт для клиента, который будет добавлять страницы на свой сайт, маловероятно, что он обновит навигационное меню, когда он это делает или не обладает необходимыми навыками. Это где автоматизированное меню навигации становится полезным.

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

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

Что вам нужно для автоматизации WordPress меню навигации. Для того, чтобы отслеживать эту публикацию, вам необходимо:

  • Разработка или тестовая установка WordPress, с некоторыми добавленными страницами и подстраницами, и
  • Редактор кода.

Установка кода

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

Если вы работаете со сторонней темой, у которой нет скобок, вам нужно добавить код в тему. Не кодируйте ее непосредственно в тему: вместо этого создайте дочернюю тему и добавьте в нее свой код. Просто создайте дубликат файла шаблона темы из основной темы, которую вы хотите отредактировать, добавьте его в свою дочернюю тему и отредактируйте.

Первым шагом является создание плагина. Я создаю папку для своей папки «wp-content / plugins». Создание папки означает, что в будущем я могу добавить больше файлов к плагину, например, таблицу стилей или файлы включения.

Во-первых, вы должны добавить начальный код к вашему плагину в комментариях, чтобы сообщить WordPress, что это такое:

<? php / ** * Имя плагина: Плагин * Плагин URI: http://blogpascher.com * Описание: Плагин WordPress * Версия: 1.0 * Автор: Herve * URI автора: http://blogpascher.com * * /

Теперь активировать плагин.

Затем, если вы используете дочернюю тему, настройте ее. Я использую тему «Двадцать семнадцать» - вот моя таблица стилей:

Легко создайте свой сайт с Elementor

Elementor позволяет легко создать любой дизайн сайта с профессиональным дизайном. Прекратите платить дорого за то, что вы можете сделать сами. [Free]

<? Php / ** * Plugin Имя: * Plugin Plugin URI: http://blogpascher.com * Описание: * WordPress Plugin Версия: 1.0 * Автор: Эрве * Автор URI: http://blogpascher.com * / @ импорт URL ( "../twentyseventeen/style.css");

Как только вы это сделаете, если на вашем сайте еще нет страниц, добавьте несколько. Они должны иметь многоуровневую структуру. Вот как выглядят мои поддельные страницы:

Теперь давайте начнем добавлять код в плагин.

Создание функции для иерархического отображения всех страниц

Мы будем использовать функцию « wp_list_pages () Чтобы восстановить все страницы и перечислить их со ссылками. Но сначала нам нужно определить некоторые аргументы для этого. Начните с создания вашей функции и добавьте эти аргументы:

wpmu_list_pages () {wpmu_list_pages () {$ args = array ('depth' => 2); }

Аргументы очень просты - есть только один уровень, который мы хотим сделать. Настройка «2» означает, что страницы верхнего уровня и их подстраницы будут отображаться, но не более.

Теперь давайте добавим функцию «wp_list_pages ()» после аргументов:

wp_list_pages ($ арг);

Вот полная функция:

Вы ищете лучшие темы и плагины WordPress?

Загрузите лучшие плагины и темы WordPress на Envato и легко создайте свой сайт. Уже больше, чем 49.720.000. [ЭКСКЛЮЗИВ]

wpmu_list_pages () {wpmu_list_pages () {$ args = array ('depth' => 2); wp_list_pages ($ args); }

Добавление функции в тему

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

Начните с копирования файла заголовка в вашу дочернюю тему и откройте его. В «Двадцать семнадцатом» код меню навигации находится в «templates-parts / navigation / navigation-top.php», что означает, что мне нужно добавить копию этого файла в то же место в моей дочерней теме. В вашей теме это может быть сам файл header.php, который необходимо скопировать.

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

<? php wp_nav_menu (array (<? php wp_nav_menu (array ('theme_location' => 'top', 'menu_id' => 'top-menu',));?>

Измените код меню навигации, чтобы добавить новую функцию с существующим кодом в выражении "else {}":

<? php if (function_exists ('wpmu_list_pages')) {wpmu_list_pages (); } else {wp_nav_menu (array ('theme_location' => 'top', 'menu_id' => 'top-menu',)); }?>

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

Теперь посмотрите мой сайт:

Ссылки появляются, но есть некоторые проблемы. Я не хочу видеть "Страницы" вверху (по умолчанию для функции wp_list_pages () ) и я хочу заказать страницы более эффективно. Вы увидите, что домашняя страница находится в середине списка, что не идеально.

Улучшить функцию

Давайте вернемся к коду плагина и адаптируем его, чтобы исправить эти проблемы.

Найдите аргументы, для которых вы уже определились wp_list_pages ():

$ Args = массив ( 'глубина' => 2);

И отредактируйте это:

$ Args = массив ($ арг = массив ( 'глубина' => '2 title_li' => '<h3>'. __ ( 'Menu', 'т.у.т.'). '</ H3>', «sort_column = > меню заказ «);

Это добавляет два дополнительных аргумента:

  • Разметка перед списком, который сейчас говорит МЕНЮ Вместо Страницы .
  • Порядок, в котором отображаются страницы.

Вы должны вернуться к экранам редактирования своих страниц и установить порядок страниц для каждого из них. Присвойте своей домашней странице значение «0», а остальные страницы верхнего уровня больше этих.

Легко создайте свой интернет-магазин

Загрузите бесплатные WooCommerce, лучшие плагины для электронной коммерции, чтобы продавать свои физические и цифровые продукты в WordPress. [Рекомендуется]

Теперь, когда вы отображаете меню, оно будет выглядеть так:

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

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

Эта статья содержит комментарии 2
  1. Привет,

    Спасибо за статью

    Моя проблема заключается в том, что я не совсем понимаю процедуру, описанную в части «Добавление функции в тему», должен ли я напрямую изменить файл «navigation-top.php»? Должен ли я дублировать его в моей дочерней теме? Должен ли я изменить указанную часть и добавить ее в файл function.php?
    Или другое решение x)
    Спасибо, что просветили меня по этому вопросу

    PS: ссылка github приводит нас к пустой директории

    1. Добрый вечер, это действительно дублировать файл в дочерней теме. WordPress делает все остальное. Поскольку он попытается проверить, существует ли файл в дочерней теме и, таким образом, загрузит файл родительской темы, если он не существует.

Оставить комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

Этот сайт использует Akismet для уменьшения нежелательности. Узнайте больше о том, как используются ваши комментарии.

Вверх
19 акции
доля14
чирикать3
Регистрация2