WordPress как на ладони

Ответьте на вопросы
    ...
  • Многоуровневое меню

    Здравствуйте знакомлюсь с wordpress, и столкнулся с огромной для себя проблемой, не могу прикрепить нужный class к выпадающему списку меню 2 уровня...
    Использую фреймворк uikit

    Разметка меню выглядит так:

    <ul class="uk-navbar-nav">
      <li class="uk-active"><a href="#">Пункт меню</a></li>
      <li><a href="#" uk-icon="icon: chevron-down">Пункт меню</a>
    	<div class="uk-navbar-dropdown">
    	  <ul class="uk-nav uk-navbar-dropdown-nav">
    		<li><a href="#">Подпункт меню</a></li>
    		<li><a href="#">Подпункт меню</a></li>
    		<li><a href="#">Подпункт меню</a></li>
    	  </ul>
    	 </div>
    	</li>
    	<li><a href="#">Пункт меню</a></li>
    </ul>

    в header.php вывожу так:

    <?php wp_nav_menu( array( 
      'theme_location' => 'uk-navbar-nav', 
      'depth' => 0,
      'menu_class' => 'uk-navbar-nav',
      'container' => false));
    ?>

    в functions.php регю так:

    register_nav_menus(array(
    	'uk-navbar-nav' => 'Верхнее горизонтальное меню',
    	'footer' => 'Нижнее меню'
    ));

    Результат:

    http://prntscr.com/f2evx3 (скрин)

    То есть не работает меню 2 порядка, вот скрин кода: http://prntscr.com/f2ewqd

    Ещё не понятно сделать активным .uk-active чтобы при переходе в любую категорию было видно где нахожусь...

    Ответить →
  • Как запретить вывод дочерней категории в родительской?

    Есть родительская категория, содержащая несколько дочерних.

    Как правильно добавить фильтр (в functions.php) на запрет вывода одной дочерней категории на странице родительской?

    Ответить →
  • Распределение потсов по таблицам

    На сайтах WP где +100500 постов, возникла проблема, раздувается таблица wp_posts и wp_postmeta(если используются много произвольных полей). В целом на производительность сайта это не влияет, но влияет на время добавления поста. Если раньше, когда таблица wp_posts занимала 10-15мб, пост добавлялся за 2-3 секунды, сейчас же wp_posts весит 300мб и пост добавляется секунд 15, с каждым следующим мегабайтом время добавления поста увеличивается.

    Так вот, вопрос, есть ли возможность распределять посты по разным таблицам, например отдельная таблица для каждой рубрики, типа, новости - wp_posts_news, товары wp_posts_shop и т.д.

    Или, например, сделать такое же распределение хотя бы для кастомных типов записей.

    Кто что скажет? ))

    Ответить →
  • Мультиязычность

    Подскажите пожалуйста туториал о создании мультиязычных тем для WordPress

    Ответить →
  • быстро вытащить ссылку из тега

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

    Вот что я имею ввиду, к примеру есть вот такой iframe, нужно его выделить нажать кнопку и чтобы осталась только "ссылка" ? то есть чтобы все лишнее удалилось

    <iframe width="560" height="315" src="ссылка" frameborder="0" allowfullscreen></iframe>

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

    Ответить →
  • Не обновлять запись при условии

    Как сделать так что бы при нажатии кнопки Обновить
    (например какай не будь проверка не прошла)
    запись не обновлялась а возвращался результат в «редактирования записи» который был отправлен, чтобы его можно было исправить

    Ответить →
Вопросы в комментариях
  • Влад: День добрый. Спасибо за статью,...

    День добрый.
    Спасибо за статью, это буквально то, что мне нужно!
    Но как-то не хочет дружить у меня с сайтом
    Если что, I have no idea what I'm doing, просто копирую:
    Первую часть кода в /public_html/wp-includes/functions.php
    Вторую в /public_html/wp-includes/post.php

    Вылазит ошибка:
    Fatal error: Cannot redeclare set_post_thumbnail() (previously declared in /home/u893993548/public_html/wp-includes/post.php:6005) in /home/u893993548/public_html/wp-includes/post.php on line 6232

    строчка указывает на последнюю закрывающуюся фигурную скобку

    Ответить →
  • Владислав: Здравствуйте! Есть задача сделать...

    Здравствуйте! Есть задача сделать трехуровневое меню.
    Огромное спасибо за статью с Walker, все получилось сделать кроме одного.

    Задумка состоит в том, чтобы при наведении на первый уровень элементов, открывался второй уровень (это сделано), а при клике по родительскому li добавлялся класс active к этому же li (это сделано), а к дочернему ul добавлялся класс static, который не будет давать ul сворачиваться (вот в этом-то и проблема)

    Разметка для понимания:

    <li class="active">
    	<a>Ссылка</a>
    	<ul class="static"> // Как добавить класс static к дочернему ul, когда родитель - li получит класс active?
    	</ul>
    </li>
    </li>

    Третий уровень должен открываться при клике по родительскому li второго уровня и вложенный ul получает класс static.

    <li>
    	<a>Ссылка</a>
    	<ul>
    		<li class="active">
    			<a>Ссылка</a>
    			<ul class="static">
    			</ul>
    		</li>
    	</ul>
    </li>

    Получается, нужно добавлять к дочернему ul класс static тогда, когда к родителю - li присваивается класс active.

    Вот код для walker

    // Добавляем свой класс для пунктов меню:
    class my_walker_nav_menu extends Walker_Nav_Menu {
    
    // Добавляем классы к вложенным ul
    function start_lvl( &$output, $depth ) {
    	// Глубина вложенных ul
    	$indent = ( $depth > 0  ? str_repeat( "\t", $depth ) : '' ); // code indent
    	$display_depth = ( $depth + 1); // because it counts the first submenu as 0
    	$classes = array(
    		'sub-menu',
    		( $display_depth % 2  ? 'dropdown' : '' ),
    		( $display_depth >=2 ? 'dropdown' : '' ),
    		'menu-depth-' . $display_depth
    		);
    	$class_names = implode( ' ', $classes );
    
    	// build html
    	$output .= "\n" . $indent . '<ul class="' . $class_names . '">' . "\n";
    }
    
    // Добавляем классы к вложенным li
     function start_el( &$output, $item, $depth, $args ) {
    	global $wp_query;
    	$indent = ( $depth > 0 ? str_repeat( "\t", $depth ) : '' ); // code indent
    
    	// depth dependent classes
    	$depth_classes = array(
    		( $depth == 0 ? 'has-sub' : '' ),
    		( $depth >=2 ? '' : '' ),
    		( $depth % 2 ? '' : '' ),
    		'menu-item-depth-' . $depth
    	);
    	$depth_class_names = esc_attr( implode( ' ', $depth_classes ) );
    
    	// passed classes
    	$classes = empty( $item->classes ) ? array() : (array) $item->classes;
    
    	$mycurrent = ( $item->current == 1 ) ? ' active' : '';
    
    	$class_names = esc_attr( implode( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) ) );
    
    	$output .= $indent . '<li id="nav-menu-item-'. $item->ID . '" class="' . $depth_class_names . ' ' . $class_names . $mycurrent . '">';
    
    	// Добавляем атрибуты и классы к элементу a (ссылки)
    	$attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
    	$attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
    	$attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';
    	$attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : ''; 
    	$attributes .= ' class="menu-link ' . ( $depth == 0 ? 'parent' : '' ) . ( $depth == 1 ? 'child' : '' ) . ( $depth >= 2 ? 'sub-child' : '' ) . '"';
    
    	$item_output = sprintf( '%1$s<a%2$s>%3$s%4$s%5$s</a>%6$s',
    		$args->before,
    		$attributes,
    		$args->link_before,
    		apply_filters( 'the_title', $item->title, $item->ID ),
    		$args->link_after,
    		$args->after
    	);
    
    	// build html
    	$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
    }
    
    }
    Ответить →
  • сергей: Подскажите как вывести заголовок...

    Подскажите как вывести заголовок h1 для меток к примеру вот метка но заголовка нет https://www.allremont59.ru/tag/kesson

    Ответить →
  • Pikabu: Подскажите пожалуйста, при...

    Подскажите пожалуйста, при получении категорий с hierarchical=1, как при дальнейшем переборе и построении дерева определять уровень вложенности $depth (что бы задать отступ)? Может есть какой то простой способ получить эти данные? Или для каждой категории запрашивать get_ancestors(..) и считать кол-во родителей например?

    Ответить →
  • Marie: не работает...

    не работает define('EMPTY_TRASH_DAYS', 1 );

    Есть какие-то нюансы использования? Тестирую на локалке, может в этом дело?

    Ответить →
  • Дмитрий: А если стоит задача обновить за...

    А если стоит задача обновить за раз более 2000 полей, создаст ли это большую нагрузку на сервер?

    Ответить →
Готовые темы (шаблоны) для WordPress wordpress jino
Главная

Создание констант в PHP — const и define()

В этой заметке разберемся, в чем разница в объявлении PHP констант с помощью ключевого слова const и функции define().

Константы в PHP - это «постоянные» значения которых указывается всего один ...

Ускоряем админку WordPress - отключаем проверки обновлений

Это на мой взгляд обязательная фитча для всех сайтов на WordPress, как принято говорить - маст хэв. Почему? Потому что проверка обновлений должна идти фоном и никак иначе, за очень редким ...

Display Widgets: скрываем виджеты WordPress

Плагин о котором эта заметка, позволяет скрывать или наоборот отображать виджеты по условию, т.е. в зависимости от страницы сайта. Он пригодится, например:

  • когда нужно скрыть виджет поиска на ...

Полезные PHP коды — для опытных

Несколько готовых сниппетов для решения конкретных задач в PHP. Эти приемы рассчитаны на пользователей, которые знакомы с PHP. Коды ниже могут стать готовым решением или основной для очередного ...

Полезные PHP коды - для новичков

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

Тут собрана лишь малая часть, и ...

Стандарты PHP кода в WordPress - лучшие практики

Чтобы код WordPress везде был в одном стиле и удобно читался в ядре, плагинах и темах, рекомендуется соблюдать стандарты написания кода, которые приняты разработчиками WordPress. Эти стандарты очень ...

Таблицы сравнения переменных в Javascript (=== и ==)

Сравнение в JavaScript иногда сводит с ума и при всяких сомнениях лучше использовать точное сравнение - ===. А в этой заметке ниже таблица того, сработает или нет сравнение, если сравнивать разные ...

Альтернатива @import в дочерних темах

Использование дочерних тем в Wordpress — правильный способ изменить существующую тему, однако директива CSS @import работает медленно, поэтому её стоит избегать.

200мс уходит на загрузку файла ...

Пагинация для отдельной записи WordPress

Не все знают, что в WordPress отдельную запись или страницу можно разбить на несколько частей, организовав таким образом пагинацию для записи (поста). Для этого в контенте нужно использовать ...

Как отключить корзину в WordPress

По умолчанию удаленные записи, страницы и комментарии в WordPress при удалении попадают в корзину, где на протяжении 30 дней остается возможность для их восстановления. Также можно очищать корзину ...

Сайтбилдер

https://ukit.com/ - сайтбилдер для создания бизнес-сайтов.

Конструктор сайтов uGuide.ru

Конструктор сайтов uGuide.ru

Реклама