1. 'posts_per_page' => -1, - не делайте так. Либо конкретное число, либо достаточно большое (с запасом), но все равно конкретное. Производительность.
2. $wp_query = new WP_Query( $args ); - не делайте так. $wp_query - это существующая стандартная глобальная переменная - The global instance of the Class_Reference/WP_Quer....
3. $post_id = get_the_ID(); - зачем? get_the_ID() берет глобальный текущий пост (вы же в лупе) и возвращает его ID. Там нет запросов к БД и тд.
Толстый Лорри, Не совсем. Тем более что понятие "семантики" в самом HTML имеет абсолютно автономное и полноценное значение и к БЭМ никаким боком не тулится.
Владимир Могилёв, опять же, ваши "аргументы" – по незнанию. Разберемся по пунктам:
1. $100 австралийских – это всего 72 американских. За пожизненную лицензию на неограниченное количество установок. ШАРА! Стоимость лицензии отбивается на первом же мелком проекте.
2. Есть бесплатная версия. Если не нужны прям все фичи (для многих мелких и типовых проектов), можно обойтись ею. Скоро будет 5я версия бесплатная, там много плюшек.
3. ACF Pro прекрасно устанавливается через Composer, включая лицензию. Я только так и делаю.
4. Админка отключается, пользователь не может ни деактивировать, ни изменить - для этого есть фильтр. Включили, настроили, отключили. Или вообще себе завели роль суперадмина и админку разрешили только для нее. Элементарно.
5. Консольного генератора нет, но он и не особо нужен. Можно написать или поискать на гитхабе обертку с дефолтами, чтобы генерация была проще, но имхо это лишнее – штатные методы и так прекрасны и удобны, лаконичны и понятны.
6. Ни один конкурент и рядом не стоял по качеству и удобству UI, так же как и по набору полей. Плюс еще есть 3rd party поля, локации и тд, включая плагин для сохранения метаданных (значений полей) в отдельную нормализированную таблицу(ы) БД. И еще много чего. Своя экосистема в общем. Карбон и рядом не стоял (признаюсь, мне он изначально очень понравился и вселил оптимизм, использовал его на одном крупном проекте с кучей полей. Через полгода переписал все на ACF).
7. Легко расширяется. Новые типы полей, локации и тд.
8. Инфы в сети масса. Есть форум с хорошей поддержкой. Документация - сказка.
9. Поддержка и развитие плагина, его будущее в целом - очень светлое.
10. Уже поддерживает Gutenberg, добавит в него плюшки и будет еще улучшаться.
В общем, нокаутирует всех конкурентов. Напрочь. За 72 бакса это реальная шара, которую хрен где еще найдешь.
Carbon Fields - даже тупой юзверь не сможет сломать структуру.
Вся структура полей пишется кодом. Как по мне самое нормальное решение, позволяет отбрить множество проблем.
Угу, только у ACF Pro есть JSON и PHP конфигурация полей. Скорость, версионирование, не надо в базу лазить, юзеры не поломают и вот это все. Советую ознакомиться в документации.
Роман Назаркин, не, у Gutenberg другой принцип работы, а по поводу VC да, спасибо за корректировку. Я его стараюсь стороной обходить, поэтому не помню в деталях.
Otrivin, WP сам отдает динамически robots.txt, и есть опция "Запретить индексирование" в настройках. Чтобы не путаться, на фильтр этой опции вешается коллбек который смотрит текущий домен и возвращает корректное значение опции (всегда "запретить" на деве, всегда "разрешить" на продакшне).
Slayder1, из того, что удалось за несколько недель узнать, вероятнее всего проблема в комбинации железа и оси. Все, у кого есть данная проблема, надеются на Mojave. Ждать осталось недолго, так что скоро ситуация прояснится.
Сергей, под термином "ванильный js" имеется в виду чистый js, полностью чистый код без фреймворков. Важно не перепутать это с vanilla.js, который является очередным фреймворком, но создатели назвали его таким хитрым способом)
Sanes, Если он нормально настроен. Но из CPanel нормально не настроишь. Да и уметь надо, здесь не тот случай. Как сам конкретный хостер его настроит? Хз, точно знаю из практики, что даже у таких гигантов как GoDaddy, NameCheap, SiteGround - далеко не всегда письма прилетают. Либо в спаме оказываются, либо вообще блокируются, либо с задержками приходят.
Olek1, я про безопасность ни слова не говорил. Черная дыра - это из астрофизики. Хрень такая, которая весит дохрена, имеет тенденцию к наращиванию массы, и никто не в курсе что там внутри. Папочка npm_modules является черной дырой в полном смысле этого слова.
Пычев Анатолий, полностью поддерживаю. WC достаточно сильно распыляет данные по БД, и ситуация с вариативными товарами действительно усложняет работу на порядок. Поэтому работа через АПИ WC на уровне PHP является действительно наиболее грамотным подходом, если работать в рамках WP/WC. Но если, к примеру, речь идет о стороннем скрипте импорта/обновлений на основе данных из сторонних источников (при изменении курса, например), или на уровне CLI - тогда работа с запросами напрямую имеет смысл. Но придется поковыряться, да. В ответе я в первую очередь дал понять ТСу, что пытаться сделать все одним запросом - глупая затея.
По поводу раздутых до ужаса без особой надобности фронтендов я целиком и полностью согласен.
Пример из жизни - мы с коллегой поддерживаем один крупный проект (на WP кстати) уже несколько лет, и там фронт максимально чистый (хотя тех же трекеров клиент напихал много, ну надо им, ничего не поделаешь). Недавно появился у них в конторе новый разраб, которому доручили подправить небольшой калькулятор. Сам калькулятор написан на Vue.js. Чувак, чтобы использовать одну функцию для удобной работы с массивом, подключил _lodash, целиком и полностью. Просто потому что блять сраный фронтенд позволяет делать npm install и не *бать себе мозг что там внутри. Я code review делать захожу в PR, а там вес билда вырос так нехило, сразу в глаза бросилось... Сеть уже трещит от приколов по поводу черных дыр в npm_modules, но многие даже не задумываются об этом.
СЕОшники и разработчики могут что угодно рассказывать, но когда маркетинг говорит, что им нужны скрипты ретаргетинга их кампаний, то хочешь не хочешь, а их приходится ставить. И сразу сверху десятки запросов на сторонние сервера, задержка TTI, замедления парсинга и тд. Но маркетинг со своим ретаргетингом бизнесу бабки генерирует, в том числе на зарплату разрабам и сеошникам. Поэтому приходится делать. Грамотные разрабы делают максимально грамотно - обучают использовать по максимуму одну систему для всего (GA/GTM), используют кеширование внешних скриптов и тд.
2. $wp_query = new WP_Query( $args ); - не делайте так. $wp_query - это существующая стандартная глобальная переменная - The global instance of the Class_Reference/WP_Quer....
3. $post_id = get_the_ID(); - зачем? get_the_ID() берет глобальный текущий пост (вы же в лупе) и возвращает его ID. Там нет запросов к БД и тд.