Как стать автором
Обновить

Комментарии 27

В ней в формате JSON сохранены условия и значения.

a:12:{s:8:"location";a:1:
{i:0;a:1:
{i:0;a:3
{s:5:"param";s:13:"post_taxonomy";s:8:"operator";s:2:"==";s:5:"value";s:27:"product_cat:fruit";}
}
}
s:8:"position";s:6:"normal";s:5:"style";s:7:"default";s:15:"label_placement";s:4:"left";s:21:"instruction_placement";s:5:"label";s:14:"hide_on_screen";s:0:"";s:11:"description";s:0:"";s:18:"acfe_display_title";s:0:"";s:13:"acfe_autosync";s:0:"";s:9:"acfe_form";i:0;s:9:"acfe_meta";s:0:"";s:9:"acfe_note";s:0:"";
}

Это же не JSON.

Я в курсе, потому и написал комментарий.

Ошибку исправил. Вы правы, это сериализованный массив.

Он всех надурить решил! Это сериализованный массив!

Это был коварный план. Вы меня раскрыли :)

Это не JSON, это сериализованный массив

Шел 2021-й год, в WordPress из коробки всё ещё нет минимально приемлемых кастомных полей для постов и разработчики вынуждены пользоваться платным плагином(из которого недавно выпилили пожизненную лицензию).

минимально приемлемых

Не знаю людей которые считают нормальным расширять модели исключительно набором пар string=>string. Это нельзя типизировать для конкретного типа поста, доступ к этим полям предоставляется в виде четырех функций и одной формой на фронте. Если нужно как в туториале прикрепить жанр или оценку к фильму то сойдет, но если нужны вложенные структуры или повторения... придется покупать подписываться на ACF.

По-сути, все кастомные поля пользуют функционал вордпресса и они ничего не вносят в БД, просто создают функционал для управления тем, что уже имеется.

В примере я поставил понятные условия, для которых очень часто используются кастомные поля. Но, конечно, фантазии по использованию могут быть разные.

Проблема с которой я столкнулся - это вынести заполнение полей за пределы админ панели, при этом сохранив все условия применения. Внутри админки дописывать функционал не имеет смысла, там всё великолепно.

О нем и речь в посте.

@Druj же имеет в виду, что подобная функциональность не помешала бы из коробки, однако, за 18 лет в вордпрессе до этого так и не дошло.

Наверное. Но у меня нет речи о том, что нужно добавить какие-то поля. Я вывожу заполнение полей во фронтенд и получаю из БД условия по которым эти поля будут получены. Этого нет ни в обычной версии, ни в версии "про".

Поэтому я разбираю как эти поля устроены.

НЛО прилетело и опубликовало эту надпись здесь

Ну так механизм произвольных полей в WP есть, ты можешь через update_post_meta() и get_post_meta() записать и получить любые произвольные поля. И минимальный интерфейс для этого в админке тоже есть. ACF делает ровно то же самое, но оборачивает это в свою дополнительную логику. Но самое важное, что делает ACF - это избавляет тебя от необходимости писать все эти метабоксы для заполнения этих полей в админке. Что, в принципе тоже можно сделать, но ACF дешевле, чем работа разработчика) $50 на покупку PRO версии в бюджет сайта заложить не проблема.

Да, у WP есть достаточно инструментов для того, чтобы добавлять и редактировать мета информацию. И да, действительно, ACF только использует тот же функционал. В этом нет ничего нового. Но иногда не хватает функционала, который есть в ACF и приходится поверх него писать свой, используя тот функционал, который он дает.

Т.е. я не предлагаю создавать поля и писать свой ACF, но в случае необходимости дописать функционал для него можно, для этого нужно понимать как поля устроены изнутри.

Для многих разработчиков такой задачи вообще может быть никогда не будет стоять.

А для большинства клиентов и версия PRO для их задач не нужна.

В Joomla уже давно это встроенная функция встроенная в саму CMS ? вообще непонятно почему все помешались на этом блоговом движке который по сути мало что умеет без дополнительных плагинов, которые в свою очередь сильно замедляют работу сайта когда их поставят в достаточном количестве, что бы сайт мог хоть что то кроме блога.

Не могу сказать конкретно по этому функционалу - может быть есть что-то лучше (имею ввиду в других CMS). Но если брать в целом, то лучше Wordpress я не видел CMS. У меня есть опыт разработки под Joomla, Opencart, Bitrix, работал с некоторыми мелкими CMS. Помимо широкого инструментария, Wordpress очень устойчивая система, множество возможностей управления контентом, организации взаимодействия плагинов. Т.е. при правильной организации плагина я могу предоставить возможности для другого разработчика управлять всем необходимым в моём плагине, встроится в процессы другого плагина без необходимости что-то там исправлять и т.п.

ACF - это банальный пример расширения возможностей. В ближайшее время планирую несколько статей по другим аспектам разработки под Wordpress - если ознакомитесь, возможно пересмотрите своё отношение. По моему опыту - Wordpress - лучшая CMS на сегодняшний день.

Посмотрел свежий вп. Посмотрел свежую жумлу. Посмотрел последний опенкарт... Это только из близких по стеку.

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

Как раз для себя отвечал на этот вопрос - почему всё-таки Wordpress не только меня привлекает, но и, по состоянию на сегодня, является CMS #1 в мире.

Что нравится лично мне:

  1. Я могу реализовать на WP проекты самой разной направленности и сложности. WP - это не CMS, это практически фреймворк с большими возможностями.

  2. Встроено много удобных инструментов - если ими умеешь пользоваться, то можешь влиять на любой этап загрузки и работы системы, т.е. я знаю как устроено ядро и загрузка и способен изменить поведение системы в необходимом мне направлении.

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

  4. Когда вы работаете с картинками, возможно у вас возникает искушение перейти на Joomla, Opencart или, не дай бог, Битрикс. В отличии от этих систем Wordpress создал не только дружелюбный интерфейс для пользователя, но и дружелюбную среду для разработки - т.е. это и низкий порог вхождения (писать код для wordpress можно не зная всю систему досконально), и множество встроенных инструментов (шорткодов, хуков, фильтров), и расширяемые классы, и удобное встраивание в админку. При этом полно хорошей документации для начинающего разработчика.

  5. Легко настраиваемая среда мультисайтовости

  6. Конечно, простое администрирование и надежность. Для передачи проекта администратору мне не приходится его долго и нудно обучать и принимать экзамен (как в Битрикс). И меня не пугает выход из строя системы (не знаю как сейчас, но раньше это было большой проблемой Joomla - белый экран смерти) - всё решается просто включением и отключением плагинов или тем.

  7. Наличие системы быстрого доступа через WP CLI.

    ...

    Наверное много можно ещё перечислять преимуществ. Я выбрал эту CMS с точки зрения разработчика, а не администратора. Разрабатывал плагины мультивендерных систем, автопереводов, платежных систем и т.п. Во всех случаях CMS проявила себя очень хорошо. А какими картинками это обставлено - меня мало интересует.

НЛО прилетело и опубликовало эту надпись здесь

Возможно мы по разному с вами видим задачи этой статьи. Я не искал философии разработчиков ACF, моей основной задачей было разобрать устройство конкретно этого плагина - я это сделал.

По поводу того, что большинство данных в WP имеет Meta надстройку - да, это так, я это использую в разработках на своём уровне. Но это никак не влияет на то, как устроен ACF.

Со своей стороны скажу, что вообще вижу мало подобной информации, поэтому и написал статью. Она приземленная, она не ищет варианты, она просто рассказывает разработчику то, что он возможно не знает где найти.

И да, поддержу вас в том, что неплохо бы написать ещё информацию об устройстве других данных в WP - в том числе все Meta надстройки неплохо было бы описать. И виджеты, и сохранение Image, и типы полей. Но это всё уже цели для следующих статей. Пока я стартовал с простого устройства ACF.

А еще начинается веселье, когда нужно делать сложные выборки по полям ACF, но тут уже вопрос в сторону хранения данных. Благо, ACF имеет хуки, цепляясь к которым, можно заносить нужные данные в нужном виде в кастомные таблицы и с ними уже работать.

В свое время пришлось отказаться от этого плагина, потому что он не поддерживает кэширование (redis/memcache). Оказалось, что есть замечательные бесплатные плагины, которые имеют такой же набор функциональности и лишены этого недостатка, но пришлось поискать.

Можете написать?

Использую Carbonfields... Доволен как слон

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации