• Wordpress: почему не работает адаптивная верстка с кэшированием?

    Dwellss, а подсказать конкретный плагин сложно - вы не предоставили описания того, как у вас реализовано разделение на десктоп и мобайл. Будут детали реализации - можно будет говорить о подходящем решении.
  • Как в плагине carbon-fields динамично добавлять поле?

    Сергей Бурдужа,
    Я уже год назад начал изучать yii, нашел хороший курс, но потом понял, что слишком много работы над сайтом, а я работаю один, посему и бросил и стал усиленее учить wordpress.

    Потому что YII - этой фремворк. А WordPress - это уже готовая CMS. Есть же на рынке CMS написанные на популярных фреймворках. Можете покопать в их сторону (statamic, grav, october и тд)
  • Как в плагине carbon-fields динамично добавлять поле?

    Сергей Бурдужа, Vue имеет смысл учить в экосистеме Laravel - там без него никуда. В экосистеме WordPress сейчас необходимо учить React. jQuery я бы старался максимально заменить ванилькой, и в погоне за этим изучать чистый JS.
    стал изучать vue.js, но там тоже специфичный фреймворк

    Конечно там своя кухня. Но опять же, зная JS вы можете достаточно быстро разобраться с основами и React, и Vue, и Angular, и Embed, и даже Expess. Это разные фреймворки у которые есть как различия (в том числе концептуальные), так и очень много общего. Зная чистый язык и теорию + изучив один фреймворк вы становитесь свободны в выборе - изучение любого нового фреймворка становится вопросом "сесть почитать доку и best practices и начать пилить, разбираясь с остальным по ходу".
  • Как в плагине carbon-fields динамично добавлять поле?

    Сергей Бурдужа, Я бы советовал учить по 2м направлениям:
    1. Сам язык PHP, основы и базис. Паттерны. Теорию вообще, не только по PHP. Это необходимо и архиважно в стратегическом плане, на длительную перспективу. Имея хорошую базу вы достаточно быстро сможете освоить новый язык программирования, не то что фреймворк.
    2. Laravel и Symfony. Учить оба, не ограничиваться одним. У них много общего, и много различий (при чем часто концептуальных). У Symfony компоненты изолированы и decoupled от самого фреймворка, благодаря чему они же используются в том же Laravel (и можете использовать в любом своем коде, в том числе в WordPress). Как коммерческий инструмент для предоставления услуг по разработке сайтов, имхо, Laravel более практичен чем Symfony - ниже входной порог, выше скорость разработки. А если использовать инструменты из экосистемы (например, Laravel Nova, Laravel Forge, Laravel Spark, Laravel Echo и тд), то это позволяет строить полный цикл с достаточно высокой степенью эффективности. Symfony же, в свою очередь, более гибкий если вы хотите делать "по-своему". Знать оба - надежный фундамент на будущее.
  • Как в плагине carbon-fields динамично добавлять поле?

    Да, и еще важный момент, касающийся "теx кто работают с php фреймворками". Разработчик, работающий с MVC, OOP и популярным качественным фреймворком не является автоматически хорошим разработчиком. Для меня вообще "Laravel разработчик", "YII разработчик", "React разработчик" - это сигнал о том, что это либо узкий специалист, заточенный под один конкретный инструмент, либо упоротый и ограниченный "специалист" который ничего другого попросту не знает. Эта тема хорошо знакома по jQuery - во времена массовой популярности этой библиотеки реально существовали jQuery-разработчики, для которых шаг в сторону обычного Javascript (на котором jQuery написан, как мы знаем) был полным фиаско - они не могли написать простой код на 20 строк на чистом JS. Как ни удивительно, но такое до сих пор существует, в том числе (если не в первую очередь) - в экосистемах всех без исключения фреймворков. Есть люди, которые начали учить сразу конкретный фреймворк, даже минуя базу по самому языку. И вне пределов своего фреймворка они попросту не способны ничего сделать. Такие персонажи обычно хейтят все, что находится за пределами их экосистемы и чем они не владеют.

    ЗЫ: Справедливости ради, в экосистеме WordPress таких персонажей тоже более чем достаточно :)
  • Как в плагине carbon-fields динамично добавлять поле?

    Сергей Бурдужа, WP ненавидят те, кто его плохо знает, и те, кто просто относится к категории хейтеров - это люди, которые считают что все, что не соответствует определенным критериям - говно. Эти люди живут в черно-белом мире, но реальность у нас содержит огромное количество полутонов. WordPress - инструмент. Со своими плюсами и минусами (так же как и Laravel, Symfony, Zend Framework, YII или любой другой фреймворк на любом другом языке). У этого инструмента есть сильные стороны, благодаря которым он стал популярен. Устаревший код - это минус для разработчиков. Но это всего лишь устаревший код. Он нормально работает. Не нравится архитектура - ну ок, используй другой инструмент, зачем хейтить то? Это же не означает, что все что не MVC - говно. К тому же, при желании WordPress вполне можно использовать как "черную коробочку", использовать в привычном формате - было бы желание. Почитайте например вот этот мой ответ, там есть немного полезной информации которая частично отвечает на ваш вопрос.

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

    Benderm, ну я о них же. Варианты зависят от того, какую платформу вы используете. Для YII не подскажу что лучше/удобнее - сам работаю с WordPress / Laravel в основном, немного Symfony. Думаю стоит смотреть в сторону RabbitMQ.
  • Как подключить стили в WordPress с GET запросом?

    Дмитрий,
    Иначе как бы тогда добавлялись ссылки на всякие гугл шрифты или прочие кастомные внешние ассеты с параметрами?

    Кстати да, я об этом даже не подумал. Должно же работать. Хз в таком случае, явно в коде тогда проблема. Ну. в любом случае, подобный метод сам по себе не очень ок, так что в другую сторону копать надо.
  • Как подключить стили в WordPress с GET запросом?

    Роман Вопроскин, Во-первых, стили - не самая большая проблема и никогда ими не были. Основной стиль темы в голову документа, как обычно. Второстепенные - в шапке или подвале с async или defer (тут смотрите по ситуации, что они делают). В идеале из основного можно извлечь critical css и запихнуть в html (в head), но это не так часто нужно в реальности - не дает прям сильного прироста по производительности. А вот что даст реальный мега-заметный прирост, так это использование протокола HTTP/2, настройки веб-сервера максимально быстро отдавать статику и, конечно же, адекватные заголовки кеширования для этих файлов.
  • Как подключить стили в WordPress с GET запросом?

    Роман Вопроскин, потому что WordPress обрабатывает эту строку по своему и в процессе делает ей explode по символу "?". Посмотрите код метода enqueue() класса WP_Dependencies (и другие связанные методы).

    А вообще, положа руку на сердце, выдавать стили динамикой и вообще поднимать для этого целый движок PHP и WordPress - крайне неэффективная мера и сомнительная практика. Вы "не туда оптимизируете", коллега :)
  • Как лучше реализовать отправку писем с задержкой в пару часов?

    Benderm, Вам прям вот такая поминутная точность действительно нужна? Имхо, интервал в 5 минут более чем точный. Вы же понимаете что в цепочке доставки письма к конечному клиенту еще есть ряд шагов и сервисов, каждый со своими задержками. Даже если вы в 14:17 отправили письмо клиенту, нет совершенно никакой гарантии, что оно придет ему в 14:17.
  • Стоит ли становиться fullstack?

    Сергей Горностаев, да, тут есть грань. Иметь понимание (а желательно минимально проходные навыки) по смежным технологиям - обязательно. Чем их больше и уровень лучше - тем, очевидно, больше пользы от такого разработчика. Но есть грань. За этой гранью если разработчик пытается понять тонкости этих смежных направлений, у него попросту начинается нехватка времени, и дальше - продвинулись в одном направлении, просели в другом. Грубо говоря, например для бекенд разработчика под веб нужно кроме серверного языка + БД как минимум понимать верстку (HTML/CSS), фронтенд-функциональность (Javascript, протокол HTTP(S), куки и тому подобное), основы девопс (файловые системы, сетевой стек, кеширование, bash/shell и тому подобные плюхи на сервере). Но уровень всего этого понимания совершенно не должен соответствовать уровню специализированного фронтендера или админа/девопса. Разбираться бекендеру в настройках TCP congestion control в linux kernel версий 2.* против версий 3.* совершенно не нужно - это уже к девопсу.
  • Как дать клиенту прямую ссылку на покупку через WooCommerce?

    Дмитрий,
    Интересное решение, спасибо. а вот эту фукнцию prefix_automatically_add_to_cart я вешаю получается куда?

    Вы невнимательны:
    add_action( 'template_redirect', 'prefix_automatically_add_to_cart' );

    Код висит на экнше template_redirect. Это оптимальный хук, в этот момент вы имеете доступ к данным в REQUEST (GET/POST), заголовки еще не отправлены. Определяете, есть ли запрос на автоматическое добавление в корзину (об этом в коде в комментарии написано), берете переданный ID товара ну и добавляете его в корзину, после чего делаете переадресацию туда же.

    на просмотр товара?

    Нет, вам нужно решить как вы будете формировать ссылку, которая будет автоматом добавлять в корзину, потом эту ссылку выводить где-то (в email отправлять или как там вам надо). При переходе по этой специализированной ссылке будет отрабаывать ваша логика (см. выше).

    ну я буду отдавать так, как он выглядит в админке в списке товаров.
    то есть .../product/testovyj-tovar/

    Вы шутите? Хотите чтобы ссылка на информацию о товаре автоматом миновала страницу товара и кидала на корзину? Я б за такое в монитор плюнул.
  • Как пользоваться сервис контейнером в своих классах?

    jazzus, ну почему же? Может вам тон комментариев не нравится, но по сути JhaoDa скорее прав, чем нет - в коде слегка бардак, в качестве обучающего материала такое выдавать не очень ок. Чтобы не быть голословным - вот пример где комментарий откровенно врет и не совпадает с сигнатурой метода. Впрочем, он тут вообще лишний - входящих параметров нет, возвращаемое значение указано в самой сигнатуре, а тело метода очевидно и само себя "документирует". Я уже молчу про разное оформление комментариев от класса к классу (и от метода к методу), об отсутствии какой-либо логики где комментарии есть, а где нет. Ну и naming conventions - отдельная песня. Почему метод, который возвращает ссылку на оплату строкой называется pay?
    /**
         * Get link to pay
         * @param $link
         * @return string
         */
        public function pay(): string
        {
            return (string)$this->paymentLink;
        }

    Это нюансы, на которые я лично закрыл бы глаза, если бы не ваша придирка к JhaoDa.
  • Как убрать дубли страниц со строчными и заглавными буквами в URL в WordPress?

    Руслан, 301й редирект тоже вариант. И в паре с canonical url в нижнем регистре должно по идее быть ок. Но что реально лучше для SEO - 301 или 404 - это уже спрашивайте у сеошников. Технически и то, и другое должно быть реализуемо.
  • Как убрать дубли страниц со строчными и заглавными буквами в URL в WordPress?

    Руслан, это совершенно разные уровни решения проблемы. Если в htaccess, за обработку запроса будет отвечать только сервер, и он решит вернуть ли 404. Это будет быстрее, ниже нагрузка. В PHP коде - это ж надо PHP поднять, фреймворк / CMS, и там на каком-то этапе посмотреть регистр и принять решение о возврате 404й / переадресации на страницу 404й ошибки. Тут вам решать. Я бы на уровне сервера делал, ибо он на это по идее способен, поднимать для этого PHP - лишнее. К тому же, если есть full page cache, то приложение может все равно либо не подниматься, либо по короткому циклу проходить, а значит ваш код может и не выполниться. Пробуйте на уровне htaccess
  • Как убрать дубли страниц со строчными и заглавными буквами в URL в WordPress?

    lamer350, на самом деле я считаю, что если CMS / ваш код передает canonical url то в дополнительных мерах нет необходимости. Впрочем, тут еще зависит и от настроек вебсервера. Насколько мне известно (но могу ошибаться), IIS не чувствителен к регистру, а вот Nginx и Apache - чувствительны. Не знаю деталей по Apache (избегаю его), но в Nginx можно указывать маски ~* для location и включать режим нечувствительности к регистру. Впрочем, везде это делать крайне не рекоммендуется из-за производительности. Чувствительность же, если она по умолчанию есть, должна приводить к тому, что сервер сам будет возвращать 404, и SEOшники будут довольны. Но это касается только физических урл, если же речь идет о ЧПУ, то тут же сервер (Apache / Nginx) просто передает запрошенный путь as is на бекенд, который уже решает что с ним делать - игнорировать регистр и возвращать 200, или возвращать 404. Думаю, можно регулярками заставить сервер определять верхний регистр и сразу возвращать 404, не передавая запрос на бекенд, но сам никогда подобны не заморачивался, поэтому это только теоретические рассуждения.
  • Как убрать дубли страниц со строчными и заглавными буквами в URL в WordPress?

    Руслан, можно через htaccess, гуглите. Но как именно подсказать не смогу - к Апачу не прикасался (и не собираюсь) уже много лет.