• Как сделать на сайте wp 2 меню?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    У тебя указан menu_id..

    Что сделать:
    В админке во вкладке "Управление областями" оставить поле "Назначенное меню" пустым.
    Там в редакторе меню выбрать в какой позиции выводить это меню. (Область отображения)
    Убрать menu_id.

    Ниже пример для 99% случаев:
    register_nav_menus([
        'top' => 'Верхнее',
    ]);
    wp_nav_menu([
        'theme_location' => 'top',
        'container'=> false,
        'menu_class' => 'nav ',
        'menu_id' => '',
        'fallback_cb' => false   
    ]);

    Нужно понимать что выводится не меню а его позиция, через админку указывается связь, позиции и меню. в wp_nav_menu() можно указать какое именно надо, в документации описан приоритет.

    А это решение для остального процента:
    ## Добавление стилей для стандартного меню
    add_filter('nav_menu_css_class', 'add_menu_list_item_class', 1, 3);
    function add_menu_list_item_class($classes, $item, $args) {
        if (property_exists($args, 'li_class') && !$item->menu_item_parent) {
            $classes[] = $args->li_class;
        }
        if (property_exists($args, 'li_child_class') && $item->menu_item_parent) {
            $classes[] = $args->li_child_class;
        }
        return $classes;
    }
    
    add_filter( 'nav_menu_link_attributes', 'add_menu_link_class', 1, 3 );
    function add_menu_link_class( $atts, $item, $args ) {
        if ( strpos( $atts['href'], home_url() ) === false ) {
            $atts['target'] = '_blank';
        }
        if (property_exists($args, 'a_class') && !$item->menu_item_parent) {
            $atts['class'] = $args->a_class;
        }
        if (property_exists($args, 'a_child_class') && $item->menu_item_parent) {
            $atts['class'] = $args->a_child_class;
        }
        return $atts;
    }
    add_filter( 'nav_menu_submenu_css_class', 'my_nav_menu_submenu_css_class', 1, 3);
    function my_nav_menu_submenu_css_class($classes, $args, $depth) {
        if (property_exists($args, 'ul_child_class')) {
            $classes[] = $args->ul_child_class;
        }
        return $classes;
    }
    wp_nav_menu([
        'theme_location' => 'bottom',
        'container'=> false,
        'menu_class' => '',
        'menu_id' => '',
        'fallback_cb' => false,
        'a_class' => '',
        'a_child_class' => '',
        'li_class' => '',
        'li_child_class' => '',
        'ul_child_class' => '',
    ]);
    Ответ написан
  • Для чего Laravel-разработчики стремятся создать избыточные API ресурсы?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Эндпоинт может содержать не только данные одной модели, например может включать данные отношений. В документации описан самый простой пример. Модель может содержать данные которые не нужно отдавать вообще никогда или ресурс может включать поля которые генерируются иным способом а не хранятся в модели. Использование ресурса предполагает что в нескольких местах приложения ты получишь одинаковые данные. Один ресурс может включать несколько других ресурсов.

    Я не использую ресурсы тк есть graphql для связки фронтенд + бэкенд. Но для стороннего и ограниченного доступа к приложению считаю лучше использовать rest
    Ответ написан
    Комментировать
  • Как вывести список не id, а названий из другой таблицы?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Ответ написан
    Комментировать
  • Validation проверяет только 1 форму а не 2? Почему не на другие формы не проходит валидация?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Пому что id должен быть уникальный на странице. Для правильно работы формы надо установить родительский класс и отталкиваясь от него проводить манипуляции в форме через closest() чтобы полностью отделить одну форму от другой возможной на той-же странице.
    Ответ написан
    Комментировать
  • Не работает якорная ссылка в десктопе. Как решить проблему?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Для того чтобы якорь работал должен быть блок на который он ссылается, или из JSа можно отключить чтобы он не реагировал на такие ссылки.
    Ответ написан
  • Как организовать работу с socket с gprs терминалом?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    socket это уникальный обьект для каждого подключения, оборудование пересылает какие либо идентификационные данные (зависит от самого устройства) которые в основном включают в себя imai int(15) и возможно тип протокола, они могут присылать эти данные при подключении или всегда с данными, так например если они присылают на этапе подключения то записываем эти данные в socket (это обычный js обьект в который можно писать) и при получении данных или отправке берем эти данные и на основе их делаем выбор как обработать.

    Я бы добавил пару моментов:
    1) сразу разделять по протоколам и запускать сервер на определенном порту для каждого протокола отдельно.
    2) Если нужно обрабатывать данные отдельно от сервера после расшифровки пакетов отправлять их по mqtt а дальше уже слушать чем угодно.

    Еще надо обратить внимание на activeClients тк подключения то туда сейчас добавляются в вот как их оттуда убрать мертвые это вопрос интересный потому что disconected работает не так как хотелось бы.
    Ответ написан
    2 комментария
  • Как интегрировать vue 3 с этапом сборке на проекте с bitrix?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    vue сам себя позиционируется как модульное внедрение, где можно сделать на всем сайте только один селект с подгрузкой и поиском (например). Так что ничего плохого в твоем подходе нет, в будущем просто добавишь этот кусок в монолит если надо будет.
    Ответ написан
    Комментировать
  • Как восстановить сайт после потери домена?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    1) купить другой домен
    2) заменить домен в базе данных WP
    3) указать DNS записи домена на свой хостинг
    4) на хостинге если есть возможность выбирать папку сайта (при создании домена) то указать ту которая уже есть, если нет то создать домен и скопировать папку с файлами WP
    В интернете гуглить "как изменить домен wordpress"
    Ответ написан
    Комментировать
  • Как исправить ошибку при незаполненном цифровом поле ACF?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    <?php if ($_ = get_field('vsego_ch')) { ?>
        <div><?php echo number_format($ch, 0, '', ' ') ?></div>
    <?php } ?>
    Ответ написан
    Комментировать
  • Laravel инъекция зависимостей, как происходит в бизнес логике?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    В коде который приведен, Request подключается через import, а сам подход называется dependency injection он описан в документации которую автор не читал.

    Пример:
    class Test extends Controller
    {
        private TestRepository $testRepository;
    
        public function __construct(TestRepository $testRepository) {
            $this->testRepository = $testRepository;
        }
        
        public function getDataMethod(Request $request)
        {
            dd($request);
            dd($this->testRepository->latest([]));
        }
        
        public function setDataMethod(TestAnyRepository $testAnyRepository)
        {
            dd($testAnyRepository);
        }
    }
    class TestRepository
    {
        public function latest($filter = [])
        {
            return Test::filter($filter, TestFilter::class)->latest('id');
        }
    
        public function update(Test $model, array $data): bool
        {
            return $model->update(Arr::only($data, Test::getFillableAttributes()));
        }
    }
    Ответ написан
  • Как задать шаблон для таксономий?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Не правильно просто брать и заставлять использовать шаблон. Есть логичная структура и лучше использовать ее. Для таксономии сделать шаблон taxonomy-case_category.php а для переиспользования контента вынести его в другие файлы и включить в оба шаблона.

    Для таксономии:
    'query_var' => true,
    'has_archive' => true,
    'show_in_rest' => true,
    'rewrite' =>  [
        'slug' => 'cases',
    ],
    Ответ написан
    Комментировать
  • Как организовать подобную задачу правильно?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Лучше всего добавить поле в админ панель чтобы оно сохранялось в базу данных (или просто поле в базе). На фронте проверять, если есть короткое то выводим его если нет то обычное. А пример кода это просто ад, как заплатка на коленке может и сойдет но это не решение задачи.
    Ответ написан
    Комментировать
  • Как сделать два сайта на разных доменах, но на одном сервере?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Необходимо указать для домена записи А со значением:
    111.222.333.444 - domain1.ru
    111.222.333.444 - domain2.ru

    У виртуалки может не быть доступа из сети (скорее всего). Можно запустить на винде и не мучаться если надо просто сделать чтоб работало.
    Если по ипу есть доступ к виртуалке (не понятно) то вероятно надо настроить только DNS записи, если на виндовс то скорее всего надо смотреть в сторону NAT который прокинут не на виртуалку (у нее же другой локальный ип?)
    Ответ написан
  • Вордпресс, почему не выводится пагинация на странице поиска?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Правильное использование структуры шаблонов WP не нуждается в получении данных в коде страницы.
    Я предлагаю сначала почитать документацию и навсегда (в 99% ситуаций) избавиться от WP_Query в шаблонах.
    Сейчас получается так что поиск и так обрабатывает запрос, а после этого ты делаешь тоже самое но только у тебя это не работает как надо.
    Ответ написан
    Комментировать
  • Почему не работает laravel model->update?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Поле должно быть добавлено в fillable атрибут.
    Ответ написан
    Комментировать
  • Как обновить фреймворк, если в нем есть несколько пакетов для php старой версии?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    В большинстве случаев пакеты будут работать но камбозер выдает ошибку потому что текущая версия php не указана в конфиге пакета, тк пакеты всеравно не обновляются их можно перетянуть в папку, подключить через композер и поменять в их конфиге на то что надо.
    Ответ написан
    Комментировать
  • На чем создать сайт с онлай-книгами?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Изи вэй - WP, минимум хлама (привет куску битрикса), самый простой вход в цмс. Идеальное решение для твоей задачи.

    DLE - он как-то занял каталожную нишу, мне кажется во времена когда каждый день открывались пиратские сайты про фильмы и оcел в ней особо без развития (может я не прав). Но он все еще платный и все еще мало популярный относительно WP.
    Ответ написан
  • Не корректно работает мобильная версия на айфоне, хотя на Андройде все четко, как исправить?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Проблема не в андроиде или айфоне, а в кривой верстке.

    Открываешь отладчик и по очереди удаляешь блоки в body, когда найдешь какой ломает (может быть не один) удаляй в нем блоки и так найдешь что именно ломает.
    Ответ написан
    Комментировать
  • Проблемы со стилями Laravel что делать?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Команды:
    vite
    vite build

    css файл добавляется через импорт в сборку.
    Ответ написан
    Комментировать
  • Как сгрупировать запрос в Laravel?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Этим вопросом есть смысл заниматься только если это вопрос с собеседования.
    Три простых запроса лучше чем один упоротый.
    Ответ написан
    Комментировать