Ответы в темах

Просмотр 15 ответов — с 16 по 30 (всего 32)
  • Вот попробовал вставить по аналогии:

    Верхний код править не нужно:)

    Добавьте этот код в файл функций (сразу после волкера), чтобы всё в одном месте было.

    // Добавляем атрибут uk-icon к элементу меню (тег a), который содержит подменю
    	add_filter( 'nav_menu_link_attributes', 'add_class_to_items_link', 10, 3 );
    	function add_class_to_items_link( $atts, $item, $args ) {
    		$hasChildren = ( in_array('menu-item-has-children', $item->classes) );
    		if ($hasChildren) {
    			$atts['uk-icon'] = 'icon: chevron-down';
    		}
    		return $atts;
    	}
    	
    	// Добавляем класс uk-active к активному элементу меню (тег li)
    	add_filter( 'nav_menu_css_class' , 'special_nav_class' , 10 , 2 );
    	function special_nav_class ( $classes, $item ) {
    		if ( in_array('current-page-ancestor', $classes) || in_array('current-menu-item', $classes) ) {
    		  $classes[] = 'uk-active ';
    		}
    		return $classes;
    	}

    Должно так получится:

    http://prntscr.com/f2vsn9

    Проверьте, у меня работает.

    • Ответ изменён 7 лет, 7 месяцев назад пользователем Satico.

    подскажите, то что у меня в шаблоне нет файла category.php это нормально?

    Вполне. Это просто означает, что автор темы не создал такой файл, а значит все архивные страницы, включая рубрики, выводятся с помощью файла archive.php

    Если и этого файла нет (но это вряд ли), значит смотрите index.php

    mazletop,

    Откатите всё назад до исходного состояния (до регистрации меню). Все предыдущие созданные вами «волкеры» удалите. Добавьте в файл функций:

    
    /* Кастомизация выпадающего меню с классами Uikit */
    class Satico_Dropdown_Walker_Nav_Menu extends Walker_Nav_Menu {
    		function start_lvl( &$output, $depth = 0, $args = array() ) {
    			$indent = str_repeat( "\t", $depth );
    			$output .= "\n$indent<div class=\"uk-navbar-dropdown\"><ul class=\"uk-nav uk-navbar-dropdown-nav sub-menu\">\n";
    		}
    		function end_lvl( &$output, $depth = 0, $args = array() ) {
    		  $indent = str_repeat( "\t", $depth );
    		  $output .= "$indent</ul></div>\n";
    		}
    	}

    В файле header при вызове функции wp_nav_menu в конце добавляете новую строку (новый элемент массива):

    'theme_location' => 'uk-navbar-nav', 
    'depth' => 0,
    'menu_class' => 'uk-navbar-nav',
    'container' => false, // эта строка должна заканчиваться запятой!
    'walker' => new Satico_Dropdown_Walker_Nav_Menu()

    На выходе должно получится:

    http://prntscr.com/f2u4af

    http://prnt.sc/f2u6g7

    Пробуйте.

    • Ответ изменён 7 лет, 7 месяцев назад пользователем Satico.

    mazletop,

    О боги, меня поняли))) О чудо!
    Да, все абсолютно верно! Точнее не бывает!

    Правильно заданный вопрос — это уже половина успеха 🙂 Сейчас приведу в порядок код и выложу. Будет добавлять и обертку и 2 класса в во вложенный ul.

    SeVlad, :))

    mazletop, вам действительно стоило бы с самого начала детально объяснить, что есть, и что хотите получить на выходе.

    Если правильно понимаю: фреймворк создает для вложенного меню свою обертку и свои классы для ul. К этим классам привязаны стили для выпадающего меню в файле CSS.

    Но когда вы регистрируете меню стандартным способом, обертка и стили у подменю не добавляются, из-за чего к подменю не применяются необходимые стили. На скрине в первом сообщении это видно — подменю отображается криво, у него даже маркеры списка появились.

    Я правильно подвела итог двух исписанных страниц текста? 🙂

    • Ответ изменён 7 лет, 7 месяцев назад пользователем Satico.

    Может и существуют, если где-то какой-то человек захотел сделать такую же структуру как у вас, придумал её, реализовал, а потом от чистого сердца написал подробную инструкцию и выложил в интернете. Не знаю.

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

    Я хочу нажать на рубрику «Еда» увидеть в ней категорию «Бутерброд» и нажав на «Бутерброд» получить список записей этой рубрики.

    О, тогда вам ещё нужно менять / создавать отображение некоторых архивных странниц. Готового решения нет, если не считать различные Page Builder, но они обычно работают с типом записей «page», максимум «single»… а чтобы они с рубриками работали… таких не знаю. В общем, ручная настройка и допиливание в любом случае нужны.

    Стандартными средствами — нет. Вам нужен плагин для создания и управлениями произвольными полями, и человек, который их создаст, закрепит за ними существующую разметку, а контент (и возможность его редактирования) перенесет из шаблона в редактор.

    Рекомендую Advanced Custom Fields, отличный инструмент.

    Как мне сделать так, что-бы при нажатии на рубрику, я видел эту рубрику, а не записи во всех рубриках ниже?

    А что вы вкладываете в словосочетание «видел эту рубрику»? На архивной странице основной (верхней) рубрики Вордпресс всегда отображает записи всех вложенных рубрик. Для изменения поведения нужно довольно сильно менять цикл вывода записей в зависимости от «типа» рубрики — дочерняя или родительская.

    mazletop, стили в админке можно задать только пунктам меню, в чём вы уже успели убедиться.

    Насколько поняла из ваших слов, ВП просто не дает втиснуть свою div обертку для выпадающего меню. Для «внешнего меню» — это пожалуйста, для «внутреннего» только ul и всё. Мне кажется, он и не даст вам это сделать, так как для него это два разных типа меню, если хотите… причем второй с обрезанным, так сказать, «функционалом».

    Вам 2 раза задали вопрос, но вы так внятно на него не ответили. Зачем вам понадобилась своя обертка для выпадающего меню? Зачем вам туда втискивать свои классы? Вы можете ответить на этот простой вопрос? Вы показали текущую структуру меню и идеальную (которую бы хотели получить).

    Вам недостаточно для подменю его родного класса: sub-menu

    Вы хотите навесить на этот элемент ещё 2 своих класса: uk-nav и uk-navbar-dropdown-nav. Плюс вам ещё позарез понадобилась дополнительная обертка с классом uk-navbar-dropdown.

    Барабанная дробь: ЗАЧЕМ?

    Какую цель вы пытаетесь достичь, устраивая себе такие сложности? Может есть другой способ решить проблему. Или вам нужна своя идеальная структура ради структуры?

    P.S. Попробуйте добавить фильтр в файл функций:

    Это вложенный див не создаст, но позволит добавить 2 нужных класса к вложенному списку.

    function new_submenu_class($menu) {    
        $menu = preg_replace('/ class="sub-menu"/','/ class="yourclass" /',$menu);        
        return $menu;      
    }
    add_filter('wp_nav_menu','new_submenu_class'); 
    • Ответ изменён 7 лет, 7 месяцев назад пользователем Satico.
    • Ответ изменён 7 лет, 7 месяцев назад пользователем Satico.

    Здравствуйте, с последними обновлениями (…)

    Какими ещё обновлениями? Конкретней выражайтесь, что было обновлено: шаблон, движок, плагин Woocommerce, или?

    Подскажите пожалуйста как убрать это окошко, чтобы карточки товаров лежали на фоне странице , а не в окошке, и убрать эту лесенку ??????

    Чтобы убрать лесенку прямо сейчас: уменьшите название карточки «Зеркало LED подств..» Заголовок тянется дальше и растягивает ширину карточки, из-за чего все карточки не вмешаются в контейнер по горизонтали и образуют лесенку.

    Чтобы убрать лесенку и сохранить возможность делать длинные названия у товара: нужно править код CSS.

    Чтобы убрать окошки (на самом деле это тени): нужно сделать откат обновления, либо переопределить стили в CSS.

    • Ответ изменён 7 лет, 7 месяцев назад пользователем Satico.
    • Ответ изменён 7 лет, 7 месяцев назад пользователем Satico.

    nata487, «подсказать» вряд ли получится, потому что это нужно взять и сделать. Вот здесь есть информация о том, как делать таблицы на html. Плюс можно погуглить. Можно также воспользоваться плагинами для создания таблиц в Вордпрессе. Вот рекомендую TablePress, сама им пользуюсь.

    • Ответ изменён 7 лет, 7 месяцев назад пользователем Satico.

    sedoyvdv, залейте на Я.Диск, посмотрю.

    Попробуйте реализовать задуманное с помощью функциии wp_link_pages()

Просмотр 15 ответов — с 16 по 30 (всего 32)