Робимо динамічне меню в wordpress

Доброго вам дня.

Нещодавно в одному невеликому проекті на WordPress мені знадобилося динамічно змінювати пункти меню.
Трохи погуглити я не отримав того варіанту, на який розраховував - все варіант були або дико незручні, або губився потрібний функціонал, а головне - можливість все так-же редагувати меню з адмін-панелі.

Варто відзначити, що з WP я працюю

2 місяці, деяких аспектів, я звичайно ж, ще не знаю, але гугленіямі я прийшов до функції wp_update_nav_menu_item (). якої, чомусь, не виявилося в документації, але вона виявилася як-раз тим, що потрібно.

Функція розташована в /wp-includes/nav-menu.php і приймає 3 параметра - $ menu_id. $ Menu_item_db_id і $ menu_item_data.

Давайте розглянемо кожен параметр по-окремо:
$ Menu_id - integer - ідентифікатор меню. Коли ви створюєте нове меню (точніше сказати реєструєте) в своєму functions.php, то кожному меню присвоюється ідентифікатор.

$ Menu_item_db_id - integer - коли ви створюєте елементи меню, то кожному присвоюється ідентифікатор і ідентифікатор в базі даних (зазвичай вони збігаються). Якщо цей параметр встановити 0, то функція создат новий елемент, а не оновить существющій.

$ Menu_item_data - array - масив даних для елемента, який ви збираєтеся оновити або створити.
Вомзожние параметри:

  • menu-item-db-id
  • menu-item-object-id
  • menu-item-object
  • menu-item-parent-id
  • menu-item-position
  • menu-item-type
  • menu-item-title
  • menu-item-url
  • menu-item-description
  • menu-item-attr-title
  • menu-item-target
  • menu-item-classes
  • menu-item-xfn
  • menu-item-status

Думаю, з назв, зрозуміло який за що відповідає.

Після виконання функція повертає false у разі невдачі, або int з ID елемента меню (?) Якщо все пройшло успішно.

Далі справа за малим - ставимо стрілялки на цю функцію і після того, як в який-небудь з дочірніх рубрик з'явиться хоча-б один пост, вона буде автоматично додана в меню, АЛЕ, відразу там не з'явиться. Це виявилося для мене приємний плюсом. За замовчуванням адміністратору потрібно буде підтвердити наявність цього елемента в меню, після чого воно буде прийнято до загального списку.

Дякуємо за увагу.
Можливо для людей, які давно працюють з WP я не показав нічого нового, але для новачків, як я, це буде корисно знати.

Схожі статті