@Jockey

Как выводить подпись к подстранице в Wordpress?

Добрый день, у одной страницы сайта, есть 3 подстраницы, допустим "Первая" "Вторая" "Третья" и под каждой из них должна быть индивидуальная надпись, как это реализовать?

Сама эта менюшка с подстраницами выводится с помощью функуции: (ul + функция внутри)

<ul class="about__menu menu-hover d-flex justify-content-around">
                            <?php wp_list_pages(array (
                                'child_of' => get_the_ID(),
                                'title_li' => 0
                                )
                            ); ?> 
                        </ul>

А названия подстраниц указаны в WP в самих заголовках подстраниц.

Видел как некоторые вставляют span прямо после заголовка в wp в ввиде: Заголовок: Первая<span>подпись</span> и потом через ... ul li a span (задают значения)
Но мне кажется это как то не правильно, ведь если подпись будет длинная, а в заголовке предупреждение, что не более 60 символов...

Подскажите как это делать правильно? Спасибо.
  • Вопрос задан
  • 26 просмотров
Решения вопроса 1
@weart
remove_filter( 'nav_menu_description', 'strip_tags' ); // делаем возможность использовать html  в описании


function my_plugin_wp_setup_nav_menu_item( $menu_item ) {
	if ( isset( $menu_item->post_type ) ) {
		if ( 'nav_menu_item' == $menu_item->post_type ) {
			$menu_item->description = apply_filters( 'nav_menu_description', $menu_item->post_content );
		}
	}
	return $menu_item;
}
add_filter( 'wp_setup_nav_menu_item', 'my_plugin_wp_setup_nav_menu_item' ); //  втыкаем описание


function nav_item_description( $item_output, $item, $depth, $args ) {
	if ( !empty( $item->description ) ) {
		$item_output = str_replace( $args->link_after . '</a>', '</a><div class="header__main-menu-item-description">' . $item->description . '</div>' . $args->link_after . '', $item_output );
	}
	return $item_output;
}
add_filter( 'walker_nav_menu_start_el', 'nav_item_description', 10, 4 ); // описание выводим в кастомном div вместо a


5c50447be5ce5496729882.png
Результат
5c5044e75951e455327310.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы