14ответ(ов) в теме
Игорь Динов
не в сети 5 лет
На сайте с 16.03.2019
Участник
Тем 15
Сообщения 75
1
09:19
Версия WP-Recall: 16.17.8

И таки доброго утро всем!
Только что столкнулся с небольшой проблемой - формирую дизайн шапки сайта, заказчик захотел там все переделать. Recall bar у меня по умолчанию скрыт для гостей :

// отключим реколлбар WP-Recall для гостей
function my_guest_hide_rclbr(){
    if(is_user_logged_in()) return false; // logged - откатываемся 
    remove_action('wp_footer','rcl_recallbar_menu',3);
}
add_action('init','my_guest_hide_rclbr');

Все хорошо, только он (бар) инлайном пишет сss: html margin-top: 36px !important.
И у меня разрыв шаблона... Как быть?
Отключаю бар в настройках - конечно разрыв пропадает...

Редакции сообщения
18.04.2019 09:20Игорь ДиновПричина: не указано
18.04.2019 09:23Игорь ДиновПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
10:15

Здравствуйте.

Тему перенес в кастомизации

Похожая тема

Вы не можете просматривать опубликованные ссылки

корректируйте стили для гостя

0
Игорь Динов
не в сети 5 лет
На сайте с 16.03.2019
Участник
Тем 15
Сообщения 75
3
10:19

ок - в кастомизацию, так в кастомизацию.
Владимир - но... разве 0 !important медиазапроса перепишет инлайн? ) нет, не перепишет...

0
Игорь Динов
не в сети 5 лет
На сайте с 16.03.2019
Участник
Тем 15
Сообщения 75
4
10:26

пока реально вижу только так: переписать стиль инлайн с !important можно только через JS. В нем надо проверить логин и подставить нужное значение для html для пользователя, который незалогонин. Что-то типа того:

var $logged = $('body');
if( !$logged .hasClass('logged-in') ){
   $('html').attr('style', 'margin-top:0 !important');
}

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

0
Вова (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
5
10:32

Игорь Динов сказал(а)
нет, не перепишет...

перепишет. Почитайте спецификацию css

0
Вова (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
6
10:38

Для вашего случая достаточно только html скорректировать:

html:root {margin-top:0 !important;}

Где :root перевес корневого селектора для увеличения специфичности

0
Игорь Динов
не в сети 5 лет
На сайте с 16.03.2019
Участник
Тем 15
Сообщения 75
7
11:03

перепишет. Почитайте спецификацию css

бррр... может мы о разном говорим? у меня стили медиазапросов вообще подключаются отдельным файлом, чтобы головоломок не было. Т.е. - то что я пишу в медиа для десктопа, к примеру, перепишет 36px !important из файла реколбара? да нет ... и попробовал для верности - мож точно я чего забыл уже - конечно не переписывает.
А вот специфичность селектора - да, это спасибо, забыл про root. Но в этом случае надо разбираться - а как переопределить его только для залогониных? body сss стили идут позже, где я могу подцепить стиль определения...
и пока работающего решения нет - :root убирает марджин, но тогда для залогониных весь вывод улетает под бар...

Редакции сообщения
18.04.2019 11:08Игорь ДиновПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
8
11:23

может быть гостевой css. У меня во многих проектах так - не грузим лишнее - что ему не надо.
Или же чистый php и api wordpress.
Вы не знаете как с помощью php написать условие и написать туда стиль? Боюсь эти вопросы касаются работе с вордпрессом, а не с плагином WP-Recall. Попробуйте найти ответ на просторах сети - "как написать стили с условием для незалогиненного в вордпресс"

0
Игорь Динов
не в сети 5 лет
На сайте с 16.03.2019
Участник
Тем 15
Сообщения 75
9
11:28

знаю, Владимир - я уже хотел так написать через php- но это ж ... все нагрузка, у меня сайт и так уже ... такой немаленький вырисовывается, пока остановлюсь на своем jQuery - оттестировал только что - работает как автомат калашникова, только перерисовка, да бог с ней... Уже мысль была залезть в код и убрать этот инлайн, потом самому его прописать - это самое простое и быстрое... Мож чуть подале так и сделаю...

0
Вова (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
10
12:21

Игорь Динов сказал(а)
но это ж ... все нагрузка

какая нагрузка?

вы проведите замеры одного вызова вашей функции это 0.00001мб и 0.000001сек - это нагрузка?

Или вы из тех кто в футере год убирает echo date('Y'); и пишет 2019 жестко? Потому что это тоже нагрузка. Не смешите людей. Это экономия на спичках ради удобства.

А про вашего варианта с jquery - неверный подход. Вы проверьте например синтетически через хром: ограничте полосу пропускания или мощность устройства - и увидите что скачки будут внушительными по времени.

Идея влезть в код... Зачем вам рубить сук на котором вы сидите или ваши клиенты? Они не смогут без оглядки обновляться. А это важно.

0
Игорь Динов
не в сети 5 лет
На сайте с 16.03.2019
Участник
Тем 15
Сообщения 75
11
12:57

это все правильно, только ... чуть позже.
Вообще хук rcl_recallbar_menu сам это все должен делать. Андрею стоит на это обратить внимание.
Идея влезть в код нехорошая, как и сама мысль прописывать жестко инлайн стиль с !important. Но - как есть. Без оглядки обновляться с заменой одного файла... ну... нехорошо, но если очень надо - то можно: я абсолютно согласен, что рывки нехорошие. Думаю над этим в бекграунде.

0
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16936
12
13:00

а отключить стили бара не пробовали?

remove_filter( 'rcl_inline_styles', 'rcl_bar_add_inline_styles', 10, 2 );

0
Вова (Otshelnik-Fm)
не в сети 4 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
13
13:03

Игорь Динов сказал(а)
как и сама мысль прописывать жестко инлайн стиль с !important

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

p.s. решение вам дали. Оно работает отлично для меня. Минусы других принципов тоже пояснили. Пора выходить из оффтопа

0
Игорь Динов
не в сети 5 лет
На сайте с 16.03.2019
Участник
Тем 15
Сообщения 75
14
13:07

а отключить стили бара не пробовали?

Вау! вот это решение, красиво однако! все заработало. Эх знать бы этот фильтр сразу... Тем не менне - благодарю!

0
Тема закрыта. Публикация новых сообщений запрещена.