X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Как добавить кастомные страницы в меню
nonamez
nonamez
Topic Starter сообщение 28.1.2016, 23:17; Ответить: nonamez
Сообщение #1


Новичок
*

Группа: User
Сообщений: 33
Регистрация: 18.1.2016
Поблагодарили: 8 раз
Репутация:   0  


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

Код
$category = wp_insert_term($name, 'gp_hubs');

foreach ($sub_categories as $sub_cat) {
   wp_insert_term($sub_cat, 'gp_hubs', ['parent' => $category['term_id']]);
}


Каждую из этих страниц мне нужно добавить в верхнее меню. Пробовал вот так:

Код
$category = wp_insert_term($name, 'gp_hubs');

foreach ($sub_categories as $sub_cat) {
    $page = wp_insert_term($sub_cat, 'gp_hubs', ['parent' => $category['term_id']]);

    wp_update_nav_menu_item(self::MENU_ID, 0,  array(
        'menu-item-object' => 'page',
        'menu-item-parent-id' => $parent_menu_id,
        'menu-item-object-id' => $page['term_id'],
        'menu-item-type' => 'gp_hubs',
        'menu-item-status' => 'publish'
        )
    );
}


Проблема в том что в меню вставляются пустые ссылки (без тайтлов и урлов). Если вставлять через админку то всё ок:

Прикрепленное изображение


Страниц довольно таки много, порядка 200 и каждую вставлять ручками через админку довольно таки гемороно...
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Gerga
Gerga
сообщение 29.1.2016, 0:47; Ответить: Gerga
Сообщение #2


Участник
***

Группа: User
Сообщений: 247
Регистрация: 15.2.2013
Из: Одесса
Поблагодарили: 168 раз
Репутация:   43  


nonamez, что-то типа этого должно получиться:
Код
$category = wp_insert_term($name, 'gp_hubs');

foreach ($sub_categories as $sub_cat) {
    $page = wp_insert_term($sub_cat, 'gp_hubs', array('parent' => $category['term_id']));
    $term_id = (int)$page['term_id'];
    wp_update_nav_menu_item(self::MENU_ID, 0,  array(
        'menu-item-object' => 'page',
        'menu-item-parent-id' => $parent_menu_id,
        'menu-item-object-id' => $term_id,
        'menu-item-url' => get_term_link( $term_id, 'gp_hubs' ),
        'menu-item-attr-title' => esc_attr( $sub_cat ),
        'menu-item-type' => 'gp_hubs',
        'menu-item-status' => 'publish'
        )
    );
}

Добавил menu-item-url и menu-item-attr-title, где menu-item-url - ссылка элемента меню, а menu-item-attr-title соответственно является атрибутом title для ссылки.

Документация

Сообщение отредактировал Gerga - 29.1.2016, 0:48


--------------------
Разработка на WordPress -> Верстка/Натяжка/Добавление функционала в шаблонах на WP


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
nonamez
nonamez
Topic Starter сообщение 29.1.2016, 11:07; Ответить: nonamez
Сообщение #3


Новичок
*

Группа: User
Сообщений: 33
Регистрация: 18.1.2016
Поблагодарили: 8 раз
Репутация:   0  


Gerga, оно как бэ да. Но тут ты добавляешь статичный линк. Если вдруг в будущем изменится имя добавленного пейджа то ведь в меню будет старая ссылка...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Gerga
Gerga
сообщение 29.1.2016, 13:11; Ответить: Gerga
Сообщение #4


Участник
***

Группа: User
Сообщений: 247
Регистрация: 15.2.2013
Из: Одесса
Поблагодарили: 168 раз
Репутация:   43  


nonamez, значит так:
Код
$category = wp_insert_term($name, 'gp_hubs');

foreach ($sub_categories as $sub_cat) {
    $page = wp_insert_term($sub_cat, 'gp_hubs', array('parent' => $category['term_id']));
    $term_id = (int)$page['term_id'];
    wp_update_nav_menu_item(self::MENU_ID, 0,  array(
        'menu-item-title' => $sub_cat,
        'menu-item-attr-title' => esc_attr( $sub_cat ),
        'menu-item-object-id' => $term_id,
        'menu-item-db-id' => 0,
        'menu-item-object' => 'gp_hubs',
        'menu-item-parent-id' => 0,
        'menu-item-type' => 'taxonomy',
        'menu-item-url' => get_term_link( $term_id, 'gp_hubs' ),
        'menu-item-status' => 'publish',        
    ));
}


--------------------
Разработка на WordPress -> Верстка/Натяжка/Добавление функционала в шаблонах на WP


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
nonamez
nonamez
Topic Starter сообщение 29.1.2016, 20:48; Ответить: nonamez
Сообщение #5


Новичок
*

Группа: User
Сообщений: 33
Регистрация: 18.1.2016
Поблагодарили: 8 раз
Репутация:   0  


Цитата(Gerga @ 29.1.2016, 13:11) *
        'menu-item-url' => get_term_link( $term_id, 'gp_hubs' ),

Но ведь вот эта запись - она же статична получается? Или при изменение основной записи вордпресс её поменяет?

Да, в целос спасибо - помог очень.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Gerga
Gerga
сообщение 29.1.2016, 23:43; Ответить: Gerga
Сообщение #6


Участник
***

Группа: User
Сообщений: 247
Регистрация: 15.2.2013
Из: Одесса
Поблагодарили: 168 раз
Репутация:   43  


Цитата(nonamez @ 29.1.2016, 19:48) *
Или при изменение основной записи вордпресс её поменяет?

совершенно верно :)


--------------------
Разработка на WordPress -> Верстка/Натяжка/Добавление функционала в шаблонах на WP
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Маленький кейс как сделать много почтовых ящиков в Gmail
Один аккаунт = много ящиков
11 PostBrigada 741 Сегодня, 2:50
автор: kstnews
Открытая тема (нет новых ответов) Как мошенники зарабатывают на прямых трансляциях в Instagram
Не ждите порно в инстаграм, его нет
12 PostBrigada 1356 16.12.2017, 23:00
автор: PostBrigada
Открытая тема (нет новых ответов) Как сейчас зарегистрировать Яндекс кошелек за пределами России?
4 metvekot 410 16.12.2017, 19:04
автор: metvekot
Открытая тема (нет новых ответов) Как поднять доверие к сайту?
5 fair_exchange 408 16.12.2017, 18:33
автор: genjnat
Открытая тема (нет новых ответов) Редирект только главной страницы
301 редирект
2 Gera 534 15.12.2017, 13:50
автор: Gera


 



RSS Текстовая версия Сейчас: 18.12.2017, 9:16
Дизайн