• Какие best practice разработки с WordPress для новичка?

    HeadOnFire
    @HeadOnFire Куратор тега WordPress
    PHP, Laravel & WordPress Evangelist
    Во-первых, прекратите спамить всех подряд, такой подход не очень продуктивен.

    Во-вторых, у вас не вопрос. Вопрос - это как правило одна (иди хотя бы одна главная) проблема, которую можно решить одним ответом. Как правило не очень объемным, потому что S из SOLID, как мы знаем, это Single Responsibility Principle. Ваш вопрос его нарушает чуть более чем полностью. Из этого следует, что вам нужно разбить ваш вопрос на множество других. И задавать их желательно по порядку, получая ответы, применяя их в жизни, практикуясь, и только потом переходя далее. Ибо влить в мозг весь этот объем информации за раз можно только в фильме "Матрица", а мы, увы, не там.

    Тезисно пройдусь по пунктам, чтобы прояснить ситуацию.

    Хочу изучить новые инструменты и вообще понять что есть best practice в мире wp сейчас!

    Не существует единой best practice. Есть разные подходы, каждый из них имеет плюсы, минусы и право на жизнь. Все очень сильно зависит от команды, ее размера и опыта, компании и процессов, клиента, проекта, его размера и бюджета и тд. Ну а общие принципы мало отличаются от разработки в целом, будь то Symfony, Laravel, Ruby on Rails и тд.

    Я нашел много интересного, но пока не понимаю как это всё собрать воедино, что зачем нужно, много непонимания

    Это нормально. Почему - перечитайте абзац про Single Responsibility Principle выше.

    1. среду разработки использую PhpStorm, по университетской лицензии.

    Несущественно. PhpStorm отличная IDE, пожалуй лучшая для разработки на PHP в целом, WP или нет - не важно (сам использую именно ее). Но далеко не все могут использовать ее бесплатно по университетской лицензии, многие покупать не хотят, многим не нравится производительность. Стандарт ли это? Для кого как.

    2. для версий кода использую Git, храню локально и на Gitlab.

    Git - это наиболее популярная VCS на данный момент. Само использование системы контроля версий является стандартом, во всем мире разработки.

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

    Использование локального сервера - стандарт. Обязательно, не обсуждается. Пушить на shared - плохая практика (и пушить на прод, и shared). Изучаем про локальные сервера, Continuous Integration и Continuous Delivery. Впрочем, для WP важно понимать, что бОльшая часть проектов будет простая и небольшая, со скромным бюджетом, а там вся эта кухня может быть лишней (смотрим абзац про зависимость best practices от проекта и тд). Поэтому обычного простого деплоя по мерджу в мастер хватит. Гугл в помощь.

    4. работаю под Linux, знаком с консолью, bash, но не понимаю как использовать wp-cli, в чем он удобен?

    WP-CLI это инструмент. Использовать его - хорошо. Чем удобен / полезен поймете когда разберетесь с деплоями, автоматизацией и тд. Но не поймете если не начнете заставлять себя с ним работать.

    5. присматриваюсь к Roots и Bedrock, но не понимаю как к ним подступиться, нужно объяснение что и зачем делать, какие-то инструкции..

    Рано. Очень рано вам к ним присматриваться.

    6. хочу начать использовать composer

    Начинайте. Гуглите, материалы на эту тему есть. Будут конкретные вопросы - задавайте, будем отвечать.

    7. хочу начать писать тесты, PHPUnit?

    Если бы спрашивали за Laravel, то да. Но по WP - забудьте. Думать про тесты в WP вам рано и не нужно. Голову сломаете. Да и проекты, где это понадобится вам пока не светят.

    Сейчас как-то грустно, что wp любят поносить за его "легкий вход", "говнокод", "это не программирование" и т.д.

    Это не только сейчас и не только про WP. Добро пожаловать в прекрасный мир разработки, где каждый второй с радостью обосрёт инструмент, о котором мало что знает или потому что ему лично он не подходит / не нравится. Вырабатывайте свое личное мнение. WP сам по себе лишь инструмент. Хороший или плохой - не важно. Он решает определенные задачи, и делает это лучше / быстрее / дешевле / проще других.

    Как всё это собрать вместе?

    Постепенно. Шаг за шагом. Слона нужно есть по частям, иначе подавитесь.

    Прошу подробных ответов, по возможности со ссылками и/или инструкциями.

    Это придется накатать книгу, и не одну.

    Хочу учиться.

    Достойное желание. Учитесь, никто не мешает. Гугл, кодекс, кама и другие ресурсы в помощь.

    Бонус: запомните одну простую истину - вы не сможете что-то изучить или освоить, если не начнете с ним работать. Только на реальной практике можно понять и осознать. Можно прочитать 10 лучших книг про ООП (для примера), но пока вы не напишете, выбросите, перепишете несколько раз свой код на ООП, вы его не поймете.
    Ответ написан
  • Как создать поля формы Wordpress с кнопкой добавить еще?

    anatoly_kulikov
    @anatoly_kulikov
    Помог ответ? Отметь решением!
    Я однажды видел, как ребята сделали такую форму с помощью Contact form 7. Они сразу сделали несколько строк, но всё, кроме первой, скрыли. При нажатии на кнопку появлялись "новые" строки, а при достижении лимита кнопка просто отпадала.

    Вот как вариант могу предложить.
    Ответ написан
  • Как сделать разные шапки для страниц?

    Palych_tw
    @Palych_tw
    Типа веб-разработчик
    Можно подключать разные хедеры. Например. header.php подключается через get_header(); а header-main.php можно подключить через get_header('main'); аналогично можно подключать разные футеры и сайдбары
    Ответ написан
  • Woocommerce и поддержка Gutenberg?

    mihdan
    @mihdan
    WordPress-евангелист, ведущий РНР - разработчик
    Поставьте официальный плагин WooCommerce Blocks.
    Ответ написан
  • Чем грозит использование Wordpress на старой версии PHP 5.2.17 и как безболезненно обновиться на последнюю версию PHP/Wordpress?

    xEpozZ
    @xEpozZ
    Веб-разработчик
    В старых версия:
    1. Хуже производительность.
    2. Присутствуют уязвимости, которые починили в новых версия.
    3. Дальнейшая поддержка.
    4. Отсутствие мотивации и желания писать на старых вещах (если позовете прогера в команду)
    5. Нет фич, которые появились в новых версия
    6. Поддержка вендоров старых версия. Как раз ваши плагины не становятся, потому что производитель сказал "использовать только с 7 версии", например.

    Как обновиться? Пишите хостеру об обновлении пхп или смените хостинг
    Ответ написан
  • Как переопределить содержимое галереи Wordpress?

    mihdan
    @mihdan
    WordPress-евангелист, ведущий РНР - разработчик
    Вопрос решается расширением галереи через JS, так как хук post_gallery относится с галереям до Gutenberg.
    Ответ написан
  • Как добавить свой slug автоматически при создании элементов Таксономии?

    ya-vitaliy
    @ya-vitaliy
    Верстаю... + wordpress и пробую Laravel
    add_filter( 'wp_insert_term_data', 'hook_term_change_slug', 10, 3 );
    function hook_term_change_slug( $data, $taxonomy, $args ){
    
        if($taxonomy == 'superheroes'){
            //this is for slug part
            $data['slug'] = sanitize_title($data['slug'])."-marvel";
        }
    
        return $data;
    }

    Код вставьте в function.php
    Ответ написан
  • Как передать в Contact Form 7 название записи?

    1. Создаете скрытый инпут, в который будет передаваться название слайда.
    2. Через js при клике на кнопку "Купить" ищете заголовок и передаете его в скрытый инпут, который потом отправляется на почту

    $(document).ready(function() {
    	var title;
    	$(".slider-courses-content-buy-btn a").click(function(event) {
    		title = $(this).closest('.slider-courses-content').find('.slider-courses-content-desc-header h3').text();
    		$(".ваш_скрытый_инпут").val(title);
    	});
    });
    Ответ написан
  • Как добавить параметр для одной ссылки меню WordPress?

    mihdan
    @mihdan
    WordPress-евангелист, ведущий РНР - разработчик
    add_filter( 'nav_menu_link_attributes', 'wpse121123_contact_menu_atts', 10, 3 );
    function wpse121123_contact_menu_atts( $atts, $item, $args ) {
      // ID айтема в меню
      $menu_target = 123;
    
      if ( $item->ID == $menu_target ) {
        $atts['rel'] = 'nofollow';
      }
      return $atts;
    }
    Ответ написан
  • Как называется специалист?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Это зависит от штатного расписания и кадровой политики предприятия. В маленьких коммерческих компаниях, кадровик зачастую может вписать вам в трудовую всё, что пожелаете. Хоть системного архитектора. В государственных организациях, чем бы вы не занимались, а в трудовой будет должность по общероссийскому классификатору профессий - программист. В крупных компаниях список возможных должностей для каждого отдела зафиксирован, как и условия получения должности. Часто более кучерявые звания являются одним из способов нематериальной мотивации.
    Ответ написан
  • Как правильно сделать живой поиск?

    dimovich85
    @dimovich85
    JS is everywhere
    Для работы с полями ввода есть набор событий:
    1. focus - пользователь поставил фокус на поле ввода.
    2. blur - пользователь убрал фокус с элемента вода.
    3. input - пользователь как-то что-то ввел. Это лучше, чем keyup, ибо не надо проверки keyCode, второе потому что пользователь может в поле вставить текст, что тогда будет с Вашим keyUp? Событие input срабатывает каждый раз, как пользователь сделал изменение в поле ввода.
    4. change - пользователь ввел данные и убрал фокус с поля ввода, то есть это input + blur. Событие происходит не так часто, как input, но и не заставляет проверять value на изменение, как это придется делать при blur.
    5. submit - срабатывает на всей форме, при попытке отправить данные, в данной задаче скорее не интересное событие.

    Для живого поиска логично использовать input, по которому надо отправить текущее value через ajax на сервер и далее ответ куда-то распечатать. Вопрос в другом, ведь событие срабатывает довольно часто, и кто-то печатает так быстро, что и запрос-ответ не успеет, поэтому логично сделать тут debounce с задержкой в приблизительно 300мс, чтобы отправка/получение сработало когда пользователь притормозил в наборе текста или вообще прекратил ввод.
    Ответ написан
  • Как из админки вставлять обычные картинки, и шрифтовые-картинки от font-awesome в wordpess?

    @azerphoenix
    Возможно ли в wordpess динамически вставлять картинки которые я отметил на скриншоте в примере, чтобы менять можно было из админки? Как это правильно сделать?

    Запросто! Это называется кастомные поля. например, плагин ACF или фреймворк Carbon Fields
    1) установить ACF
    2) создать поля и указать, где выводить. Так как они должны выводиться на всем сайте, то рекомендую посмотреть в сторону acf options
    3) вывести поля в шаблоне
    4) добавить картинки и текст
    Готово
    Ответ написан
  • Почему jquery не хочет перемещаться в футер в worpdress?

    dimasmagadan
    @dimasmagadan
    есть какой-то скрипт (например query monitor), который вызывается в шапке и имеет в зависимостях jquery
    Ответ написан
  • Годный материал для обучения SEO?

    OtshelnikFm
    @OtshelnikFm
    Мои работы: otshelnik-fm.ru
    СЕО как астрология. На просторах инета написано много, но нет единой базы знаний и что страшно - никто не понимает как это работает - только догадки. Ну есть конечно такие общие понятия как семантическое ядро (звезды) заголовки и метатеги (созвездия), но вот если углубиться в ранжирование - то мы получаем понятия "близнец сегодня в созвездии девы"
    Ответ написан
  • Почему value в ACF передается только одним или первым символом?

    Chefranov
    @Chefranov
    Front-End, Back-End
    Выберите опцию "Возвращаемое значение" - "Оба (массив)"
    Ответ написан
  • Есть ли плагины личных блогов для пользователей на ВордПресс?

    @azerphoenix
    Просто переведите ВП в режим мультисайта и получие аналог wordpress.com
    Ответ написан
  • Как добавить обсуждения?

    OtshelnikFm
    @OtshelnikFm Куратор тега WordPress
    Мои работы: otshelnik-fm.ru
    Если это кастомный тип записи - то:

    'supports' => array('comments')
    - это стоит?

    Читаем доки: https://wp-kama.ru/function/register_post_type
    Ответ написан