Нажмите это: WPGraphQL и Faust.js
Опубликовано: 2023-01-13Добро пожаловать в Press This, подкаст сообщества WordPress от WMR. В каждом выпуске участвуют гости со всего сообщества и обсуждаются самые большие проблемы, стоящие перед разработчиками WordPress. Ниже приводится транскрипция оригинальной записи.
Работает на RedCircle
Doc Pop : вы слушаете Press This, подкаст сообщества WordPress на WMR. Каждую неделю мы освещаем участников сообщества WordPress. Я ваш хозяин, Док Поп. Я поддерживаю сообщество WordPress через свою роль в WP Engine и мой вклад в TorqueMag.Io, где я делаю подкасты, рисую мультфильмы и обучающие видео. Проверь это.
Вы можете подписаться на Press This в Red Circle, iTunes, Spotify или загружать выпуски прямо на wmr.fm.
В этом выпуске Press This мы говорим о Headless WordPress, GraphQL и Faust.js. Как эти инструменты можно использовать вместе и какие затраты могут быть связаны с Headless WordPress. Мы попытаемся углубиться в это, и сегодня ко мне присоединятся два замечательных гостя. У меня есть Джейсон Бал, главный инженер-программист WP Engine из Денвера, штат Колорадо, где он поддерживает WPGraphQL. . И у нас есть Крис Вейгман, технический менеджер, работающий над Faust.js. Обычно мне нравится начинать эти шоу с того, что я спрашиваю гостей об их историях происхождения WordPress, но я решил немного изменить ситуацию здесь.
Джейсон, не могли бы вы рассказать нам, что такое WPgraphQL и какова его история с WordPress Origin.
Джейсон Бал: О да, WPGraphQL — это бесплатный плагин WordPress с открытым исходным кодом, который добавляет GraphQL API на ваш сайт WordPress, а GraphQL — это язык запросов графа. Таким образом, это позволяет разработчикам получать контент в WordPress и из него, используя язык запросов графа.
Плагин появился, я работал в газете несколько лет назад, и мы занимались синдикацией большого количества контента. У нас была сеть примерно из 54 сайтов по всей территории США, и нам нужно было перемещать контент с одной стороны на другую. Вы знаете, когда новость была опубликована, разные газеты могли подписаться на контент из других газет.
И поэтому, когда происходили различные события, нам нужно было перемещать данные по этой сети, и мы использовали WordPress REST API, чтобы выполнять большую часть этого перемещения данных. И у них были некоторые проблемы с технической точки зрения, как с технической производительностью, так и с опытом разработчиков. Я узнал о GraphQL, самом языке запросов к графам, исходный код которого был открыт Facebook в 2015 году.
Итак, я нашел эту технологию, сделал несколько прототипов, представил ее своим коллегам, а затем мы перенесли синдикацию контактов с REST на GraphQL. Затем я продолжил работу над проектом как проект сообщества, зная, что JavaScript-фреймворки становятся популярными, и это, вероятно, будет основным вариантом использования GraphQL, так как связь между серверами не является основным вариантом использования. Это удовлетворило наши потребности, но я увидел более широкое видение этого, поэтому я продолжал работать над ним как над проектом с открытым исходным кодом для сообщества.
ДП: Ну круто. Крис, можешь рассказать похожую историю о том, кто такой Фауст и как он появился?
Крис Вейгман: Конечно, на этой неделе Faust официально выпущен для публики, повторно выпущен для общедоступной платформы для создания безголовых сайтов WordPress с использованием GraphQL. Ну, его разработка началась в 2020 году, и это был своего рода неофициальный проект WP Engine, и это третий крупный стержень.
Они начали его как расширение DevRel, как бы начали делать его немного более официальным и превратились в что-то под названием GQty и очень JavaScript, менталитет разработчика в первую очередь. А потом, когда я возглавил команду 1 декабря прошлого года, мы поняли, что это не наш целевой рынок.
Мы должны были разрабатывать для разработчиков WordPress. Поэтому мы снова начали переделывать его, и только недавно его наконец-то удалось переиздать.
ДП: Джейсон, вы недавно написали в Твиттере, что запустили новый wpgraphql.com на Faust.js. Предыдущий сайт, я думаю, был безголовым WordPress. Можете ли вы просто рассказать нам об этом изменении, которое вы сделали, и вы знаете, какие улучшения вы говорите?
ДБ: Да. Итак, wpgraphql.com уже много лет является безголовым сайтом. Поэтому я использую несколько источников данных. Так что у меня много контента в WordPress, например, все посты в блоге в WordPress.
Часть документации существует и в WordPress. Кроме того, некоторая документация существует в файлах уценки в репозитории GitHub. Дольше всего я использовал Gatsby, может быть, около трех лет, я использовал Gatsby, который представляет собой фреймворк JavaScript, в основе которого лежит уровень данных, где вы можете получать данные из нескольких источников.
Поэтому я использовал это, он извлекал данные из GitHub, извлекал данные из WordPress с помощью WPGraphQL и позволял мне использовать эти данные для создания моих шаблонов. Так я им пользовался несколько лет. Есть много проблем со слоем данных, от которых я хотел избавиться.
Поэтому я хотел использовать Next, на котором построен Faust. Это еще один JavaScript-фреймворк, но, думаю, в нем было много недостающих элементов. Далее, многие из этих фреймворков JavaScript имеют идею, что ваши интерфейсные фреймворки должны определять всю маршрутизацию, верно? Но если вы используете CMS, ваша CMS определяет маршрутизацию.
И поэтому есть много технических проблем, связанных с тем, чтобы эти вещи играли хорошо, когда ваш интерфейс имеет мнение о чем-то, а ваш сервер имеет другое мнение. Таким образом, одна из проблем, которую я пытался решить, заключается в том, чтобы мой внешний интерфейс распознавал, что определенный URL-адрес был определенным типом вещи, а затем отображал шаблон, который представлял эту вещь.
Например, сообщение в блоге имеет другой шаблон, чем документ, пользовательский архив или что-то еще. Поэтому я хотел, чтобы мой интерфейс имел возможность отправлять URL-адрес в CMS, получать данные обратно, но понимать, какой шаблон возвращать. В WordPress это называется иерархией шаблонов. И поэтому, когда команда Faust смогла решить эту проблему, я подумал, черт возьми, да, я перехожу на Faust.
Итак, да, я могу взять некоторые концепции, которые существуют в ядре WordPress, такие как тематика PHP, и использовать их в безголовом, чтобы я мог использовать преимущества React и любого JavaScript, который я хочу использовать во внешнем интерфейсе, для шаблона моего сайт, но все еще знакомые концепции из мира WordPress.
ДП: Крис, вы упомянули, что «Фауст» претерпел некоторые изменения. Что это были за изменения? Знаешь, Джейсон упоминал о них. Какие изменения сделали возможным это улучшение?
CW: Он всегда был сосредоточен на WPGraphQL. Все остальное было действительно проблемой. Например, в последней основной версии Faust для взаимодействия с GraphQL использовалась библиотека под названием GQty, которая на бумаге звучала очень круто. Идея исходила от команды Faust в то время, что, давайте просто абстрагируемся, людям не нужно знать, как создавать эти сложные запросы.
Этот фреймворк должен абстрагировать это для вас. На бумаге это выглядело очень хорошо, на практике из-за всей сложности данных WordPress. Даже один тип поста может иметь так много вариаций. Может быть, вы смешиваете это с категорией, может быть, со всеми другими вещами. GQty просто не мог его включить.
Вдобавок ко всему, когда он был построен с версией GQty, действительно не уделялось внимания проблеме маршрутизации, о которой говорил Джейсон. Кто занимается маршрутизацией? WordPress хочет управлять своей маршрутизацией в соответствии с контентом, это система управления контентом, поэтому вся маршрутизация и WordPress в значительной степени основаны на контенте.
Next.js — это интерфейсный фреймворк, поэтому вся маршрутизация основана на совершенно другой парадигме того, как маршрутизация основана. То, что может быть /Blog on Next, может не иметь ничего общего с контентом для блога. Это будет набор шаблонов. Это будет частью приложения, которое может создать блог.
Принимая во внимание, что /Blog на WordPress вполне может означать, что это все сообщения в блоге. И эта парадигма при создании, если вы хотите сделать WordPress очень надежным интерфейсом или CMS с поддержкой headless, нам пришлось иметь дело с этой маршрутизацией. Еще одно изменение, когда мы сделали это, как я уже сказал с версией GQty, нашей целью были разработчики JavaScript, которые должны были использовать WordPress, что кажется благородным, пока вы не поймете, что это WP Engine.
Мы имеем дело с агентствами, которые годами работали на WordPress, но теперь по разным причинам, о которых мы поговорим позже, переходят на безголовую работу. Они знают, как заниматься разработкой WordPress. Они понимают, как работает маршрутизация шаблонов WordPress, работают шаблоны и тому подобное.
Нам нужно продвигать эти функции, чтобы GraphQL было проще использовать разработчикам WordPress. И именно в этом заключалась цель Фауста. Иерархия шаблонов просто перестраивает то, что сделал WordPress. Теперь, если вы хотите использовать маршрутизацию Next, есть способы переопределить ее в приложении, чтобы ничего не потерять.
Но для людей, которые используют WordPress как настоящую систему управления контентом, способную маршрутизировать контент с помощью управления контентом, тогда Faust справится с этим намного лучше для вас? Имеет ли это смысл?
ДП : Ага. Абсолютно. Знаешь, я думаю, это хорошее место, чтобы сделать небольшой перерыв. Вы слушаете Press This, подкаст сообщества WordPress с Крисом Вейгманом и Джейсоном Балом. Мы еще вернемся, чтобы поговорить о WordPress и безголовых. Следите за обновлениями.
ДП: Мы вернулись с Press This. И вы знаете, Крис, прямо перед этим перерывом вы кое-что упомянули, вы упомянули о том, что все больше и больше компаний становятся безголовыми, и я знаю, что WP Engine провел много исследований, показывающих, что это так. Мне как бы интересно, безголовый определенно имеет репутацию чего-то, я думаю, предприятия, когда я думаю, что безголовый, правильно ли я думаю. Это что такое без головы? Это просто инструмент для предприятий или это инструмент, который будут использовать больше сайтов?
КВ: И да, и нет. В значительной степени без головы, особенно с WordPress прямо сейчас, сложность, связанная с этим, означает, что у вас, вероятно, есть полная команда, создающая то, что вам нужно.
Это не тот, кто просто использует WordPress из коробки, вам просто нужен свой личный блог. Он может это сделать, но пока это гораздо более тяжелый подъем, чтобы иметь возможность сделать это. То же самое с Contentful, то же самое со всеми этими другими CMS. Если вам просто нужно что-то простое, что-то типа контента, который был в сети в течение многих лет, безголовый, вероятно, потребует больше работы, чем вы хотели бы иметь до сих пор.
Это строго предприятие? Смотри, нет. Гэтсби работал над этой проблемой в течение многих лет. Позже у вас будет еще один подкаст, Doc with Mastodon. Это сообщество, с которым я связан уже несколько лет. Большинство людей, использующих это, используют вариации безголовых CMS, особенно Gatsby, но есть и Hugo. Есть много разных технологий такого типа на самом низовом уровне.
Таким образом, вы заканчиваете с обычными пользователями, и вы заканчиваете с корпоративными пользователями для тяжелых сайтов, тогда как WordPress традиционно, кажется, падает со всеми остальными посередине. Это человек, который не хочет иметь дело с файлами уценки и кодом, как это мог бы сделать пользователь Gatsby, или, вы знаете, просто Gatsby из коробки в любом случае.
Но это также не тот, у кого целая команда из 10 человек создает свой личный бренд или личный блог. Это выводит WordPress из этой середины и очень легко расширяет его до обоих концов. Теперь вы можете легко строить между GraphQL, у вас есть все данные, и у вас есть постоянно растущий набор способов обработки этих данных.
И Faust значительно упрощает использование этого и то, что вы можете построить за день, а не за месяц.
ДП: Джейсон, Крис упомянул кое-что, о чем я хотел бы услышать ваше мнение. Я слышал, что это, возможно, не очень хорошо подходит для небольших команд, небольших блоггеров, таких как я, что, очевидно, имеет смысл, мне не нужен безголовый WordPress, но мне нравится , я думаю, мне интересно, будет ли безголовый WordPress стоить мне дороже, потому что мне придется иметь разработчика iOS и разработчика WordPress? Это дороже или как-то экономичнее?
JB: Наверное, зависит от того, что вы продюсируете. Если вы делаете, как вы упомянули iOS, если вы делаете нативное мобильное приложение, я имею в виду, что с этим, очевидно, связаны затраты независимо от того, и нет действительно хорошего способа сделать это, если вы используете данные из WordPress, другие чем делать это без головы, потому что вы знаете, нативное приложение не отображает php, поэтому вам придется делать это без головы.
Но что касается того, если вы прямо сейчас создаете для Интернета в традиционном WordPress, вы можете найти тему, вы знаете либо бесплатную тему, либо найти тему на рынке, загрузить ее, установить, и вы вне конкуренции. Большинство людей собираются настроить его так или иначе.
Таким образом, у вас обычно будут затраты на разработчика, независимо от того, делаете ли вы это сами или кто-то другой. Одна из особенностей безголового WordPress, которая отличается от традиционной темы PHP, заключается в том, что, например, когда я запустил новый wpgraphql.com, я смог использовать тот же экземпляр WordPress, который работал на моем сайте Gatsby.
Я получаю данные, данные выходили и поступали на сайт Гэтсби, я мог продолжать публиковать контент в CMS, одновременно разрабатывая для него свой следующий интерфейс. В традиционной разработке WordPress вам обычно приходится переносить свой сайт в промежуточную среду.
Активируйте новую тему в этой среде, создайте там свою тему, разберитесь с чем-то вроде периода заморозки контента, когда вы говорите своим создателям контента: «Эй, сегодня вы не можете публиковать контент, потому что мы собираемся мигрировать, а затем мы Я собираюсь установить новый экземпляр WordPress, живой экземпляр». И тогда вы должны войти в систему и начать делать свой контент правильно.
Безголовый WordPress, я смог перестроить свой сайт на совершенно другом внешнем стеке, ничего не нарушая в моем реальном экземпляре WordPress, это разделение данных и представления, верно? Так что я мог бы пойти, если бы завтра я хотел изучить следующую горячую технологию, например, я мог бы нацелиться на Svelte вместо Next, и мне не пришлось бы ничего менять в WordPress.
Так что в некоторых случаях это может быть даже дешевле, потому что весь этот процесс раскручивания другого сервера, заставляет вашу команду прекратить писать контент, а затем перейти в другой экземпляр WordPress, а затем начать публикацию там, выполнять дельта-миграции и тому подобное, это тоже имеет свою цену.
Еще одна интересная вещь: экосистема JavaScript действительно работает. Общий драйв, на мой взгляд, один из распространенных мотиваторов для перемещения безголовых — это компонентные архитектуры. И в экосистеме React и VUE есть всевозможные библиотеки компонентов, которые позволяют повторно использовать компоненты в проектах.
Таким образом, агентства могут создавать общие компоненты, которые они используют в проектах, и обновлять их централизованно, а затем устанавливать их в нескольких проектах. С WordPress это не так просто, потому что ваши части шаблона PHP и WordPress обычно очень тесно связаны с проектом, к которому они принадлежат.
Где с безголовым вы можете иметь пакет MPM, который имеет эти компоненты, и несколько проектов могут обновлять этот пакет и получать выгоду одновременно с меньшими усилиями. Так что я думаю, что на данный момент, я бы сказал, вероятно, это более затратно и требует больше работы, но я думаю, что такие инструменты, как Faust, которых не существовало до недавнего времени, снижают общие усилия, необходимые для создания безголовых.
И я думаю, что в недалеком будущем строить без головы будет дешевле, чем без головы.
ДП: Крис, у вас есть что-нибудь, что вы хотели бы добавить к тому, о чем агентствам, возможно, придется подумать с точки зрения затрат на безголовый WordPress?
CW: Я думаю, что Джейсон действительно попал в самую точку.
И что мне нравится в WPGraphQL, так это то, что моя команда работает над расширением WordPress в этом направлении с тем, что мы называем, наше рабочее название — React Gutenberg Bridge, но это проблема и в WordPress. Как повторно использовать эти компоненты? Я не хочу использовать слово «просто компонент», потому что оно не применяется к стороне WordPress так же, как к стороне JavaScript, верно?
Но как мы повторно используем код в проектах, безголовый или иным образом с WordPress, а безголовый делает это возможным. Но я думаю, что можно с уверенностью сказать, что средний блогер просто пытается раскрутить свои блоги о гурманах, вероятно, сам этим не занимаясь. Это во многом проблема агентства. Это больше стоит?
Может быть, а может и нет, но вот где все усложняется, когда мы говорим о том, какова цена этого? Потому что это разные типы того, как вы хотите использовать данные.
ДП: Да, абсолютно. Вы знаете, исходя из газетного прошлого, работая над Weeklys в городах-побратимах и в Нэшвилле, Джейсон, я могу представить, каково это было бы сказать вашим 56 газетам не публиковаться в течение дня.
Сегодня новостей нет, так как мы обновляем сайт.
ДБ: Да. И я имею в виду, мы прошли через эти периоды, верно? Например, когда меня туда наняли, их не было на WordPress, поэтому часть моей работы заключалась в том, чтобы перевести их из другой системы в WordPress. Так что определенно были дни, когда это было похоже на то, что все в порядке, в день WordPress. Прекрати то, что ты делаешь. Верно.
Так что определенно были такие периоды, или нам также приходилось решать эту проблему, например, ладно, они публиковали в старой системе до полуночи вчера вечером, но у нас был готовый WordPress за два дня до этого. Итак, теперь мы должны сделать дельта-миграцию и убедиться, что все данные по-прежнему синхронизированы, так что, как вы знаете, эти процессы определенно связаны с техническими и человеческими затратами.
ДП: Ага. И я думаю, что во многом, когда вы все еще используете WordPress, вы все еще получаете ту экосистему, в которой вы можете сэкономить. Вам не нужно создавать инструменты SEO.
Вы можете использовать плагин Yoast SEO или что-то еще. Я предполагаю, что даже если вы являетесь сайтом без головы, большинство плагинов все равно будут работать, если они не обращены вперед.
ДБ: Да. Это на самом деле интересная вещь. Таким образом, новый Faust построен с архитектурой плагинов. Так что, как из коробки, он будет поставляться с клиентом, он использует клиент Apollo, чтобы вы могли получать данные из WPGraphQL, вы можете получать данные WordPress, но вы можете создавать плагины, чтобы, скажем, вы сделали, как вы уже упоминалось, установите Yoast SEO на свой сайт WordPress.
Вы можете добавить плагин Yoast. Его пока нет, но скоро может. Вы можете добавить плагин Yoast для Faust во внешний интерфейс, который знает, что делать с этими данными, верно? Таким образом, у людей будут возможности, некоторые мы можем производить и поддерживать, но некоторые сообщество может также создавать и поддерживать плагины для Faust, так что вы можете добавить этот плагин всего одной строкой кода. получите такие функции, как Yoast, для безголового внешнего интерфейса.
Это то, что я не думаю, что какой-либо другой безголовый интерфейс действительно имеет такую же концепцию, как Faust. Так что я думаю, что плагин, я думаю, это еще одна вещь, знакомая разработчикам WordPress. Он приносит знакомые концепции из WordPress, но соединяет их с современным стеком внешнего интерфейса JavaScript.
ДП: это, это хорошее место для последнего перерыва здесь, в Press This, и когда мы вернемся, мы завершим нашу беседу с Крисом Вейгманом и Джейсоном Балом. Следите за обновлениями.
DP: Вы слушаете Press This, подкаст сообщества WordPress. Я ваш хозяин, Док Поп. Сегодня мы поговорим о WPGraphQL, Faust и о том, как вы можете управлять своим безголовым сайтом WordPress. Прямо перед перерывом мы говорили о Фаусте и плагинах, и я просто задам вам несколько случайных вопросов и просто посмотрю, есть ли здесь хорошие ответы.
Но Крис, мне интересно, есть ли у Faust какой-либо потенциал, я знаю, что это безголовая платформа, но есть ли какой-либо потенциал для темы WordPress Faust, которая, по крайней мере, позволяет вам настроить что-то вроде, вот плагины, которые вам нужны, и вот почти все, что вам нужно.
КВ: Абсолютно. На самом деле он у нас уже есть. Мы называем его Blueprints, потому что он очень сильно работает с Local. Большинство людей будут вносить какие-то изменения в этот материал, прежде чем запускать его на такой платформе, как WP Engine. Поэтому мы позаимствовали название Blueprints от Local.
Для нового Фауста у нас есть тема под названием «Портфолио», которая, по сути, представляет собой тему полного портфолио, и мы работаем только над очень пустым каркасом, который могут использовать агентства. Как только вы освоитесь, вы, вероятно, захотите настроить все самостоятельно. Таким образом, строительные леса будут лучшими практиками проекта, раскрутите их, а затем вы сможете делать с ними все, что вам нужно.
В долгосрочной перспективе мы очень много говорили о безголовом магазине тем, аля Blueprints. У нас нет рабочей силы, так что это немного далеко, но это абсолютно то, что мы рассматриваем, и мы хотели бы, чтобы это произошло.
ДП: Да, об этом приятно подумать. Это совершенно другая экосистема, в которую нужно попасть.
И знаете, Джейсон, я брал у вас интервью раньше, и я уверен, что этот вопрос возникает постоянно, но каждый раз, когда я слышу о WPGraphQL, я думаю, что это очень похоже на то, что делает REST API. На самом деле, это звучит намного мощнее, чем то, что делает REST API, а REST API является частью ядра, и мне просто интересно, считаете ли вы, что WPGraphQL должен быть частью ядра WordPress?
ДБ: Может быть, когда-нибудь. Я не думаю, что мы еще там. Когда что-то объединяется в WordPress Core, возможно, за исключением Гутенберга, инновации останавливаются. Например, в REST API все еще есть ошибка, на которую я указываю людям, которая все еще существует, я думаю, с 2016 года. Я имею в виду, что когда что-то входит в ядро, вы добавляете набор функций для 40 процентов Интернета и поэтому внесение изменений должно производиться гораздо медленнее, когда, если это плагин, вы можете позволить людям выбрать версию, которую они хотят выбрать, и вы можете выполнять итерации намного быстрее, потому что они могут выбрать, какая версия лучше всего подходит для их проекта.
Где в ядре, если вы обновите ядро, и оно включает критические изменения, вы, возможно, только что взломали 40 процентов сети. Итак, GraphQL — это спецификация, она не имеет ничего общего с WordPress.
Верно. Поэтому спецификация GraphQL все еще развивается. И поскольку это продолжает развиваться, мы хотим идти в ногу с последними и лучшими спецификациями GraphQL. Если бы мы объединили, скажем, WPGraphQL с Core сегодня, а GraphQL продолжал бы развиваться, WordPress застрял бы на версии GraphQL 2022 года, тогда как остальной мир использует версию 2030 года или что-то в этом роде. Я думаю, что в какой-то момент может иметь смысл распознать его, как WPCLI, как официальный способ сделать X.
Например, вы можете создать свой собственный CLI-клиент для WordPress, но сообщество признает, что WPCLI является официальной вещью. Он не является частью ядра WordPress, но официально признан WordPress Foundation и большей частью сообщества WordPress. Так что в какой-то момент может быть неплохо, чтобы WPGraphQL распознавался как есть, например, если вы собираетесь делать безголовый WordPress, делайте это так.
Он все равно останется плагином. Это моя мысль. Может быть время, когда GraphQL кажется идеальным, и на самом деле он не повторяется, и, возможно, в это время мы его рассматриваем. Но в настоящее время в спецификации GraphQL происходят изменения, которые приведут к критическим изменениям в API.
Так что делать это как плагин для меня все еще имеет смысл.
ДП: Сразу. И да, вы упомянули WPCLI, а я постоянно забываю, что они просто чувствуют, что это часть ядра. Что бы это ни звучало, это похоже на официальность. Так что да, это как, о да, это как эта независимая вещь, прямо как WPGraphQL на данный момент.
Это хорошая аналогия. Так что я собираюсь, я собираюсь закончить здесь. Было действительно здорово поболтать с вами обоими. Если слушатели заинтересованы в подписке на кого-либо из вас, вы можете подписаться на @JasonBahl и @ChrisWeigman. Мы поместим дескрипторы Twitter в описание шоу, если сможем. Вы слушали Press This, подкаст сообщества WordPress на WMR.
В выпуске на следующей неделе у нас будет Энн Маккарти, представитель по продукту в Automatic, которая расскажет об изменениях в редактировании сайта и 6.1, а также о том, что будет с 6.2. Еще раз спасибо за то, что слушаете Press This.
Вы можете следить за моими приключениями с журналом Torque в Твиттере @thetorquemag или зайти на Torquemag.io, где мы каждый день публикуем уроки, видео и интервью. Так что заходите на Tortormag.io или следите за нами в Твиттере. Вы можете подписаться на Press This в Red Circle, iTunes, Spotify или загружать его непосредственно на wmr.fm каждую неделю. Я ваш ведущий Doctor Popular. Я поддерживаю сообщество WordPress благодаря своей роли в WP Engine. И я люблю освещать членов сообщества каждую неделю в Press This.