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



 

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

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

Открыть тему
Тема закрыта
> Wordpress - чистое меню
k0ttee
k0ttee
Topic Starter сообщение 20.7.2014, 2:59; Ответить: k0ttee
Сообщение #1


Думаю никто не любит когда в коде царит срач, поэтому давайте добавим нужное и выпилим ненужное.

Идем в папку темы и смотрим, есть ли там файл functions.php
Если есть - вставлять надо в него
Если нет - создавайте и втыкайте в него

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

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


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


И вот функция, где парой строк добавляются классы first-menu-item и last-menu-item
#добавляем классы первым и последним элементам (во всех меню)
function add_first_and_last($output) {

$output=preg_replace('/class="menu-item/', 'class="first-menu-item menu-item', $output, 1); #первому элементу добавим класс first-menu-item
$output=substr_replace($output,'class="last-menu-item menu-item',strripos($output,'class="menu-item'),strlen('class="menu-item')); #а последнему last-menu-item

return $output;
}
add_filter('wp_nav_menu', 'add_first_and_last');


Уберем ненужные классы (те которые не нужны)

Когда я вижу в коде <li class='menu-item-type-post_type menu-item-object-page menu-item-12 menu-item-type-custom menu-item-object-custom menu-item '>пункт</li> и этих пунктов много (хотя бы 10), очи мои хотят плакать... Написал функцию, которая вышвыривает эти классы.

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

function trash_away($output) {

#выпиливаем class'ы (во всех меню)
$output=preg_replace('/menu-item-type-post_type/', '', $output); #menu-item-type-post_type
$output=preg_replace('/menu-item-object-page/', '', $output); #menu-item-object-page
$output=preg_replace('/menu-item-[0-9]{1,}/', '', $output); #menu-item-номер
$output=preg_replace('/menu-item-type-custom/', '', $output); #menu-item-type-custom
$output=preg_replace('/menu-item-object-custom/', '', $output); #menu-item-object-custom
$output=preg_replace('/ menu-item /', '', $output); #пробел menu-item пробел
$output=preg_replace('/ {2,}/', ' ', $output); #2 и более пробела заменить одним
$output=preg_replace('/ "/', '"', $output); #пробел кавычка заменить кавычкой
$output=preg_replace('/ class="menu-item"/', '', $output); #class="menu-item "

return $output;
}
add_filter('wp_nav_menu', 'trash_away');


Если ID в менюшках вам не нужны (в случае, когда все стили подцеплены классами) а цепляться к конкретным пунктам по ID не требуется, можно выпилить и их.
add_filter('nav_menu_item_id', '__return_false');


После выпиливание всякой фигни получаем чистенький код. :goodpost:
Прикрепленное изображение


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mark3000
mark3000
сообщение 22.7.2014, 9:29; Ответить: mark3000
Сообщение #2


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


--------------------
LINKOSCOP 4 - работа с внутренней перелинковкой + утилиты для работы.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 22.7.2014, 12:04; Ответить: k0ttee
Сообщение #3


О, я раньше то же много чистил кода и на форумах и на блогах, а потом забил ...

Да... Заказчики хотят вчера и сами не знают чего. Но когда времени до запуска много, можно и почистить.

В веб-разработке есть 3 штуковины, в пользу которых можно сделать выбор: машины (выполняющие код серверы и браузеры), разработчики (сам и те, кто будут пилить после тебя), end user (пользователи приложения).

И всем угодить не получится. :unsure:
Если сделать лучший для машины код, разработчик (продолжающий твою работу) может проклянать за неудобство и плохую разборчивость.
Если сделать код удобнее для себя, может снизится производительность.
End user'ам вообще пофиг, что там в коде (главное чтоб работало быстро и не глючило).


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops_hb
andreykashops_hb
сообщение 23.8.2014, 23:30; Ответить: andreykashops_hb
Сообщение #4


Разрешите вставить свои 5 коп в топик)
(k0ttee)
Ежели хочется сделать меню, в котором первый и последний элементы будут отличаться от средних, надобно добавить элементам классы и таким образом стилизовать их.


Здесь отлично справляются CSS псевдоклассы
:first-child
:last-child


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

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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПродам базу сайтов Wordpress в 16 миллионов доменов! Свежая сборка.
19 Boymaster 11434 20.4.2024, 0:01
автор: Boymaster
Открытая тема (нет новых ответов) Нужен кодер, чтобы пофиксить ошибку Wordpress после переноса сайта
0 Alex-777 958 7.4.2024, 18:05
автор: Alex-777
Открытая тема (нет новых ответов) Перенос сайта на CMS Wordpress
8 freeax 4986 10.3.2024, 14:58
автор: freeax
Открытая тема (нет новых ответов) Как настроить в WordPress для SEO оптимизации
8 rownong27 2488 2.3.2024, 12:59
автор: toplinks
Горячая тема (нет новых ответов) Восстановление сайтов из Вебархива на Wordpress.
39 freeax 32804 14.2.2024, 14:32
автор: freeax


 



RSS Текстовая версия Сейчас: 25.4.2024, 18:15
Дизайн