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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


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

Код
$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


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


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


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


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',        
    ));
}


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


Цитата(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


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

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

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Арбитражники, как ведете учет расходов и доходов?
12 Boymaster 1929 Вчера, 21:03
автор: MisterBit
Горячая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
29 freeax 4817 17.4.2024, 1:19
автор: sergio11
Открытая тема (нет новых ответов) Если в сайт с одними ключами, которые там долго, добавить новую рубрику с новыми ключами
2 Tutich 1235 16.4.2024, 8:27
автор: Tutich
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
148 adw-kupon.ru 19715 8.4.2024, 10:37
автор: Skyworker
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
18 uahomka 3109 5.4.2024, 5:53
автор: Skyworker


 



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