Задать вопрос
  • Как сделать, что бы после ФРОНТЭНД публикации поста Вордпресс автоматически определял ФОРМАТ записи, зависящий от содержания этой записи?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Смотрите, есть ли в плагине какой-то хук при создании нового поста. Если нет - используйте save_post. Далее, регулярками определяйте что прилетает и выставляйте нужный формат.
    Ответ написан
    Комментировать
  • Как в Wordpress вывести записи одновременно из текущей и другой рубрики?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Используйте хук pre_get_posts вместо get_posts()
    Ответ написан
    Комментировать
  • Как убрать название родительской категории из урла?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Стандартные категории в WP являются иерархическими, отсюда такой URL. Можно колупать rewrite rules, а можете попробовать решить готовым плагином:

    https://wordpress.org/plugins/single-category-perm...
    https://wordpress.org/plugins/custom-permalinks/
    https://wordpress.org/plugins/permalinks-customizer/
    Ответ написан
    Комментировать
  • Какая лучшая мышь для веб-дизайнера на macbook pro?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если работать только на буке, то мышь не нужна - трекпад офигительно удобный и точный, привыкаешь к нему за считанные часы. Если планируется внешний монитор - то работать лучше с закрытым ноутом, понадобится внешняя клава и, опять же, вместо мышки лучше брать внешний Apple Trackpad 2. Оргазмическая вещь.
    Ответ написан
    Комментировать
  • Каким файловым менеджером под macos вы пользуетесь?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ответ написан
    Комментировать
  • Каким ftp client под macos вы пользуетесь?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Если доступ к FTP нужен для работы с проектами, то я использую только встроенный в PHPStorm. Отдельного приложения вообще не надо.
    Ответ написан
    Комментировать
  • Пара вопросов новичка в мак?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    BVadim уже детально ответил, от себя добавлю пару важных моментов:

    Во-первых, выключите в мозгу любые попытки делать что-либо "windows-way". Забудьте про PC, учитесь дедать "apple-way". Некоторые вещи просто реализованы по-другому, и точка. Чем раньше перестанете сопротивляться, тем быстрее привыкнете и все будет отлично. Неделя-две максимум.

    1-2. Яблочная мышь приживается мало у кого, даже несмотря на удобные жесты. Работать обычной мышью можно, есть софт (можно из командной строки делать, гуглите) для тюнинга работы мыши (в основном выключаются или перенастраиваются некоторые нюансы на уровне OS). Впрочем, я бы советовал не пожалеть денег и посмотреть в сторону Magic Trackpad 2. Поверьте, не пожалеете. На макбуке я мышкой не пользуюсь вообще никогда, и среди моих знакомых никто этого не делает. Трекпад вещь супер удобная, мышь может пригодиться разве что для хардкорного гейминга. Внешний трекпад - вообще адски удобная штука. Своих денег стоит 1000%. Клавиатура требует небольшого привыкания, но она таки удобная и эргономичная. Руки не устают. Точка с запятой непривычны поначалу, да. Привыкаете буквально за пару дней.

    3. Сафари быстрее, жрет меньше ресурсов (сильно меньше), как браузер весьма и весьма хорош. Если у вас iPhone / iPad - очень удобная интеграция, можно просто перекидывать страницы открытые между устройствами, удобно. А также общий список Read later, букмарки и тд. Для разработки Chrome конечно удобнее. Впрочем, для разработки все равно нужно минимум Chrome + Firefox + Safari.

    4. Лучше заставьте себя привыкнуть. Поверьте, Cmd + Space / Ctrl + Space для Spotlight (Alfred) и переключения раскладки - очень удобно. Поначалу вам кажется неудобно, потому что мышечная память у вас на Ctrl + Shift. Привычка вырабатывается очень быстро.

    5. Везде где в Windows вы привыкли использовать Ctrl, на Маке будет Cmd. И это кстати очень удобно - он ближе к пробелу / центру клавы, соответственно, легче тянуться пальцами к другим клавишам. Плюс, Ctrl вы тоже будете использовать для других комбинаций, в том числе вместе с Cmd, и вместе с Alt / Option, вместе c Shift. А еще можете Caps Lock переназначить, имхо вообще бесполезная клавиша (независимо от ОС). В более сложных приложениях это дает вам огромную степень свободы, почти все выводится на удобные шорткаты.

    6. Просто скопировать текст - масса вариантов. Например, есть системный Notes, который синхронизируется с iOS, что тоже удобно. Есть Simplenote. Есть простые и стильные markdown редакторы, их просто тьма. Я лично использую iA Writer. Есть тот же Sublime. Есть SnippetsLab для сниппетов кода, есть Paste для работы с историей клипборда (собственно, "просто скопировать куда-то" закрывает полностью). Некоторые из перечисленных программ платные, но они того стоят. Есть и бесплатные альтернативы. Есть и торренты :)

    А еще просто погуглите "Must have mac apps", "Best mac utilities", полистайте топики о "программах без которых невозможно жить" на Product Hunt. Есть масса маленьких утилит, которые делают жизнь комфортнее. На что точно стоит обратить внимание:

    Spectacle (free) - обязательно
    1Password (paid)
    Bartender (paid)
    f.lux (free) - обязательно !!!
    HazeOver (paid)
    Amphetamine / Caffeine (free) - если ноутбук
    Alfred (free, with paid addon)
    Resolutionator (free)
    CleanMyMac (paid)
    TheUnarchiver (free)
    iTerm2 (free)
    Transmission (free)
    Xee Photo Viewer
    Spark (free) - лучший почтовый клиент
    ForkLift (paid) - двухпанельный файловый менеджер, многие любят
    BetterTouchTool (free)
    Karabiner
    BetterZip (paid) - если требуется просмотр содержания архивов, в том числе на уровне QuickLook

    Также посмотрите дополнения к QuickLook:
    - https://github.com/sindresorhus/quick-look-plugins
    - www.macnative.com/top-10-quicklook-extensions-for-...
    - www.quicklookplugins.com
    Ответ написан
    Комментировать
  • Почему не отрабатывает кнопка купить на главной странице магазина?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Как уже написал maddog670 у вас нажатие по кнопке отправляет аякс-запрос, который при выполнении генерирует ошибку. Ошибка у вас в некорректном использовании функции.

    Функция _n() принимает 4 параметра. Смотрим сигнатуру функции:
    _n( '%s person', '%s people', $count, 'text-domain' )

    Итак, параметры:

    1. Строка которую собираем, в единичном числе
    2. Строка которую собираем, в множественном числе
    3. Собственно, само число которое вставляем в первые 2 параметра динамически
    4. Текстовый домен перевода (не обязательно)

    А у вас что? Первый параметр ок, второй - не ок. У вас 2 и 3 параметры одинаковые, а должны быть 1 и 2:

    <?php echo wp_kses_data( _n( '%d', '%d', WC()->cart->get_cart_contents_count() ); ?>


    Да, и sprinf() там у вас лишний. Впрочем, использование wp_kses_data() в данном случае тоже весьма сомнительно.
    Ответ написан
  • WordPress: какой фильтр использовать?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    the_content
    Ответ написан
    Комментировать
  • Как получить в выборке wp_query записи без определенного произвольного поля?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    'meta_query' => array(
        array(
         'key' => 'color',
         'compare' => 'NOT EXISTS'
        ),
    )

    Чтобы не слетала пагинация, делайте через хук pre_get_posts
    Ответ написан
    1 комментарий
  • Как создать вьюшки на Laravel / Voyager?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    https://devdojo.com/series/laravel-voyager-010/epi...
    Фронт делается как обычно. Админка (Voyager) - это UI для администрирования проекта. Условно говоря, визуальная web-замена artisan и других плюшек. А фронт - это фронт. Пилите его как обычно, как будто админки у вас нет.
    Ответ написан
    Комментировать
  • Как в phpstorm через git отправить сразу все изменения во всех ветках?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    ИМХО, процесс должен быть немного другой. В master пушить нельзя, он должен быть вообще закрыт для пушей, ибо с него должен идти автоматический деплой. Соответственно, хотфикс уходит в ветку develop, там проходит весь процесс (code review, деплой на staging, phpcs и тд - зависит от того как у вас настроена разработка), и только после тестирования и "утверждения" хотфикса делается пулл реквест в мастер, принимается тимлидом (даже если вы в команде один и сам себе тимлид), и после склейки автоматически деплоится на прод.
    Ответ написан
    2 комментария
  • Как убрть вывод слеша на конце адреса в пагинации блога WP?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Во-первых, я бы наоборот, добавил слеши к пагинации. Почитайте вот этот тред, особенно комментарии (плюс там туча ссылок). Приведу одну из цитат:

    Summary:

    If it ends with / it can never be a file. No server guessing.
    Slash or no slash are entirely different meanings. There is a technical/resource difference between "slash or no slash", and you should be aware of it and use it accordingly. Just because the server most likely loads /dvd/index.htm - or loads the correct script stuff - when you say /dvd: It does it, but not because you made the right request. Which would have been /dvd/.
    Omitting the slash even if you indeed mean the slashed version gives you an additional HTTP request penalty. Which is always bad (think of mobile latency) and has more weight than a "pretty URL" - especially since crawlers are not as dumb as SEOs believe or want you to believe ;)


    Обратите внимание на последнее предложение, и передайте его сеошникам, которые придумали эту чушь лет 10 назад.

    Ну а если никто вас слушать не станет, и слеш все-таки надо убрать - идите в настройки постоянных ссылок и уберите его в конце URL. Смотрите тут.
    Ответ написан
  • Wp_query и жадная загрузка. Как сделать?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Используйте object cache по максимуму. WP_Query делает все максимально правильно, насколько это возможно в архитектуре WP, и способен жестко все кешировать, давая как раз ожидаемый вами эффект. Дайте ему такую возможность.

    2. Пишите кастомные запросы через $wpdb. Запросы будут сложными, с кучей джоинов и тд. И далеко не факт, что получится "за один запрос". При это дальнейшее кеширование остается на вас, придется дописывать прослойку. Сомнительная выгода.

    3. Используйте внешний сервис типа ElasticSearch для индексации контента и сложных выборок, жрущих много ресурсов. На выходе получите ID постов, по которым сможете быстро получить нужные посты с минимальными затратами ресурсов. Минус - это внешний сервис. Выход - ставить его на том же сервере и общаться внутренне, кешировать запросы.
    Ответ написан
    Комментировать
  • Wordpress, переадресация сайта при тесте на скорость?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    https://tools.pingdom.com/#!/eDtSEY/http://kulik-s...

    1. Нет никаких редиректов.
    2. Грузится таки долго, 4.5 секунды ожидания на стороне сервера - это катастрофически долго.
    Ответ написан
  • Как очистить список в произвольных полях wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Это meta_keys из таблицы wp_postmeta. Если вам надо избавиться от устаревших данных, то вопрос не в том, чтобы удалить их из этого списка, а в том, чтобы удалить их из базы данных (тогда они и из списка исчезнут). Для этого идете в базу и выполняете запросы типа:
    DELETE FROM wp_postmeta WHERE meta_key = 'kc_data';
    DELETE FROM wp_postmeta WHERE meta_key = 'url_project';
    ...

    Данные запросы удалят ВСЕ записи с таким meta_key из таблицы, после чего они исчезнут и из выпадающего списка на странице редактирования поста.
    Ответ написан
    Комментировать
  • Как передать значение переменной между файлами шаблона на wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    UPDATE 2020:

    Для будущих поколений: начиная с версии WordPress 5.5.0 функция get_template_part() поддерживает третий параметр array $args. Подробнее в официальном посте.

    Оригинальный ответ:

    +1 к ответу, Капитан Какао. Впрочем, я использую все-таки стандартный get_template_part() для удобства, а переменные передаю через другое API - query_vars:
    // В файле из которого вызываем
    set_query_var( 'my_var', $my_var );
    get_template_part( 'content', 'part' );
    
    // В вызванном файле
    echo $my_var;

    Почему так? Для очевидности, в этом случае ты наглядно понимаешь что передаешь в темплейт.
    Ответ написан
    2 комментария
  • Как убрать дубли при вложенных категориях?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Установите плагин для карт сайта и в нем настройте, какие УРЛ использовать, а какие нет.
    Ответ написан
    Комментировать
  • Вывод прикрепленных фотографий/картинок записи в Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    // Начальные параметры выборки.
        $CurrentThumb = array(
            'post_status'    => inherit,
            'post_type'      => 'attachment', // Тип: аттач.
            'post_parent'    => get_the_ID(), // Родительский постовой.
            'author__not_in' => array( '1', ), // массив ID юзеров, которых не учитывать (админов)
            'post_mime_type' => 'image', // Картинка.
            'order'          => 'ASC' // Сортировка ASC или DESC?
        );
    Ответ написан
    Комментировать