WordPress Planet

May 23, 2019

WPTavern: Automattic Acquires Prospress, the company behind WooCommerce Subscriptions

Automattic has acquired Prospress and its flagship WooCommerce Subscriptions product, along with the company’s entire suite of e-commerce plugins and automation tools. Prospress’ 20 employees will be joining Automattic to continue developing and supporting their products.

There are no immediate changes planned for current WooCommerce Subscriptions customers. Automattic will begin working on a roadmap for the product after integrating the Prospress team into the company.

In the announcement Q&A, Prospress founder Brent Shepherd said he is excited to see how Subscriptions will integrate with Automattic’s existing products and offered a glimpse at what they may be working on in the near future:

In more specific terms, that could mean looking at closer relationships with how payments are handled, or integrations with other platforms such as WordPress.com. There are also a couple of things to solve both in WooCommerce and subscriptions to help them scale better. Interestingly, these challenges are almost identical for the two codebases. By working more closely to solve them than we ever could apart, I hope we can do a better job of implementing solutions and in a shorter time frame.

WooCommerce Subscriptions can already be purchased a la carte and used on WordPress.com stores, so nothing will change in this department. I asked Paul Maiorana, head of partnerships for WooCommerce, if there are any plans to integrate Subscription functionality with Jetpack sites, as the plugin’s team is currently pursuing a Membership feature that is essentially recurring payments.

“We’re excited to learn from the Prospress team as they’re experts in this space, and could see Memberships potentially leveraging some of the Subscriptions code to avoid duplicating efforts — but we have no plans to integrate the products,” Maiorana said.

The Prospress acquisition also includes AutomateWoo, a marketing automation tool, and Robot Ninja, which offers automated checkout testing for WooCommerce stores. Prospress acquired AutomateWoo in June 2018 as a complementary product to Subscriptions. There are no immediate changes planned for these products that would affect customers.

Prospress has been deeply invested in the WooCoommerce open source project for many years. WooCommerce has 834 contributors and Shepherd is currently among the top 10. His company committed to the five for the future initiative last year by sponsoring one of its employees to contribute full time to WooCommerce core. For the past five years Shepherd has also co-organized the WooCommerce San Francisco meet-up.

Cornering the market on Subscriptions and being able to ensure a tight integration for customers gives WooCommerce a more competitive edge in the broader e-commerce space. Prospress’ smaller products are also strategic additions to WooCommerce’s offerings. If Automattic can integrate the marketing automation and automated checkout testing tools in one hosted package, these tools have the potential to greatly increase customer’s success and confidence in their WooCommerce powered stores.

by Sarah Gooding at May 23, 2019 11:20 PM under woocommerce

WPTavern: Take the 2019 WP&UP Mental Health and Well-Being Survey

WP&UP is a mental health and well-being charitable organization founded by Dan Maby in 2018, whose mission is to promote positive mental health throughout the WordPress ecosystem.

The organization is currently hosting a survey to better understand the needs of the community.

The questions cover the general work environment, general mental health and well-being, and specific work-related mental health and well-being. The survey will close next week and the results will be anonymized, open-sourced, and shared with the community.

by Jeff Chandler at May 23, 2019 10:29 PM under survey

Post Status: Automattic has acquired Prospress, the makers of WooCommerce Subscriptions

Automattic has acquired Prospress, the team led by Brent Shepherd, and the makers of the largest WooCommerce extension, WooCommerce Subscriptions.

The acquisition secures a future for Subscriptions under the primary Automattic umbrella, and it’s an increasingly important part of WooCommerce’s success.

Subscriptions offers the most powerful and flexible subscription option in the eCommerce market, and it’s common for stores to use WooCommerce because they need Subscriptions.

Other providers, namely market leader Shopify, do not offer an in-house subscription option, and their third-party options are not nearly as advanced as WooCommerce Subscriptions.

Prospress brings a couple other products and services with them
AutomateWoo and Robot Ninja primarily — but Subscriptions is the real breadwinner. It has long been the highest revenue extension in the WooCommerce marketplace.

Paul Maiorana, WooCommerce’s Head of Payments, Shipping, and Partnerships, tells me, “Subscriptions is an important differentiator for WooCommerce amongst eCommerce platforms, and we’re really excited to now be working closely with the Prospress team to create a more unified experience.”

I have known Brent and his team for a long time, and I’ve used Subscriptions for many years. It’s an outstanding and complex project that requires enormous amounts of testing, a skilled development team, and a lot of care.

In 2017, the support structure changed for third-party WooCommerce extensions, which led to an immediate surge of support hiring by the largest extension providers — namely Prospress and SkyVerge — for whom, for the purpose of disclosure, I do contract work.

Support is the biggest component of a plugin company, especially for a complex one like Subscriptions, which interfaces (sometimes in very different ways) with dozens of payment processors. I have seen spec documentation for their proposed new features, and it is astounding how much detail is required to be outlaid before a single line of code is changed or written.

With Automattic, a company that formerly consisted of a few dozen folks now has the backing of hundreds of “Happiness Engineers” to help manage the load.

The primary risk I see for Subscriptions with Automattic is that it will get lost in the fray if Prospress developers are pulled to other work and more pressing needs. I have perceived this to be the case with their ownership of WP Job Manager, WooCommerce Bookings, and some other extensions — though none with the significance of Subscriptions. I think the strategic importance of Subscriptions should keep that at bay under good management, and I know Automattic management understands that strategic importance.

Automattic will eventually go public, I’m almost certain. Strategically, I fully believe the Prospress acquisition is the right move for them. If I were involved, I would’ve been trying to make this acquisition for years now.

Having significant revenue streams under the scope of a company out of your control is a risk, to my thinking as a theoretical investor. I would take this now in-house feature set direct to marketing channels against Shopify
— which is an absolute juggernaut in the eCommerce space today, particularly among high revenue generating stores.

I don’t know what led Brent to make the choice to join Automattic now, but it’s a much-deserved exit after something like eight years of work.

Brent said the following in the announcement Q&A:

I’m extremely proud of what we’ve achieved at Prospress. I’ve had the great pleasure of having some amazing people join me over the years. Together I believe we’ve advanced a mission that matters to me — so much so that it predated Prospress and even WooCommerce.

I believe joining Automattic is the best next stage for Prospress, and I am personally excited to lead the transition and work with the Automattic team to further WooCommerce.

I’m very happy for Brent and the entire Prospress team. I hope they made a fortune with this acquisition; in my mind, Subscriptions is one of the key reasons for WooCommerce’s amazing growth as a platform. I think they will do great there, and I have no doubt they will stay committed to making Subscriptions continue as a terrific tool in the toolbox that is WooCommerce.

by Brian Krogsgard at May 23, 2019 07:31 PM under Planet

WPTavern: Google Updates Mobile Search Results to Include Website Branding

Google is rolling out an update to mobile search results that includes website branding. The new design displays a website’s name and icon at the top of the listing so users can easily scan results. If the result is an ad, it will be indicated in bold next to the website’s address. Below is a before and after look at the visual refresh of the mobile search results page:

image credit: Google

Google automatically fetches a website’s favicon for search results, so most website owners with a favicon already in place should not have to do anything to enable branded mobile search results.

In 2015, WordPress 4.3 added Site Icon support to the Customizer, so users do not need to rely on a plugin to upload a favicon. WordPress stores the icon so that users do not have to upload it again when switching themes.

A simple, recognizable favicon establishes a visual identity for your site, and Google’s updates to mobile search results should be a strong reminder not to forget one when building a new site. Site owners may even want to spend more time designing the icon, now that a favicon’s usefulness extends beyond browser tabs to lend more authority to search results. The changes are just now rolling out to mobile but will likely be coming to desktop searches in the near future.

by Sarah Gooding at May 23, 2019 05:06 PM under search

WPTavern: Elementor Launches Hello Theme on WordPress.org

Elementor launched its Hello theme on WordPress.org this week. After just a few days in the directory, the theme already has more than 10,000 active installations. It is essentially a blank starter theme that offers 100% compatibility with Elementor.

Page builders with a large user base are in a unique position to influence the WordPress theme market. Loyal users will often select a page builder before choosing a theme from a limited pool of those that boast compatibility with their preferred plugin. Elementor is no exception, with more than 2 million installations and a 4.8-star average rating on WordPress.org.

Lately the trend with some of the most popular and intuitive WordPress themes is to offer a strong, niche design out of the box, where users don’t have to make too many choices or fiddle with settings. Hello takes a different path, opeorating as more of a conduit to the Elementor page template library.

The theme’s screenshot shows a home page designed in Elementor but the actual theme has very few styles and doesn’t look like anything out of the box.

Once installed, the first step is to create a page and select “Edit in Elementor.” From there users can select from a library of different landing page templates or start building their own layouts from scratch.

Hello is not a new theme. Elementor first released it on GitHub in March 2018. Hosting it on WordPress.org allows users to more easily install it and get automatic updates for improvements and security fixes.

“The plugin repository played a huge role in Elementor’s exceptional growth, and we hold similar high hopes for the Hello theme,” Elementor CMO Ben Pines said.

There are a few major drawbacks to using the Hello theme that may hinder its potential growth. Access to headers, footers, and widgets is restricted to Elementor Pro users. This seems like a confusing way to build a WordPress site and might be a useful detail to include in the theme’s description on WordPress.org. If there’s another way to access headers and footers without purchasing Elementor Pro, I wasn’t able to find it.

WooCommerce store owners should be aware that the Hello theme does not yet offer comprehensive support for WooCommerce page styles. Although the release post advertises the theme as having “out-of-the-box” compatibility with WooCommerce, the store pages are bare bones and not very attractive. One user commented that the checkout and cart pages do not look very inviting and asked if it will be possible to edit fonts and colors with Elementor.

Elementor representative Matan Naveh responded to multiple concerns about WooCommerce support and said that full compatibility is still in development:

WooCommerce is a highly complex plugin and any pages that rely on its basic elements (e.g. Cart, My Account, Checkout, etc.) are even more so. The level of complexity is such that changes in something as routine as a WooCommerce update could cause havoc on a layout, resulting in a devastating effect on the webpage’s functionality.

Currently, Elementor enables you to customize the areas surrounding the WooCommerce elements. Take the cart page, for example – You may not be able to customize the table itself, but you can customize the title or the area where the table is located. You can also insert your own images, backgrounds, and content according to your needs (e.g. adding an FAQ).

We are considering several options for achieving full compatibility with WooCommerce. But this is still in its development stages.

Some users who switched from the Astra theme, another one commonly used by Elementor users, have reported significant (50%) decreases in loading time on real world sites after switching to the Hello theme. Elementor claims that it is “the fastest WordPress theme ever created,” but the comparison benchmarks posted don’t include any themes that are known for high performance.

Elementor is working on creating a child theme for Hello. It is currently in development on GitHub and the team is working on getting it approved for WordPress.org.

The primary purpose of the Hello theme is to offer compatibility with the page builder, but it is not recommended for users who are not using Elementor.

by Sarah Gooding at May 23, 2019 02:10 AM under free wordpress themes

May 22, 2019

WPTavern: WPWeekly Episode 353 – Slack of Boundaries and A Walk to WCEU

In this episode, John James Jacoby and I discuss an article published by Vox on how Slack is not improving productivity, especially in large team environments. We highlight what’s new in WordPress 5.2.1, why libraries are important to the communities they serve, and new security features in WordPress 5.2. At the end of the show, we send a shoutout and good wishes to Marcel Bootsman who has begun his walk to WordCamp EU.

Stories Discussed:

WordPress 5.2.1 Released

The Productivity Pit: How Slack Is Ruining Work

Marcel Bootsman begins his walk to WCEU

WordPress 5.2 Improves the Security of Automatic Updates

Loveland Public Library to Host Free Beginners WordPress Class Online May 22, 2019


EPISODE 353 – Slack of Boundaries and A Walk to WCEU Transcript

WPWeekly Meta:

Next Episode: Wednesday, May 29th 3:00 P.M. Eastern

Subscribe to WordPress Weekly via Itunes

Subscribe to WordPress Weekly via RSS

Subscribe to WordPress Weekly via Stitcher Radio

Subscribe to WordPress Weekly via Google Play

Listen To Episode #353:

by Jeff Chandler at May 22, 2019 10:47 PM under wordpress 5.2.1

May 21, 2019

HeroPress: Growing Through Translating WordPress

Pull Quote: It takes time to build trust.


I have spent most of my adult life knowing WordPress. In November 2003, a few months after I discovered WordPress, I gave it a spin on my personal blog. A few months later, I started contributing in the form of translating WordPress core and documentation into Japanese.

Today, I make a living as a project and community manager in the field of translation & localization. I get to help people all over the world publish their voice online using their own language, while raising two kids in Tokyo, Japan. This is all thanks to WordPress, which showed me the brand new world of open source I never knew existed, and those who had given me the opportunity to participate in it.

Let me share my story about how WordPress has changed my life.

WordCamp Tokyo 2018 organizing team & volunteer staff

Discovering WordPress

I first found WordPress in the summer of 2003. At that time, with a degree in graphic design at a state university in the Midwest, I was working in a field that had nothing to do with design or web. The small web marketing company I joined after graduation couldn’t make it through the dot com bubble. When I moved back to the U.S. with my then-husband for him to go back to graduate school in Detroit, I couldn’t re-enter the field because of my lack of experience. I settled with a temp in-house translator/admin assistant position at an automotive company to financially support the household. You could say it was a practical choice. Or, to put it frankly, I just gave up and went with the demand for the clerical job with Japanese skill.

The good thing that came out of it was that I had plenty of time after work. My ex-husband had to study all day, and my temp job was precisely 9-5. Every night, we rarely watched T.V. or went out but headed for our computers. I worked on my own website and sometimes friend’s site for a fee, using just HTML and a little bit of CSS. Back then, reading blogs written by web designers was the best way to follow up-to-date news and techniques of frontend development.

Inspired by those blogs in both English and Japanese, I decided to start mine. I published my first post on a Movable Type blog in April 2003. I wrote almost every day for a few months. Then as I was getting frustrated with some aspects of Movable Type, I tried several blog engines including WordPress.

With WordPress, the process of customizing blog design through edits to PHP files was straightforward and enjoyable, so I got addicted to working with WordPress right away. I almost had no experience beyond HTML and CSS before then, but I was surprised that I was able to create a dynamic site myself.

My blog design between 2003-2019

Translating WordPress

In November 2003, I re-launched my blog using WordPress. In December, I learned that there was a person named Otsukare who made a Japanese version of WordPress. This fork of WordPress, called “WordPress ME (Multilingual Edition)”, had the first comprehensive WordPress resource site in Japanese, with documentation Wiki and phpBB forums. Through the forum, I started helping him with translating documentation from English to Japanese.

WordPress stayed as a relatively minor blog tool/CMS in Japan for years, but that didn’t change the fact that it was a piece of software that I really enjoyed using. I kept translating Codex, participated in theme competitions, and helping others on the forums. It was the first time for me to experience being part of an open source community and working together with people I’ve never met in person (and without being paid!).

What kept me going was the feeling that I’m part of something bigger. I loved using WordPress, and it was exciting that I could help spread the word. WordPress community gave me a chance to work with people around the world — years before “remote work” was a universally recognized word. There were no free voice/video chat applications, no Slack, but the interpersonal connections have grown deeper because everyone in the community was centered around a tool to deliver your voices to others far from reach.


Organizing WordCamp Tokyo

In 2007, I went to WordCamp San Francisco and had a short conversation with Matt Mullenweg. I vaguely remember my question – something like “I love WordPress, and I want to help spread it more in Japan. What should I do?” But I still clearly remember his answer.

“You should do a WordCamp.”

Although it probably was just a casual suggestion since we happened to be at a WordCamp, that idea stayed with me. That short interaction was no doubt the initial trigger of our first WordCamp in Japan, a year later. I was living in the U.S., but that really didn’t matter. Japanese WordPress translators, developers, and users who knew each other through the forums and blogs all worked together to run WordCamp Tokyo 2008.

WordCamp Tokyo 2008. Photo credit: Odyssey

Career and Leadership

My career also changed dramatically between 2006 and 2009.

Because I gained general blog template customization skills through working with WordPress, freelance work started to come in. I also had the opportunity to write WordPress books in Japanese. Thanks to WordPress, I was able to learn and practice the idea of ​​Web Standards. My ability to write solid markups was valued, and I got my first full-time technical job as a frontend engineer at an ad agency in a suburb of Detroit.

In April 2009, I started as a part-time Happiness Engineer (customer support for WordPress.com) at Automattic, then in 2010 offered a full-time position. Since then, my role had evolved into the field of localization, and I’m happy to tell you that my 10th anniversary is coming up soon.

In the past few years, I’ve taken up some more global responsibilities within the WordPress community, such as one of the Global Mentors for the Polyglots Team, and lead organizer of WordPress Translation Day 4. Most recently, I was selected as the global leader of the first WordCamp Asia (planned for 2020 in Bangkok, Thailand).

Growing and Giving Back

The WordPress community taught me so much.

  • Keep making efforts in good faith and results will follow.
  • It takes time to build trust.
  • Everyone has the potential to grow.
  • You can’t ignore diversity so might as well embrace it.

Sometimes the process of gaining such new insights was painful, but I still feel I’m lucky to have been given challenges that made me grow.

To give back, I want to continue helping communities outside of the English speaking world. I believe that’s the most powerful thing I can do to remove the barriers on the web and the vast world that it touches.

Tokyo WordPress Meetup / WordPress Translation Day 4


WordPress を通して成長できたという話



WordPress のことを知ったのは、約16年前でした。

その数カ月後には元持っていたブログを WordPress に切り替え、さらにまた数カ月後には現在も続いている WordPress への翻訳という形での貢献を始めることになりました。振り返ると、社会人になってからほとんどの年数を、WordPress とともに過ごしてきたわけです。

私が現在東京で子育てをしながらグローバルかつ柔軟な環境で働くことができるのは、新しい世界を見せてくれ、機会を与えてくれた WordPress の存在のおかげです。

今こうやって、「WordPress との関わりが自分と周りの『バリア』を破ったこと」というテーマで記事を書かせてもらうにあたって思いを巡らせてみると、本当にこのソフトウェアと出会わなければまったく違う人生を歩んでいただろうなと思います。多くの人たちにもめぐりあうことはなかっただろうし、仕事はもちろん、住んでもいる場所も違っていたかもしれない。

そんな、私にとってとても大きな存在の WordPress が、迷える20代を過ごしていた自分をどんなふうに変えてくれたかのお話をしようと思います。

WordPress との出会い

私が WordPress を知ったのは、2003年の春か夏頃でした。その頃の私はというと、高校留学後にアメリカ中西部の地方大学でグラフィックデザインの学位を取ったものの、新卒で入った小さな会社がドットコムバブルで立ち行かなくなったり、当時の夫の大学院入学のためにアメリカに戻ってきても経験不足で Web 関係の仕事には就けなかったり。とは言え家計を支える立場を選んだわけで、一旦やりたかった仕事はあきらめて、日系自動車会社で派遣をやっていた日々でした。インハウス翻訳者兼事務補助職のような感じで、お給料と需要を優先して良く言えばがむしゃらにがんばっていたし、悪くいうと目の前のことでいっぱいいっぱいという状況。


趣味やフリーランスの制作者として細々と HTML 手打ちのサイトなんかも作っていたのですが、Web デザイナーが個人で発信する情報はその当時ブログを読むのが何より最新で、ワクワクするものでした。

そこからいきなり WordPress をインストールしたわけではなくて、まずは一番簡単そうだった Blogger.com を触ってみて制限がちょっと多すぎると感じ、Movable Type をしばらく運用してあまり相性がよくないかもと感じた、というのが私のブログ作りのスタートでした。その後ぴったりなタイミングで b2 からフォークしたリリース版を出したばかりだった WordPress に出会いました。

PHP のファイルを触りながら自分のブログを作っていく過程が本当に楽しくて、いつのまにか WordPress にハマっていました。そのころはシンプルな構成だったからというのはもちろんあるんですが、それまでほぼ HTML と CSS しか書いたことがなかった自分がいつのまにかそんなふうにいわゆる「動的」サイトを作れるようになっていくことに自分でも驚きました。

WordPress 翻訳を始める

2003年11月にブログエンジンの変更を完了したサイトを公開し、12月に日本語版の WordPress フォーク “WordPress ME (Multilingual Edition)” を公開しているサイトがあることを知りました。Otsukare さんというエンジニアが行なっていた日本語情報の発信や日本語フォーラムでの回答をお手伝いしているうち、1ユーザーからファンへ、そしてローカリゼーションという分野でのコントリビュートをするようになっていきました。

それから何年も、WordPress は日本では比較的マイナーなブログツール/CMS ではあったんですが、自分の中では本当に大好きなソフトウェアで、地道に Codex の翻訳をしたり、テーマ作成コンテストに応募したり、フォーラムで回答したりしていました。オープンソースという世界も、会ったこともない人たちと(お金にならない!)作業を一緒にするのも初めてでしたが、WordPress を通して会う人たちは本当に様々で、固定観念を覆してくれた気がします。留学や在米で「世界」を分かった気になっていたけど、それよりも私にとって理解を深めてくれたのは、英語を使ってアクセスすることができるようになった、多様な価値観が存在するオンラインのコミュニティでした。

自分がブログを書くことが好きで、そのツールの成長に少しでも関われるという喜びが、飽きずにオープンソース活動を続けられた理由だった気がします。まだ「リモートワーク」なんて言葉も、動画チャットツールや Slack さえもない時期からオンラインで世界中の人達とコラボレーションする文化を持つ WordPress でしたが、遠く離れた人に考えを届られるブログというツールが中心にあったからこそ、コミュニティは深みを持って成長してきたし、人と人のつながりが構築されていったのだと思います。

WordCamp Tokyo の運営

2007年、サンフランシスコで開かれた WordCamp に遠征し、マットに声をかけました。「WordPress が好きで、日本でももっと広めるために何かできないかなと思ってるけど、どうしたらいいかな?」そんな内容だったと思います。質問の記憶はおぼろげですが、彼の答えは今でも覚えています。

「WordCamp やったらいいよ!(You should do a WordCamp.)」

たまたま WordCamp にいたからの思いつきから出た言葉だったのかもしれませんが、そのときの一言が印象的で、約1年後に日本初の WordCamp を実行するきっかけになったのは間違いありません。私自身は日本に住んでいなかったにも関わらず WordCamp Tokyo 2008 が実行できたのは、単なる言い出しっぺの私に「いいね!」と言って一緒に運営をしてくれた他の翻訳者、開発者、日本語版ユーザーの方々とのつながりがあったからでした。



WordPress にハマることで身につけたブログテンプレート一般のカスタマイズ能力でフリーランスの仕事が入ってきたり、WordPress の本を日本語で書く機会もいただきました。Web 標準の考え方に触れて実践することができたのも WordPress のおかげで、「普通に、きちんとマークアップが書ける」スキルを評価されて、ずっと前から入社したかったデトロイト郊外の会社でフロントエンドエンジニアとしての経験を積むこともできました。その後、2009年にお声がけをいただき、Automattic でのカスタマーサポート職としてスタートして、2010年からフルタイムでこの会社の「社員」となり、現在はローカリゼーション関連のチームでプロジェクト管理を担当しています。もうすぐ勤務10年を迎えます。

回り回って今は翻訳チームのグローバルメンターや、WordPress Translation Day 4のリードオーガナイザーを任せてもらったり、そして自分でも驚くことに第一回 WordCamp Asia(2020年、バンコクにて開催予定)のグローバルリードにも選んでいただきました。


  • 誠実に努力を積み重ねていくことが実を結ぶ。
  • 信頼を築くには時間がかかる。
  • 誰にでも大きく成長できる可能性がある。
  • 多様性は必然。容認してしまうしかない。

こういうことは当たり前のようでいて、実感できないような環境も少なくないのではないでしょうか。WordPress コミュニティだって常にパーフェクトではもちろんないにしろ、この場所ではそんな「当たり前」が大事されている、と私はよく感じます。みんなが納得できる普遍的な正しさが、長期的な視点での深みのあるコミュニティの維持と成長に欠かせない要素だと理解している人が多いからなのかなと思っています。

自信も経験も少なかった自分にたくさんのことを学ばせてくれた WordPress と、その周りにいる人たちへの恩返しも込めて、これからさらに英語圏以外のコミュニティも手助けしていければと思っています。そうすることで、Web と世界を少しでも良い場所にできると信じているし、関わる多くの人のバリアを取り除くきっかけとなるはずです。

The post Growing Through Translating WordPress appeared first on HeroPress.

by Naoko Takano at May 21, 2019 11:00 PM

WPTavern: Loveland Public Library to Host Free Beginners WordPress Class Online May 22, 2019

image credit: Janko Ferlic

Public libraries are one of the few remaining community centers where people freely pass on valuable skills to neighbors young and old. In addition to offering free access to books, computers, and the internet, libraries often host educational classes as a public service, with an emphasis on teaching fundamental skills for navigating the digital world.

Many people who are on fixed incomes or living paycheck to paycheck cannot afford to have internet service at home. For them, the library is a gateway to online communication, job hunting, and learning new skills.

Over the past five years, using WordPress has become one of those important skills, as the software is now used by 33% of the top 10 million websites, across nearly every major industry.

Packed into a full schedule of toddler story time, book chats, and knitting groups, the public library in Loveland, Colorado, is hosting a free workshop called Getting Started with a WordPress Website on May 22, 2019, from 9:00 AM – 10:30 AM MDT. Participants will learn the history and terminology of WordPress, along with the step-by-step basics of creating a website. Topics include posts vs pages, using media, installing a theme, and using plugins.

Participants who cannot attend in person at the library can register online for a free ticket on Facebook or through Eventbrite. Those participating remotely will need to install the Adobe Connect meeting browser plugin and will be able to listen to the lecture through the digital classroom and ask questions via chat.

Another class will be hosted July 2, 2019, for those who are unable to attend the May workshop.

Loveland Public Library is one of many libraries that host free WordPress classes. Skokie Public Library in Skokie, Illinois, will be hosting a Build a Website with WordPress.com workshop on Friday, May 24, and the Denver Public Library offers similar courses for WordPress.com in various locations. The New York Public Library plans to offer a Blogging for Beginners course at its Woodland Heights location on October 3, 2019. These are just a small sampling of the educational opportunities offered in this format. If you know someone who wants to get started with WordPress, local libraries are a good resource for finding a free, in-person class.

by Sarah Gooding at May 21, 2019 09:56 PM under wordpress education

WordPress.org blog: WordPress 5.2.1 Maintenance Release

WordPress 5.2.1 is now available! This maintenance release fixes 33 bugs, including improvements to the block editor, accessibility, internationalization, and the Site Health feature introduced in 5.2.

You can browse the full list of changes on Trac.

WordPress 5.2.1 is a short-cycle maintenance release. Version 5.2.2 is expected to follow in approximately two weeks.

You can download WordPress 5.2.1 or visit Dashboard → Updates and click Update Now. Sites that support automatic background updates have already started to update automatically.

Jonathan Desrosiers and William Earnhardt co-led this release, with contributions from 52 other contributors. Thank you to everyone that made this release possible!

Alex Dimitrov, Alex Shiels, Andrea Fercia, Andrew Duthie, Andrew Ozz, Andrey “Rarst” Savchenko, Andy Fragen, anischarolia, Birgir Erlendsson (birgire), chesio, Chetan Prajapati, daxelrod, Debabrata Karfa, Dima, Dion Hulse, Dominik Schilling, Ella van Durpe, Emil Dotsev, ghoul, Grzegorz (Greg) Ziółkowski, gwwar, Hareesh, Ian Belanger, imath, Jb Audras, Jeremy Felt, Joen Asmussen, Jonathan Desrosiers, Jonny Harris, Josepha, jrf, kjellr, Marius L. J., MikeNGarrett, Milan Dinić, Mukesh Panchal, onlanka, paragoninitiativeenterprises, parkcityj, Peter Wilson, Presskopp, Riad Benguella, Sergey Biryukov, Stephen Edgar, Sébastien SERRE, Thorsten Frommen, Tim Hengeveld, Timothy Jacobs, timph, TobiasBg, tonybogdanov, Tor-Bjorn Fjellner, William Earnhardt, and Yui.

by Jonathan Desrosiers at May 21, 2019 07:04 PM under 5.2.1

WPTavern: New in EditorsKit 1.5: Justify Text Alignment, Autosave On/Off Toggle, and Highlighted Text

WordPress plugin developer Jeffrey Carandang continues to plough forward with new features for EditorsKit, a collection of page building block options for Gutenberg. What began as a block visibility management plugin has grown to include more features aimed at tweaking various settings in the editor.

Version 1.5 adds some text, heading, and paragraph styling and formatting options that aren’t currently available in core. For example, Gutenberg lets users change the background color and text color for an entire paragraph, but that’s where the color customizations end. EditorsKit now supports highlighting a section of text or a heading and choosing a color or background color.

This may seem like a niche request to implement but Carandang has tracked nearly two dozen related issues and discussions where users are asking for text highlighting or similar features.

This release also adds underline and justify alignment options to the paragraph block. Gutenberg doesn’t include it by default, as WordPress 4.7 removed the justify button from the TinyMCE editor in 2016. However, the demand for justified text has not disappeared.

In adding the format to EditorsKit, Carandang cited 10 issues from Gutenberg’s GitHub repository and eight WordPress.org support topics where users have asked for the justify text option or have commented on it being missing.

Those who have Jetpack installed will already have the justify alignment option. Carandang plans to add a check for wpcom/justify to the next release so users of both plugins won’t have two justify options.

EditorsKit 1.5 tackles the widespread issues with Gutenberg’s autosave function by adding a toggle that allows users to enable/disable it. This setting can be found under the vertical ellipses menu at the top of the editor.
Users have reported getting stuck in autosave, particularly with slower connection speeds, and some have experienced problems with their hosts.

As the result of getting stuck in autosave, users often attempt to refresh the screen only to lose the work. This has been an ongoing problem since last year. EditorsKit gives users the option to turn autosave off if they are experiencing problems and save manually as they see fit.

Version 1.5 adds theme support for changing the block width to match the page template and layout. This allows theme developers to customize block sizes based on the template the users selects.

Carandang has been adding new features based on his own needs but has found most of them to be fairly common requests in the Gutenberg repository. He made upcoming features and ideas for EditorsKit public on GitHub and is accepting feature suggestions in this format. A few of his current ideas under discussion include:

  • a React emoji picker
  • copy link icon for the top bar of the editor
  • to-do style using checkbox and strike through
  • Markdown support for RichText API
  • uppercase and indent formats

I asked Carandang if he has any plans to add an option for paring down Gutenberg to the bare essentials with an interface more focused on writing. He said it is a possibility but is optimistic that the Gutenberg team may work to solve this common complaint in core.

“I’ve thought of that, specially when my writer colleague asked me about it,” he said. “But I think it’s not time for that yet. I’ll wait for more Gutenberg releases before deciding if it’s needed in EditorsKit.”

Carandang said he doesn’t plan to add any custom blocks to EditorsKit. His goal is to extend blocks for users to have options that they can utilize globally, while using whichever blocks plugin(s) they prefer. The plugin currently has no revenue model but he may pursue monetization in the future.

“At of the moment, I’m more focused on building the plugin features rather than monetization, but extensions may come in a year or two when Gutenberg is more stable,” Carandang said.

by Sarah Gooding at May 21, 2019 02:58 PM under gutenberg

WPTavern: CoBlocks 1.9.5 Merges Block Gallery Plugin into Collection, Adds New Form Block

CoBlocks, a collection of page builder blocks that was recently acquired by GoDaddy, has added four new blocks in version 1.9.5. This is the first major release since the plugin was acquired from Rich Tabor and his co-creators. Tabor now heads up a WordPress Experience team at GoDaddy where CoBlocks’ development continues.

This release merges the three gallery blocks (Masonry, Stacked, and Carousel) from the Block Gallery plugin into CoBlocks. There is a migration path for users to convert their existing Block Gallery blocks to CoBlocks’ gallery blocks. Block Gallery is still available on WordPress.org as a separate plugin with 5,000 active installs, which is actually more installs than CoBlocks (4,000). Tabor said his team is still discussing whether or not it will remove the plugin in the future.

“CoBlocks is already a suite of blocks that level-up the block editor, bringing in those gallery blocks into the core plugin removes a barrier for folks who already have CoBlocks installed,” Tabor said. “Instead of folks having to install, activate, and maintain two plugins – only one is needed. On top of that, it’s far easier to maintain them collectively under one roof, as many of the components are shared between the two plugins.”

In addition to merging the gallery blocks, CoBlocks 1.9.5 introduces a new Form block that allows users to customize a simple form directly within the editor. The block includes name, email, and message form fields but does not offer the ability to create new fields or change them to different types of fields. Users can set any of the fields as required using a toggle inside the block preview. For anything beyond these capabilities, a dedicated forms plugin would be required.

CoBlocks 1.9.5 also adds official support for Gutenberg 5.7 and includes more than a dozen tweaks and fixes.

Tabor said his team is identifying further solutions that can be leveraged to make page building in WordPress more simple. CoBlocks is rapidly becoming a another one-stop shop for the mostly commonly used page building blocks.

“We’re looking at how to make adding maps easier (a better Map block) and developing a system that enables restaurants to build out menus,” Tabor said.

Several other block collections already offer a map block and/or a similar suite of page building functionality, such as Ghost Kit, Atomic Blocks, Stackable, and Editor Blocks. Collections seem to be the best way to offer multiple small UI elements, especially if they are all designed to be complimentary in style. Plugin authors differentiate their collections from the others with additional block options, support, complimentary themes, and immediate compatibility with the Gutenberg plugin.

At the moment, there is little incentive for developers to maintain functionality as separate plugins, but WordPress’ planned single block directory may change the way blocks are packaged for optimal discovery. For now, it’s a race to see which block collection can offer the most useful suite with the most intuitive UI.

by Sarah Gooding at May 21, 2019 12:57 AM under godaddy

May 20, 2019

WPTavern: WordPress 5.2 Improves the Security of Automatic Updates

WordPress 5.2, released earlier this month, added the first step towards fully secure updates with offline digital signatures. Scott Arciszewski, Chief Development Officer for Paragon Initiative Enterprises, explains how it works and how developers can migrate away from mcrypt to libsodium.

When your WordPress site installs an automatic update, from version 5.2 onwards, it will first check for the existence of an x-content-signature header.

If one isn’t provided by the update server, your WordPress site will instead query for a filenamehere.sig file.

No matter how it’s delivered, the signatures are calculated using Ed25519 of the SHA384 hash of the file’s contents. The signature is base64-encoded for safe transport.

Scott Arciszewski

The WordPress core development team manages the signing or secret keys. WordPress 5.2 contains a signing key that expires on April 1, 2021. The verification key or public key is used to decipher the secret key. This value determines the validity of the signature.

Since the feature is still in an experimental phase, WordPress 5.2 allows an update to occur if a soft error or invalid signature is encountered. This is to prevent more severe errors from causing the user to be locked out of the update process until a manual update is applied. The team will use the reported error information to improve the signature checking process.

The digital signatures are only supported for core updates with Themes and Plugins to follow in a later release. It’s also likely that the team will include separate keys for core releases, plugins, themes, translations, etc. to allow for more fine-grained control.

Digital signatures applied to WordPress core updates is an important milestone because it prevents users from unknowingly downloading updates from malicious sources.

For example, without digital signatures, if the server or servers that house the core update files were compromised, a false update could be sent to millions of sites. In 2016, WordFence explained how this scenario could play out when they publicized a security vulnerability they discovered with api.wordpress.org.

Persistence Pays Off

In early 2017, Arciszewski published a plea to Matt Mullenweg to focus on securing WordPress’ automatic updates system by using secure cryptographic signatures. Mullenweg responded to the article with one of his own on Medium.

We will at some point; as said above it’s a good idea — can’t hurt, might help. There are, however, some more important security issues in front of it, that impact millions of sites in the real world, so we are prioritizing those issues above a nice-to-have, defense in-depth effort.

Matt Mullenweg

Arciszewski has spent at least six years trying to convince the core team to implement digitally signed updates. Four months ago, Gary Pendergast, WordPress core developer, responded to the ticket saying that the feature fell in line with the list of WordPress priorities planned for 2019 and beyond. Pendergast laid out a plan and with a confirmed commitment to landing it in core, Arciszewski worked with the core team to make it a reality.

Millions of WordPress sites are on their way to becoming more secure thanks to the persistence and efforts of Arciszewski and the WordPress core team.

by Jeff Chandler at May 20, 2019 09:28 PM under security

May 18, 2019

WPTavern: Jetpack Opens Signup for Membership Block Beta

Jetpack has opened a signup for the beta of its upcoming Membership feature in order to collect feedback from potential testers. The changelog for version 7.3, released two weeks ago, hinted at a new Membership block coming to the plugin. The work in progress was added behind the JETPACK_BETA_BLOCKS constant, presumably in preparation for wider testing.

Based on the feature’s description on GitHub, the first iteration will function like a recurring payment/donation button that uses Stripe as the payment gateway. In this case, “membership” might be a misnomer for the feature. The wording on the beta signup page lends to the confusion: “WordPress.com is currently preparing a feature that will let you enable subscriptions on your site.”

At the moment, it appears that the Jetpack team hasn’t fully decided what this feature will become and seems open to seeing where it will go. Beta testers will likely refine the direction of the block. If you have an interest in using Jetpack’s membership capabilities in the future and want to shape its development, you can sign up for the beta by providing your WordPress.com login and a description of your needs and expectations for the feature.

by Sarah Gooding at May 18, 2019 04:09 AM under membership

WPTavern: Jetpack Retires Proofreading Module, Time to Find A New Grammar and Spellchecking Alternative

Jetpack 7.3 was released last week and if you didn’t read the changelog, you may have missed that the spelling and grammar checking module that uses After the Deadline has been retired.

“Grammar and Spelling: Remove from Jetpack. We’ve chekced the spelling alot over the years, but now time to retire.”

From the Jetpack 7.3 Changelog

According to James Huff, an Automattician and volunteer moderator, the module was removed in favor of better options being available.

“We removed the feature as it has become a bit redundant lately,” he said. “Most major web browsers have some form of this already built-in, and free extensions like Grammarly are making huge strides in the field. It felt like the right time to back out of that field and focus more on everything else we offer.”

After the Deadline is a service that was created in 2008 by Raphael Mudge and was acquired by Automattic in 2009. It not only checked for grammar and spelling errors, it did so contextually and provided style suggestions. Mudge moved on from Automattic in 2010 and the service has seemingly operated on auto-pilot.

After the Deadline Proofreading Button in the Calypso Editor

Between 2010 and 2011, the Jetpack team added support for AtD with a proofreading module. Unfortunately, the proofreading button that was available in the Classic editor was not ported over to Gutenberg. This issue was originally reported on GitHub in 2018 but was closed 14 days ago due to AtD support being removed from Jetpack, WordPress.com, and Calypso.

I’ve used After the Deadline for 10 years and although there’s no official statement on when the service will be retired, the writing appears to be on the wall.

I plan to give Grammarly a try but I’ll miss After the Deadline. What grammar and spellchecking services or software do you use and recommend as an alternative to After the Deadline?

by Jeff Chandler at May 18, 2019 12:00 AM under spell check

May 17, 2019

WPTavern: VVV 3.0 Introduces New Ubuntu 18 Box, Support for VVV 2 is Discontinued

VVV 3.0 was released this week, introducing a new Ubuntu 18.04 LTS box. The project’s previous versions used Ubuntu 14, which has now reached end of life (EOL).

Support for VVV 2 is now discontinued, due to an unforeseen complication with its PHP dependencies. Ondřej Surý, who maintains all the PHP packages VVV uses, deleted the unsupported ones in response to Ubuntu 14 reaching EOL. VVV contributors had set up a package mirror but only 70% of them were mirrored. As a result, VVV 2 installs were no longer able to provision. VVV maintainers have stopped supporting it and it will not receive any fixes or updates in the future.

Tom Nowell said he and his fellow VVV maintainers had “a mini- Ubuntu 14-apocalypse of sorts when it reached EOL,” so the new Ubuntu 18 box is a big bump up that should cover the project until 2024. It includes Kernel improvements that make Ubuntu faster when used in a virtual machine. The 3.0 update came out of necessity but it includes changes the team had already intended to make.

“We wanted to move from 14 to 18 for a long time anyway, and Anton Vanyukov had written a PR starting that, so we went ahead,” Nowell said. “The internals are based on VVV 2 so 99% of things should still work exactly the same (but a bit better and a little faster).”

VVV now uses a leaner custom built box, but it requires users to destroy their VMs in order to update. Directions for updating to 3.0 are in the release post. This destroys the database but VVV creates its own backups that can be quickly restored with a simple command.

Another major change in 3.0 is that VVV no longer stores MariaDB data inside the VM. The data has been relocated to database/data, which has the added benefit of being preserved when using the vagrant destroy command.

The release also includes quite a bit of restructuring with the removal of the /vagrant mapped folder that eliminates overlapping vagrant shared folders. In addition to several dozen smaller improvements, VVV 3.0 adds a new teddy bear when it finishes provisioning.

The Future of VVV: Version 4 to Focus on User-Friendly Improvements to Provisioning

Although VVV doesn’t yet have a user-friendly interface and requires the use of a terminal, Nowell said the team is working towards making it easier to use. For now, VVV distinguishes itself from other development apps, like Local and DesktopServer, by being a community project that is free from commercial interests.

“VVV does a lot of the things DesktopServer does but for free,” Nowell said. “We don’t charge $99 for PHP7, SSL, or WP CLI. VVV won’t up sell you on hosting either, and you can have as many sites as you want out of the box.

“A lot of people like Local for using Docker containers, but all those containers are inside a boot2docker virtual machine using VirtualBox. They have a pretty UI, and it’s great if you use FlyWheel as a host, but it’s not the easiest to get set up for contributing to WordPress.”

VVV has a specific pre-built version that provides a development environment optimized for contributing to WordPress core. It can be copied onto a USB drive and set up on a user’s machine, even while offline. This pre-built version is often handed out at the beginning of contributor days at WordCamps.

“We’re a community driven project,” Nowell said. “People going to contributor days use VVV – the entire package can be pre-built and put on a USB stick and it runs in a lot more places than some of the docker based setups that some devs use. Until recently you needed to upgrade to Windows 10 Pro to be able to use Docker on Windows. Imagine 100 contributors downloading Windows 10 iso files over conference wifi.”

VVV maintainers and contributors are working on releasing version 3.1 in the next month with all the little things they want to polish. Nowell said they have the basis for what they want to accomplish in version 4. Instead of waiting for VVV to install and configure PHP/MySQL/nginx/etc, the install process will happen on a server somewhere and the user will be able to just download the result, similar to how VVV is pre-built for contributor days.

Nowell identified the major impacts of taking this approach:

  • It doesn’t matter if provisioning works for you, we’re doing that for you.
  • If someone makes a big slip up, that’s ok, users get the last working build and see nothing.
  • Getting everything set up should be much much faster, it will remove about 70-80% of the startup time for a lot of users.

Nowell said the general goal is to “just make it more fun to use” but his personal goal is for people to be able to use VVV without ever touching a terminal. He thinks it can be done with an Electron wrapper and has performed a few experiments with it. In the past, he spent a lot of time improving the messaging for provisioning errors, but the days of trying to preempt those problems may soon be drawing to a close.

“Why fix provisioning for users if they never have to do it in the first place?” Nowell said. “I’d say VVV 4 will come pre-built so it only builds the sites themselves, like how you can grab a docker image with PHP/MySQL already setup, and fill it with a site. Eventually the dashboard itself can become an Electron app where you can turn VVV on/off and adds sites.”

VVV maintainers have some ambitious plans for version 4 that will make it available to a wider population of WordPress users and save existing users more time on startup. The project needs more testers and feature requests. Contributions to the main project are welcome on GitHub. Developers and testers can also contribute to the meta environment to improve how it works with WordCamp sites and WordPress.org.

by Sarah Gooding at May 17, 2019 09:11 PM under VVV

May 16, 2019

WPTavern: Block building without JavaScript: Testing ACF, Block Lab, and Lazy Blocks

Not everyone is able or willing to build blocks in JavaScript just yet, and sometimes you have to install three or four block collections until you find the blocks you would like.

There is a third way: plugins that create the blocks for you from a set of specific custom fields, with a template to control the frontend display of the blocks. The three most popular options for doing this include: Block Lab, ACF (Advanced Custom Fields) and Lazy Blocks.

My use case for this test is a small task I set out to accomplish with each of the plugins – to create a block for team members of a company that includes the following fields: first name, last name, headshot, bio, phone number, and email address and use the block on a page in a two-column display with two team members.

For each plugin I will demonstrate

  • how to create the Fieldgroup,
  • how to create the template for the frontend and
  • how to use the blocks to create a team page.

I used Local by Flywheel as my local development tool. The test site ran on WordPress 5.1.1, Gutenberg 5.4 and the Business Theme from WordPress.com

After reading this post you will be able to select the plugin that fits your needs.

Creating a Team Block with Block Lab

Members of the  XWP team built Block Lab and it is available as a free plugin with a commercial version. I used Block Lab first, installed the plugin and then started a new block.

Here is the video on how to set-up the fields.

The next step is setting up the block template

When I looked at the expected location, the template will be made part of the theme directory in a subfolder called /blocks/ That’s something a developer needs to remember, as there is some content lock-in when switching themes.

To create the template, I opened my code editor, created the file block-team-member.php, and added the HTML + and minimal PHP to reference the fields.

<?php block_field( 'first-name' );?> 
<?php block_field( 'last-name' );?>
<p><img class="teamphoto" src="<?php block_field( 'picture' ); ?>"
 alt="<?php block_field( 'first-name' );?> 
<?php block_field( 'last-name' );?> " width="150" style="float:left;padding:4px;margin;2px;"/>
<?php block_field( 'short-bio' ); ?></p>

<p><em>You can reach <?php block_field( 'first-name' );?></em> 
<br/>via email <span><a href="mailto:<?php block_field( 'email-address' ); ?>">
<?php block_field( 'email-address' ); ?></a></span>
 or <br/>
via phone: <span><?php block_field( 'extension' ); ?></span></p>

In the last step, I finished the configuration of this block with the Block Properties

  • I set the icon to a person,
  • selected the “Layout Elements” as Category and
  • added “team member, team” as keywords

All this is necessary for the Block inserter in the editor.

Let’s see how it works.

I added a new Page called Meet our Block Lab Team and added the team members, using the Block “Team Member”.

For now, I decided to have all the information filled within the block editor boundaries. During setup of the fieldgroup, I had also the choice to display form controls in the Block Options tab in the sidebar. For the moment, I have determined that’s it’s just personal preference. Once you click outside the block, the form disappears and the block is rendered similar to its frontend representation.

Now that I have the block finalized, I can add more team members to the page. I decided, I’d like them in a column block with two columns.

So far, so good. I was not thrilled that the location of the template points to the theme folder.

When I want to switch out the theme, I still would like to keep the block and the layout for the block with my site, so I would need to make sure to copy the blocks folder to the new theme’s directory. Another way is outlined in the  documentation for Blocklab on Github. It offers two filters to change the default location of the template:

“To use a different template inside your theme, use the block_lab_override_theme_template( $theme_template ) filter. To use a different template outside your theme (for example, in a plugin), use the block_lab_template_path( $template_path ) filter.”

This was fairly easy to set up, even if you are not a PHP developer, you can probably use the one PHP function block-field() and make sure to reference the right field names.

Block Lab, in essence, provides you with a method to create the fields and configure the block properties in one screen, and then you need to add the corresponding block template to a folder /blocks/ in your theme’s directory.  It’s fairly straight forward.

Creating a Team Block with ACF 5.8

ACF (Advanced Custom Fields) version 5.8 came out with a block builder (only available in the Pro version). For my test I used ACF 5.8 RC 1. The final release is available now.  Elliot Condon is the plugin’s author and the first version was released in 2011. The plugin has grown into a hugely popular developer tool for freelancers and agencies alike and has over 1 million installs.

Its success and versatility make the creation of the field group a more involved process compared to the other two plugins. The Pro version 5.8 contains the first release of its block building tool.

This is the admin view of the Field group “Team Member”.

Now how do I make this into a block? The documentation is comprehensive enough.  Note: In this test I went in a slightly different order…

I started with the Field Group and I needed to get back to that admin screen after I registered the block (see below) .

I  used two files. First, I needed to register the block in the functions.php of my theme. For the template/block rendering code I used content-block-team-member.php also to be stored in the active theme’s folder.

You will see how those two fit together in a second. The rest of the work is done by the plugin in the back end.

So let’s write the Block Code in PHP

The first snippet is the block registration. I gave it a name, title, a description, point to the render template, give it a category, an icon and some keywords, under which the content producer can find the block in the Block Inserter. I scrolled all the way to the end of my theme’s functions.php and added this snippet:

function register_acf_blocks() {
   // register a team member block.
       'name'              => 'acf-team-member',
       'title'             => __('ACF Team Member'),
       'description'       => __('A custom team member block created via ACF 5.8'),
       'render_template'   => 'content-block-team-member.php',
       'category'          => 'formatting',
       'icon'              => 'admin-comments',
       'keywords'          => array( 'team member', 'team' ),
// Check if function exists and hook into setup.
if( function_exists('acf_register_block') ) {
   add_action('acf/init', 'register_acf_blocks');

This code is straight from the documentation and I just changed a few values.

In the next section I created the block rendering template. The file name needs to match the “render_template” attribute in the above text, which is “content-block-team-member.php

I also just followed along ACF’s documentation and only changed a few values and updated the display code.

<pre class="wp-block-syntaxhighlighter-code"><?php
// create id attribute for specific styling
$id = 'team-member' . $block['id'];

// create align class ("alignwide") from block setting ("wide")
$align_class = $block['align'] ? 'align' . $block['align'] : '';

// Load values and asigning defaults for the block fields.
$short_bio = get_field('short_bio') ?: 'the short bio goes here... ';
$first_name = get_field('first_name') ?: 'First Name';
$last_name = get_field('last_name') ?: 'Last Name';
$image = get_field('picture');
$email_address = get_field('email_address');
$extension = get_field('extension');

<div>" class="team-member "&gt;
       <h2> </h2>
   <blockquote class="team-member-blockquote">
   <img class="teamphoto">" alt="" alt="  " width="150" style="float:left;padding:4px;margin;2px;"/&gt;
       <span class="team-member-short-bio"></span>
       <br />
       <span class="team-membe-extension"></span><br />
       <span class="team-membe-email-address">

As I started with the Fieldgroup, I needed to go back and make sure that the group is associated with the block I just registered.  Below the Fieldgroup screen I created a rule for the Location: It needs to read: “Show this field group if the Block is equal to ACF Team Member.  

Now let’s see how this works in the Block editor when I add two members.

It was an interesting experience. You can use the form in the editor section to enter the data. Another option is to enter the data in the form fields available in the the sidebar and you see the block update in real time. You can toggle between the two methods but clicking on the Button “Switch to Edit” or “Switch to Preview” depending which method you are using right now.

The block editor UI works well. It’s worth going through the more elaborate setup and code necessary.

Creating a Team Block with Lazy Blocks

The third plugin in this test is called “Lazy Blocks” by Nikita of nkdev.info, the same team that also published the GhostKit block collection.

It not only allows me to store information in post_content but I also get a choice to store it in the post_meta table.

Here is a video of using the interface to create the fields.

As this admin screen is focused on getting all the information to create the blocks, on the left I created my fields and in the sidebar.  I filled in the information needed to register a block with the editor.

Underneath,  I was able to add the HTML for frontend and backend. The syntax is even easier than Block Lab, and of course much easier than ACF’s  templating.

I didn’t need to add any code to my theme’s functions.php nor did I need to create additional files with my template code.

You can add it all right here, aided by syntax highlighting and merge tags rather than function calls.  The documentation shows multiple ways to write your template code. I am definitely a fan of Handlebars (semantic templating) as it is in this context much closer to other systems’ merge tags.

I copy/pasted the same code into the “Editor HTML” tab, so I could see the frontend display below the form fields.

Let’s use it.

This seems to work. It was little bit awkward that the form didn’t disappear when I unselect the block. It takes up a lot of real estate in the editor. Although, I wanted to have the team members in a two-column block, I did not succeed in dragging and dropping the two blocks into a Column Block. I mentioned this in my support topic and nK answered: “…hiding controls when the block is not selected is a good feature, that already added in ACF Blocks and will be added in Lazy Blocks soon.” Here you have it – all in due time.

Conclusion: Complex, Evolved, or Easy.  

ACF 5.8  has a very robust block building feature, and every one who has been using the plugin to build sites will be very happy to be able and create dynamic blocks for their customers. It’s well thought through, and developers of all skill sets will get up and running quickly.

Someone, who is not well versed in PHP will have her fair share of trial and error to get it all going. It will get even more complicated when the requirements for the blocks get more involved and beyond this test’s use case. This is not a tool for WordPress beginners or DIY site implementers who don’t write a lot of code themselves.  

For now, only the ACF 5.8 Pro version comes with the block builder feature. Condon is contemplating making it a stand alone plugin. (See what the Twitteratti think about the idea… )

Block Lab is in its early stages of development. It succeeds in abstracting most of the block architecture and reduces the amount of code that needs to be written. The documentation is very helpful. The template is stored in a separate file, and needs to be maintained with the rest of the theme files. If we at my company would use it for any of our projects, we would store the template file with one of our helper plugins, so our customers are able to switch themes without losing the content and display of the blocks built with Block Lab.

The Pro version boasts additional features, such as repeater fields, import/export of blocks, user object fields, map field and many more block features.

XWP is an agency working with enterprise clients on the WordPress.com VIP hosting and other corporations. Their team members are contributing to other big ideas in the WordPress space, including the Customizer,  AMP and Tide. I expect the plugin to stay around and grow with Gutenberg Phase 2 into a robust system for site implementers, agencies, and theme developers.

Lazy Blocks is a delight to set up and as mentioned, I am a fan of the Handelbars templating syntax. It’s easy to learn even for beginners, and with a little practice, a site owner would be able to create specific Gutenberg blocks for their site. The block handling in the editor although functioning, is a little clunky, as the display doesn’t switch between block select state and unselect state at the moment.

If there is a requirement of having additional fields for a page or a section of a post, Lazy Blocks is a great tool to prototype and get quickly from idea to proof of concept.

The only caveat: I was not able to find out who the people are behind nkdev.info and the name Nikita. The website only reveals that it is a young company but nothing more. If you use the plugin, make sure you have Plan B in place just in case the developers abandon the plugin before it takes off.

ACF 5.8 is quite complex; Block Lab is a very flexible and only semi-complex; and Lazy Blocks is adequately named and the easiest to use. None of them lets you get away without writing code, as each block needs some display output in HTML.

Let me know what you think about these three block generating plugins. Also, if you found another plugin that allows you to build blocks without getting into Javascript, I want to know about it! Please share your thoughts and discoveries in the comments!

by Birgit Pauli-Haack at May 16, 2019 10:42 PM under News

WPTavern: HostCamp: An Unconference For Advancing the WordPress Infrastructure

HostCamp is a small, semi-informal, invitation-only, event with an unconference style that is bringing leaders together from within the hosting industry to discuss and share ideas on how to advance the WordPress infrastructure across the web.

The organizing team is comprised of, Jonathan Wold, Ecosystem Consultant, Formerly VP of Strategy at XWP, Mile Rosu, Co-founder and CEO of Presslabs, Mihai Grescenko, Head of Design at Desero, Anna Maria Radu, Event producer for DigiTales, and Andreea Oproiu, Communication and PR specialist for DigiTales.

Speakers will present on a variety of topics including, malware, ethics in WordPress hosting, PHP versions, portability, and more. Betahaus, a network and co-working facility in Berlin, Germany, is hosting the event.

Betahaus Facility in Berlin, Germany

Rosu describes the unconference as, “A launchpad for innovations in the hosting industry where opportunities in WordPress infrastructure are encouraged and promoted.”

If you’re interested in attending, there is an application form near the bottom of the HostCamp site that is available until June 1st. Tickets are on sale now for €200 or $223.47. Refunds are available if you contact the organizing team 30 days prior to the event.

It should be noted that WordCamp EU is taking place in Berlin, Germany, as well and begins a day after HostCamp.

by Jeff Chandler at May 16, 2019 09:09 PM under wceu

WPTavern: Matt Mullenweg Launches New Blog and Podcast on Distributed Work

photo credit: Min An

Automattic CEO Matt Mullenweg has launched a new blog and podcast at Distributed.blog where he will be sharing what he has learned over the past 15 years of managing a distributed workforce. In 2019, Automattic now employs more than 900 people from 68 countries who have all worked in a distributed fashion since day one.

“With the Distributed podcast I wanted to take a closer look at how some of the most innovative companies and brilliant minds think about the future of work,” Mullenweg said. “Not just the binary questions of ‘remote work’ vs. ‘office work,’ but the wider spectrum of what’s possible and why it matters. How can we work better and smarter in the decades to come—and what’s the moral imperative driving our desire to change?” 

The first episode of the podcast features Upwork CEO Stephane Kasriel, who is deeply embedded in the labor market for remote work. His company offers a global platform for connecting businesses with freelancers. Upwork went public in 2018 and is expected to do more than $1.7 billion in business this year. Kasriel has a wealth of knowledge to share from his experience managing more than 1,100 remote freelancers in 500 cities, in addition to 400 on-site employees.

“Our mission at this company is to create economic opportunities for people to have better lives, and the way we measure that is how much money goes into people’s pockets,” Kasriel said.

Both Mullenweg and Kasriel are passionate about seeing more companies embrace remote work and the first part of the podcast goes deeper into what is currently broken about work. Those living in big cities are often paid well for their talents and expertise but will spend a large portion of that money on the cost of living. Kasriel said he believes Upwork can be a “driving force in creating a better future” by championing remote work as the economic catalyst for improving working conditions across the globe.

“This distributed-company movement is the awakening of the tech industry [to the reality] that we are part of the problem,” Kasriel said. “Part of the reason why jobs have been destroyed in plenty of places in the country while all the new jobs were created in a small number of areas is because of tech.”

For those who are curious about how CEOs and managers make distributed work a success, the first episode includes discussions on some of the more practical issues of managing a remote work force. Mullenweg and Kasriel discuss the challenges of working across timezones, strategies for improving communication and preventing employees from feeling a sense of isolation, and managing productivity and performance.

The topics included in the episode are even applicable for smaller distributed companies that are just starting out. Kasriel shared tips on establishing a strong culture of employee satisfaction for both on-site employees and those working remotely, navigating conflict, integrating new employees into remote culture, and allowing people to “delocate” from on-site work.

After listening to this episode, I found that Mullenweg and Kasriel presented a compelling case that distributed work is not just a buzzword in the tech industry. It is actually a movement with a powerful economic impact that is poised to change the world. Remote work also has the added benefit of creating opportunities for people who have a difficult time participating in the traditional labor market, effectively increasing the diversity of a company’s employees by offering a more inclusive model for working.

The podcast is produced by Mark Armstrong and the team at Charts & Leisure. There’s a lot of valuable information efficiently packed into just 37 minutes. If you manage a distributed team or are part of one, this is a high quality new show to add to your subscriptions.

by Sarah Gooding at May 16, 2019 06:14 PM under News

Matt: Introducing the Distributed Podcast

I’ve been meeting with some brilliant people for Distributed, my new podcast dedicated to exploring the future of work. The first episode is a conversation with Stephane Kasriel, CEO of Upwork, about how they built a distributed culture, and how flexible work will shape the future of the global economy.

Unlike Automattic, Upwork does have an office in Silicon Valley (albeit one with a remote receptionist!). It was interesting to hear how Stephane’s teams balance in-person culture with inclusiveness for all employees, no matter where they live. Read more about Stephane’s work at Distributed.blog, and subscribe at Apple Podcasts, or wherever you listen to podcasts.

by Matt at May 16, 2019 02:59 PM under distributed work

WPTavern: Gutenberg 5.7 Adds New Block Appender for Group and Columns Blocks

Today’s release of Gutenberg brings a major improvement to the usability of the Group block. In previous versions of the editor, it wasn’t easy to see if a block had been inserted as a child block, especially since the default behavior was to insert an empty paragraph block. Gutenberg 5.7 brings more clarity to the UI for Group blocks by displaying the new block appender as the default state when no inner blocks are detected. (The “appender” is the fancy name for the button with the plus sign inside it that opens the UI for inserting a new block.)

The Columns block has also been updated to add the new block appender, and this release adds support for setting column widths. The inflexibility of the Columns block has been a frustration for users since it was introduced, but this release makes progress on one of the most common requests. Users can now set a percentage width for the columns in the block settings. The UI for this is a bit clunky, but a more interactive, draggable column resizer handle is coming in a future release. Future iterations may also include “quick-select” template options for users to select from when setting up their columns.

Other new features in this release include support for showing post content or an excerpt in the Latest Posts block and support for header and footer toggles in the Table block.

One handy little addition to Gutenberg 5.7 is the ability to update images using drag & drop. Users can now drag an image onto an image block that already contains an image. The image will be uploaded and will replace the previous one, saving users many clicks in the process of changing an image. Future updates may also add the same behavior to the audio, video, file, and Media & Text blocks.

Gutenberg 5.7 includes dozens of bug fixes and accessibility improvements, with several suggestions that originated from WPCampus’ accessibility audit. It also brings a significant boost in performance with a 14% faster loading time than the previous version.

The project’s documentation has a new home on WordPress DevHub and has been reorganized for better navigation.

A list of all the changes in the 5.7 release is available in the release post.

by Sarah Gooding at May 16, 2019 04:44 AM under gutenberg

WPTavern: Site Health Tool Manager Provides A Convenient Way to Disable Unnecessary Site Health Check Tests

WordPress 5.2, released last week, added two new pages to the WordPress backend to help users diagnose common configuration issues. The Site Health Check page runs a series of tests and categorizes the results as critical, recommended, and good. This helps users prioritize which issues require immediate attention.

WordPress 5.2 adds filters for developers to add, edit, or remove tests but these filters may not be as accessible as a plugin. Site Health Tool Manager by William Earnhardt is a new plugin that provides an easy way to disable tests.

Site Health Tool Manager Settings

In some situations, consultants may want to disable certain tests to prevent the results from panicking a client. For example, if a consultant has configured a site to not receive automatic updates because the site is managed with version control, the site health check test is unnecessary.

Disabling unnecessary tests can also increase a Site’s Health Percentage score. However, in the plugin’s description, Earnhardt stresses that the plugin should, “only be used to disable tests with a legitimate and acceptable reason for failing. It should not be used to hide tests which can be fixed.

Site Health Manager also supports the tests that were recently added in Jetpack 7.3. Site Health Tool Manager is free and can be found on the WordPress plugin directory.

by Jeff Chandler at May 16, 2019 02:33 AM under tools

May 15, 2019

WPTavern: Pressing Topics – Episode 2

Pressing Topics is a daily podcast hosted by Malcolm Peralty and myself. We discuss the news that’s making headlines in the WordPress ecosystem as well as related topics that catch our eyes. Generally speaking, if you listen to this show on a daily basis, you should have a good idea on what’s going on in the WordPress community.

In this episode, Malcolm and I review the most common mistakes WordPress theme developers make based on a veteran theme reviewer’s experience, the 10 best countries to outsource software development too, and a new proposal to the Plugin Directory Guidelines.

Due to a software issue, the volume of my voice in the beginning of the show varies from loud to quiet to loud again. The audio normalizes after about 5-10 minutes. I’ve made some software changes and am hopeful the audio quality in episode three is much better.

Stories Discussed:

The Most Common WordPress Theme Development Mistakes (and How to Fix Them)

10 Best Countries to Outsource Software Development, Based on Data

4 Reasons You Should Choose WordPress for Your E-Commerce Site

Jetpack 7.3.1: Maintenance Release

Proposal to Modify Plugin Guidelines

The transcript is in Rich-Text format. You can download the show or listen to it via the embedded audio player below.

Listen to Episode 2 of Pressing Topics

by Jeff Chandler at May 15, 2019 07:37 PM under theme development

WPTavern: Reakit Version 1.0 Released: A New Toolkit for Building Accessible Web Apps with React

Reakit is a new toolkit for building accessible web apps with React. Brazilian developer Diego Haz launched his MIT-licensed open source project this week with a stable version 1.0 now available to the public.

The toolkit offers offers composable, themeable, and accessible UI components that strictly follow WAI-ARIA 1.1 standards. Out of the box, Reakit manages focus and keyboard interactions for components that require them.

“WAI-ARIA is hard,” Haz said. “Mostly because the spec is dense, confusing and incomplete. My goal with Reakit is not only to provide accessible components out of the box, but also to serve as an example so people can build their own accessible stuff from scratch.”

Last year Haz removed all the unnecessary styles from the core package, in favor of having separate packages for themes. The core library is now unstyled by default and does not depend a CSS library. This makes it easier for developers to build UIs from scratch. Developers with specific presentational requirements can easily apply their own styles, instead of spending time having to overwrite a built-in set of styles.

Those who don’t want to start from scratch can install a theme package like reakit-theme-default. As the community around Reakit grows, more themes will may become available as packages.

Reakit’s GitHub repository has been starred more than 2,100 times and 34 people have contributed to the project. Developers who discovered Reakit in its earlier days of development are already building apps and libraries that use the toolkit.

One year ago, Haz left his job to work on Reakit full time as an open source project, because accessibility wasn’t a major priority at the company that employed him.

“I started building Reakit in my spare time with the purpose of easing my team’s work as we were building most of our components from scratch,” Haz said. “The company not only denied that idea (which may be reasonable), but also asked me to delete the project.

“So I realized that I was in the wrong company and quit. Since I had savings, I decided to focus on this project. But soon enough I’ll have to find another job. I’ll try to find companies where I can use Reakit so I can improve the library at the same time I’m building something with it.”

Not all companies prioritize accessibility in their React-based products. One reason is the expertise and passion for accessibility, paired with React skills, is hard to find.

As WPCampus’ Gutenberg accessibility audit demonstrated, making accessible web apps with React is challenging. Gutenberg is making major improvements towards becoming more accessible after the completion of the audit. This process has shown that leveraging accessibility expertise and baking it in from the beginning is crucial for writing accessible web apps.

React is often, and perhaps unfairly, singled out as having an accessibility problem. The library isn’t known for making it easy, but it does provide accessibility documentation and encourages developers to write semantic HTML.

While there is no magical “do-it-for-me” library that can ensure an app’s accessibility, the Reakit toolkit gives developers a head start. The project is open to contribution on GitHub and is also on Open Collective for those interested in funding its development.

by Sarah Gooding at May 15, 2019 07:02 PM under reakit

HeroPress: I Found My Tribe

Pull Quote: I don't just have WordPress acquaintences. I have WordPress friend. I have WordPress family.

When I was a kid not a single girl said “I want to be a web designer when I grow up”. Mostly because there was no world wide web. There weren’t video games either, until I was in junior high school and Pong came out. Back when I was a kid, girls mostly thought about becoming teachers, nurses, ballerinas, and mothers. We weren’t encouraged to do “man” jobs. We definitely weren’t encouraged to pursue STEM careers.

As a matter of fact, my high school guidance counselor told me that I should give up my dream of college and concentrate on being a stay-at-home mom. (It was 1987 and I was ranked 21/325 students in my graduating class.)

I’ve always been a bit of a calculated rebel, so I didn’t heed her advice. Instead I started down a long path through academia that would eventually bring me here, to WordPress and the community that has become my tribe.

I’m often asked how I started my WordPress business. I would love to tell you a story about how I did a ton of research, met with mentors, found advisors, wrote a perfect business plan, crafted an amazing marketing plan, and launched according to a timeline all neatly written out (and using a project management app, of course).

It wasn’t like that at all.

At the time I started my business I had worked in higher education for over twenty years as an administrator in five different colleges, universities, and trade schools. I had a bachelor of arts degree in Religion and Philosophy, classical training in vocal performance, an MBA (in marketing, e-commerce, and information systems management), and coursework completed toward a doctorate in higher education administration.

In June of 2013, I decided it was time to leave my job as an administrator in a local trade school. I hadn’t really been happy for a long while, and the timing was right financially for me to make a move. My plan was to take July off, use August to job search, then be employed by September.

Have you ever heard the phrase, “Men plan, God laughs”?

While it was still June, and within the two weeks’ notice I had given, I was afraid I might become bored. I thought I could make a little money doing some marketing, so I posted to my personal Facebook page that I would love to help out friends and family with social media or web design. The customers came out of the woodwork.

And just like that, I had a business.

I made many mistakes along the way, of course. I charged $300 for a website when I started ($500 for e-commerce). I paid my dues and learned the trade. I started attending WordPress meetups in Rochester. They were sporadic, at best, so when the organizer asked me if I would become the organizer, I jumped at the chance and got us on a regular schedule, with topics in advance and volunteer speakers.

From there it was just a matter of time before I would attend my first WordCamp (Buffalo, 2014). Since then I’ve attended more than thirty camps, organized six, mentored five, and spoken at twenty.

I love WordPress. But I love the people even more.

I don’t just love WordPress. I fell in love with WordPress. The ease of use. The total control. I love that there’s always more to learn. I love that I can teach others how to use it. I love the events. I love the collaboration. I love the people.

I don’t just have WordPress acquaintances. I have WordPress friends. I have a WordPress family.

The first site I ever logged into was created for my best friend and me. We had just started a nonprofit organization and her husband built us a website. He made the structure, but we had to add the content. He emailed us our logins. I remember logging in like I had mistakenly been given the key to the castle and wasn’t really supposed to use it. I was afraid to click links. I was afraid to click “publish” or “update.”

I thought for sure I’d kill the whole site. But I didn’t.

I wrote. I added classes. I added pages. I added posts. We added a membership component and soon I was navigating that like a sailor in well-known waters. I was a great WordPress user, but I still didn’t understand the connection between purchasing a domain and having a WordPress site, so I called my friend’s husband.

Rob and Christine had five kids and Christine worked evenings. When I asked Rob to teach me how to get from the domain purchase to having a site, a deal was struck: if I would cook dinner for their kids, he would teach me WordPress. I made spaghetti, purchased a domain and hosting, and I wrote 4 things down on a piece of paper:

  1. Download WordPress from wordpress.org.
  2. Upload WordPress through FTP.
  3. Edit wp-config file (don’t forget to change the salt keys)
  4. Don’t use “admin” as the account name.

The rest I (miraculously) remembered. That was eight years and over 300 WordPress installations ago.

Which all led me to where I am now.

Getting up the courage to speak at WordCamp about a year after I started building sites was scary. I felt like an imposter. I was sure I would be “found out,” but I really did “know my stuff.” People were very complimentary about my talk, so I applied to more camps. I met more people. My friends teased me that I wanted to know all the “A-Listers” in WordPress. Others teased that I wanted to BE an A-Lister. What I really wanted was to learn as much as I could, share what I knew, and build a network.

In 2017 I spoke at WordCamp Ottawa. It was there I built a connection with Jason Knill of GiveWP.com. I had used Give before, and I told him about how it worked for me. He asked if Give could write about the nonprofit site I had built to raise money to feed children in South Sudan. He interviewed me about it. At the end of our meeting I mentioned to Jason that “if you ever have an opening, I’d love to work for you.” Four and a half months later I started working full-time as the Head of Customer Success for Give.

What I love about my job.

In my role at Give I get to talk to people all over the world. I get to help them increase their fundraising, which in turn helps their organizations – most of which are nonprofits helping make the world a better place.

With our WP Business Reviews plugin I get to work with businesses that are hoping to grow and succeed – just like I did when I started my freelance business.

I get to build a team that helps us succeed by helping others succeed. I get to employ people locally in my small hometown outside of Rochester, NY.

I get to keep sharing my love of WordPress.

I continue to speak at WordCamps, mentor and teach locally, and organize my local WordPress Meetup and Technology Nonprofit Meetup. I love Slack, Facebook Groups, Facebook Messenger, and Twitter messages because they let me keep in touch with all of the wonderful people I meet in the community.

Mostly I love how WordPress has empowered me to do more and to be more.

I’ve spent most of my life trying to broaden my comfort zone.

As you can probably tell, I have a pretty large comfort zone. Actually, I can’t remember the last time I saw the border of my comfort zone, because it’s that big; but it wasn’t always so. When I was a child I had a comfort zone the size of a postage stamp. I had to stand in it on one toe, like an uncoordinated ballerina trying to learn to go en pointe and failing miserably. I was timid and shy. I was afraid of everything.

Then one day I decided to do something uncomfortable. I ran for 8th grade student council secretary. It didn’t occur to me that I might not win. I have no idea where that hubris came from. I figured, at that point, that I had just as good a chance as anybody else. I made posters. I gave a speech. And something amazing happened. I lost the election. I mean, I cataclysmically lost the election.

Most people wouldn’t think that losing an election was amazing, but it was. It was amazing because I learned that I could step outside of my comfort zone, lose, and survive. I could still breathe. Still be me. It had changed me and my perceptions of myself. After that, instead of a postage stamp-sized comfort zone, I could put my foot down on the whole envelope.

It didn’t end there.

What I learned is that comfort zones are like concentric circles. A step outside doesn’t just stretch the zone to fit that footstep. Instead, it increases it exponentially. Where before you had a three-foot circle, now you have a six-foot circle, then twelve feet, then twenty-four feet, then before you know it, you won’t be able to see the edge of your zone because it’s so big.

WordPress helped me with that, too.

Instead of feeling like an imposter, the WordPress community embraced me and gave me the validation I needed to feel like I belonged. People were receptive to my ideas. Some wanted to teach me. Some wanted to learn from me. Some wanted to work with me. People hired me. Others asked my opinion or for help. I belonged. I had a tribe.

I will continue to contribute to, support, learn from and grow with WordPress. I love it here. I love my tribe.

I hope you find your tribe, too.

The post I Found My Tribe appeared first on HeroPress.

by Michelle Ames at May 15, 2019 12:00 PM

May 14, 2019

WPTavern: WPWeekly Episode 352 – Capital P Dangit and My Future Plans

*Update* The previous mp3 attached to this post inadvertently ended around the 31 minute mark. I’ve reuploaded the episode and corrected the problem. The full episode is attached below.

In this episode, John James Jacoby and I share what’s new in WordPress 5.2, discuss why not capitalizing one letter can make or break someone in the WordPress community, and what’s new in Jetpack 7.3. We also highlight the highly anticipated release of Advanced Custom Fields 5.8.0.

Near the end of the show, I describe what I’ve been going through the last few months and what you can expect from me going forward. In short, a variety of audio content.

Stories Discussed:

WordPress 5.2 “Jaco” Released, Includes Fatal PHP Error Protection and A Recovery Mode

Registration for WordSesh 6 Is Now Open

New Membership Block Coming to Jetpack, Site Health and Debug Info Added to Version 7.3

Advanced Custom Fields 5.8.0 Introduces ACF Blocks: A PHP Framework for Creating Gutenberg Blocks

WPTracSearch: An Elasticsearch-Powered Search Interface for WordPress Trac Tickets


Transcript of EPISODE 352 – WordPress Weekly

WPWeekly Meta:

Next Episode: Wednesday, May 22nd 3:00 P.M. Eastern

Subscribe to WordPress Weekly via Itunes

Subscribe to WordPress Weekly via RSS

Subscribe to WordPress Weekly via Stitcher Radio

Subscribe to WordPress Weekly via Google Play

Listen To Episode #352:

by Jeff Chandler at May 14, 2019 09:47 PM under wptracsearch

WPTavern: Bear App Adds WordPress Publishing Integration for iOS

For several years, Bear App users have eagerly requested the ability to publish their notes to WordPress. Bear features a zen writing experience blended seamlessly with note-taking capabilities, a combination that landed the app an Apple Design Award in 2017.

People use Bear for everything from taking notes to writing chapters for books. Many users also rely on the app for writing drafts for blogs they plan to publish on other platforms. This often requires multiple steps for copying and pasting content, especially when there is media or HTML included in the content.

Two years ago, the app’s creators had WordPress publishing on their to-do list but it wasn’t yet a priority. They were reluctant to implement their own publishing tool with the WordPress APIs and preferred a solution that would rely on external apps.

Things have changed in the past couple of years, as writing apps have more pressure to provide a frictionless connection to publishing capabilities in order to remain competitive. WordPress’ market share has grown to be an estimated 33% of the the top 10 million websites. In fact, Bear recently moved its blog off of Medium and over to WordPress in February 2019.

This week WordPress.com, maintainers of the open source WordPress mobile apps, and Bear announced that they have collaborated on a solution that allows users to publish notes to WordPress blogs on iOS. Recent updates to both Bear and WordPress apps enable users to click the share icon on a note and see WordPress pop up as an option. The content is shared with all of its formatting, headings, lists, links, and media in tact.

Bear screen recording

The developers at Shiny Frog, makers of the Bear app, explained the solution they landed on for the WordPress integration:

We built an open source library for processing TextBundle files. TextBundle is an open standard for sharing plain text files that include attachments like photos. WordPress then worked to add TextBundle support to its iOS app. Bear hands your note off to WordPress as a TextBundle file, and WordPress converts it into a blog post.

Using an open standard like this allows other other developers to build on top of it to create their own integrations for other platforms. It also keeps the Bear app team from having to stay up to date with all the changes to APIs of multiple platforms.

The new WordPress publishing integration works with any site you have in the WordPress mobile app for iOS, including both self-hosted and WordPress.com sites. Notes must begin with an H1 tag in order to have the blog post title automatically populated. Bear App users can start publishing to WordPress immediately after updating both apps to the latest versions released this week.

by Sarah Gooding at May 14, 2019 08:20 PM under bear

Akismet: Version 4.1.2 of the Akismet WordPress Plugin is Now Available

Version 4.1.2 of the Akismet plugin for WordPress is now available. It contains the following changes:

  • We’ve reduced the number of API requests made by the plugin when attempting to verify the API key.
  • We’re now including additional data in the pingback pre-check API request to help make stats more accurate.
  • We fixed a bug that was enabling the “Check for Spam” button when no comments were eligible to be checked.
  • We’ve improved Akismet’s AMP compatibility.

To upgrade, visit the Updates page of your WordPress dashboard and follow the instructions. If you need to download the plugin zip file directly, links to all versions are available in the WordPress plugins directory.

by Christopher Finke at May 14, 2019 03:06 PM under WordPress

WPTavern: The Most Common WordPress Theme Development Mistakes (and How to Fix Them)

Submitting a theme to the WordPress.org theme directory is a great way to share your work and contribute to the WordPress community. Currently, there are over 7000 themes in the directory, the most popular of which exceeds 300,000 active installations. (Not including Twenty____ Themes which are packaged with WordPress and have install counts in the millions.)

Before submitting your theme to the directory, it’s important to understand the review process first because if your theme doesn’t meet those requirements it can be rejected on the spot.

Themes that have 3 or more distinct issues may be closed as not-approved. However, theme authors may resubmit the theme once they’ve corrected the issues.


Reviewers are on your side and want to see your theme go live, once it meets the standards required. If your theme has only minor issues preventing it being included in the directory, your reviewer will work with you to fix those.

Unfortunately, if your theme has too many issues it will be closed as not-approved. If you decide to fix the issues you can upload the theme again – but it will join the back of the queue.

From my experience reviewing over 100 themes I’ve been able to identify the most common issues that prevent themes being approved. By sharing these with you in this article I’m hoping I can help you avoid getting stuck in the queue or rejected.

Uploading Your Theme

When you upload a theme, it joins the queue to be reviewed. On average it will take two months for your theme to reach the front of the queue and receive its first review. All reviewers are volunteers with limited time available to complete reviews. A variety of factors can affect the wait time. When more people volunteer to review themes, the queue moves quickly. Conversely, when themes with a lot of issues are submitted it slows down the queue.

By submitting a theme that meets all the requirements it makes the review process a lot smoother and ultimately your theme will be live sooner. In this guide, we are going to explore the most common issues that will keep your theme held up in the queue and prevent it from being approved.

Note: Theme authors that have a track record of submitting issue-free themes can apply to become ‘Trusted Authors‘.

Naming Issues

When you upload a theme, the first check that is performed is to see if the name is already taken. Frequently you will be told the name you’ve chosen is already taken, even if you can’t see a theme with that name in the directory.

How could that be? The reason is that the test isn’t checking against just the directory, it’s checking against the entire WordPress ecosystem. If a theme has been released anywhere (Github, ThemeForest, etc.) and has over 50 active installations, that name will be unavailable to use.

Note: if you’ve released your theme elsewhere and accumulated 50+ installations, you can still use that name in the directory.

Unescaped Output

Theme reviewers take security very seriously, there’s even a dedicated resource. An entire article could be written on writing secure themes, but in this section we are going to explore one aspect: escaping output.

Unescaped output places users of your theme at risk. Here’s an example of an unescaped value ($title):

$title = get_option( 'my_custom_title' );
echo '<h2>' . $title . '</h2>';

The problem with the above is that while we know what type of value $title should be, a string, we have not checked if that is the case.

If a hacker has managed to change the value of ‘my_custom_title’ in the database, your theme will output that value. This presents a huge risk as they could replace the intended output with inline Javascript:

    alert('This is dangerous'); 

The solution is to escape all output to ensure it only includes the type of data we are expecting.

Our example could be fixed like this:

$title = get_option( 'my_custom_title' );
echo '<h2>' . esc_html( $title ) . '</h2>';

The downside to using esc_html is that it strips all HTML tags. If $title included bold or italics, for example:

$title = 'This article is <strong>very</strong> useful';
echo esc_html( $title );

The word ‘very’ would not be bold on the frontend; instead it would output the code <strong>very</strong>.

This illustrates why it’s important to use the correct escaping functions for the context. If we were expecting some HTML in the output, we’d be better using wp_kses_post() or wp_kses() and setting the $allowed_html parameter.

Functions that output also need to be escaped:

<a href="<?php echo esc_url( get_permalink() ); ?>">

The exception is WordPress core functions that include ‘the_’ in their name, these are usually escaped already.

function the_permalink( $post = 0 ) {
     * Filters the display of the permalink for the current post.
     * @since 1.5.0
     * @since 4.4.0 Added the `$post` parameter.
     * @param string      $permalink The permalink for the current post.
     * @param int|WP_Post $post      Post ID, WP_Post object, or 0. Default 0.
    echo esc_url( apply_filters( 'the_permalink', get_permalink( $post ), $post ) );

Untranslatable Text

To be accepted into the directory all themes must be 100% ‘translation-ready’. That means each text string your theme outputs must be translatable.

WordPress already has the systems and functionality to handle the translation process, you just need to make sure your strings use the correct functions.

While simple to implement, this is often overlooked as it goes against the flow of how people write HTML.

Normally, you might do something like this:

<h1>404 - Not Found</h1>

To make it translatable, you need to add in some PHP:

// __ functions are the basis of localization.
<h1><?php echo __( '404', 'text-domain' ); ?>

// _e functions echo the value.
<h1><?php _e( '404', 'text-domain' ); ?>

// Escape and echo the string.
<h1><?php esc_html_e( '404', 'text-domain' ); ?>

// localization and variables.
<h1><?php _n( 'One post', '%s posts', $count, 'text-domain' ); ?>

Strings output by functions must also be translation ready:

// not translation-ready :-(
<?php next_posts_link( 'Older Entries' ); ?>

// translation-ready :-)
<?php next_posts_link( esc_html__( 'Older Entries', ‘text-domain’ ) ); ?>

Tip: A lot of code examples in codex.wordpress.org don’t use the translation functions, so be careful when copy and pasting those.

Incorrectly Enqueuing Resources

The .css and .js files your theme uses must be enqueued using the correct functions: wp_enqueue_style() for CSS and wp_enqueue_script() for Javascript.

A common error is to hardcode scripts and styles directly into the <head> or before </body>. There are two problems to this approach:

1. Impossible to remove

If a plugin needs to remove a resource you have loaded, it’s not possible. If you had used the proper enqueue functions it could be done like so:

 * Dequeue the theme javascript.
 * Hooked to the wp_enqueue_scripts action, with a late priority (100),
 * so that it is after the script was enqueued.
function wptavern_dequeue_script() {
   wp_dequeue_script( 'theme-scripts' );
add_action( 'wp_enqueue_scripts', 'wptavern_dequeue_script', 100 );

2. Duplicate Loading

If you enqueue a resource, jQuery for example, and a plugin also enqueues it, WordPress is smart enough to only load it once.

 * Enqueue jQuery
 * jQuery will only be loaded once, despite the two enqueues.
 * jQuery is packaged with WordPress so we don't need to specify a src. 
function wptavern_enqueue_script() {
   wp_enqueue_script( 'jquery' );
   wp_enqueue_script( 'jquery' );
add_action( 'wp_enqueue_scripts', 'wptavern_enqueue_script' );

If instead you had hardcoded jQuery into your <head> then there would be no way for WordPress to know, and it would be loaded twice.

Plugin-Territory Functionality

The scope of a theme should only handle the design and aesthetic of a website, all other functionality should be handled by WordPress itself or plugins.

In an attempt to add more value to their themes, theme authors often try to incorporate extra functionality, for example, SEO controls or custom post types.

The problem with bundling functionality into a theme is that the data is not portable. Take SEO controls as an example, if the user changes the theme, they lose all the work they did to optimize their pages. In contrast by using an SEO plugin, the data and functionality is independent of the theme and will be retained when changing the theme.

Some examples of plugin-territory functionality:

  • Analytics/Tracking
  • SEO controls
  • Contact Forms
  • Shortcodes
  • Gutenberg Blocks

Tip: If your code writes to the database, it is highly likely to be plugin territory. The exception would be design-related settings (sidebar position, colors, etc.).

Not Prefixing

Prefixing is a way of ensuring that your code doesn’t clash with code from plugins. Namespacing in PHP is a better way to achieve the same effect. However, some users are still using old versions of PHP (5.2) which don’t support that feature.

Justin Tadlock shared a list of common things that should be prefixed:

  • PHP function names.
  • PHP class names.
  • PHP global variables.
  • Action/Filter hooks.
  • Script handles.
  • Style handles.
  • Image size names.

Source: https://themereview.co/prefix-all-the-things/

// function example.

// class example.
class My_Prefix_Example { … }

// action and filter example.
do_action( 'my_prefix_action' );
apply_filters( 'my_prefix_filter', $values );

// enqueue examples.
wp_enqueue_script( 'my_prefix_script', get_template_directory_uri() . '/js/custom-script.js' );
wp_enqueue_style( 'my_prefix_style', get_template_directory_uri() . '/css/styles.css' );

// image size example.
add_image_size( 'my_prefix_image_size', 220, 180 ); // 220 pixels wide by 180 pixels tall.

Exception: When enqueuing third-party resources, don’t add a prefix:

 // enqueuing a third-party script (chosen.js).
 wp_enqueue_script( 'chosen', get_template_directory_uri() . '/js/chosen.js' );

Licensing Issues

Your theme and all of its files must be 100% GPL-compatible. This includes images, libraries, scripts, and fonts.

All third-party resources must list their source and license information.

This requirement can be particularly tricky as not all licenses are GPL-friendly. The Unsplash license only has one restriction:

“This license does not include the right to compile photos from Unsplash to replicate a similar or competing service.”

That one restriction, however, is enough to make it non-GPL-compatible, and as such, you won’t see Unsplash images included in wordpress.org themes.

A list of GPL-compatible licenses is available here – https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses

Recently, stocksnap.io has been the most common source of images in the directory as all the images they list are licensed as CC0 (GPL-compatible).

Screenshot Mistakes

The requirements state that your screenshot should be an unedited representation of your theme that doesn’t look like an advertisement. That means no photoshop work, overlays, borders or fancy effects.

Images must also follow the same licensing requirements we explored above.

theme pictured: Blocksy

Bonus: Use a Coding Standard

Code that seems easy to read and understand for you, can be the complete opposite for a reviewer who only has 10-15 minutes to check your code.

While there is no requirement on coding standards, following one does make your code easier to read, understand and maintain. I personally use and recommend the ‘WordPress Coding Standards‘, though there are others.

Using PHP_CodeSniffer and the WordPress ruleset in your code editor can make adhering to a standard a lot easier – https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards


The Theme Requirements are created with the end user in mind. Avoid making the common mistakes I’ve listed above and your theme will be approved in no time. If you would like to experience the review process from the other side, you can even become a reviewer.

by Danny Cooper at May 14, 2019 02:56 PM under News

WPTavern: Pressing Topics – Episode 1

Pressing Topics is a daily podcast hosted by Malcolm Peralty and myself. We discuss the news that’s making headlines in the WordPress ecosystem as well as related topics that catch our eyes. Generally speaking, if you listen to this show on a daily basis, you should have a good idea on what’s going on in the WordPress community.

Pressing Topics is different from WordPress Weekly as we’ll rarely interview guests, go in-depth on specific subjects, and the show’s length is greatly reduced. Today’s episode is 26 minutes long and most episodes will be shorter than that.

In our first episode, we discuss the balancing act of user self sufficiency, a new empowerwoment project at Yoast, why countdown timers on event sites are impractical, and WPMU Dev ending development for more than 90% of their plugins.

We also talk about the success of WordPress Translation day 4, and inform listeners of multiple security vulnerabilities discovered in the WordPress Ultimate Member plugin.

I’ll submit the podcast to iTunes in the next few days to provide more convenient options of subscribing. Please listen to episode one and let us know what you think.

Stories Discussed:

User Self Sufficiency

Empowerwoment project at Yoast

Conference Websites – Please don’t use countdown timers

WPMUDEV Shutting Down Development on Many Plugins

WPMU Pro Sites Plugin Migration Option with WP Ultimo

WordPress Translation Day 4 Successfully Hosts 77 Local Events in 35 Countries, Recruits 183 New Translators

Multiple Vulnerabilities in the WordPress Ultimate Member Plugin

The transcript is in Rich-Text format. You can download the show or listen to it via the embedded audio player below.

Listen to Pressing Topics Episode 1

by Jeff Chandler at May 14, 2019 08:24 AM under yoast

May 13, 2019

WPTavern: WordPress Translation Day 4 Successfully Hosts 77 Local Events in 35 Countries, Recruits 183 New Translators

WordPress Translation Day 4 was held over the weekend. The 24-hour global event hosted 77 local events in 35 countries and the Polyglots team added 183 new contributors to their ranks. The team also designated 12 new GTEs (Global Translation Editor) and 14 PTEs (Project Translation Editor).

Naoko Takano, a Polyglots Team Global Mentor and Japanese GTE, gave an introduction to the event from Tokyo for the livestream. In her presentation she shared some stats on the state of WordPress translation. WordPress is currently available in 201 locales with 614 GTEs, 3,086 PTEs, and 32,585 contributors. The majority of WordPress installs are in locales other than US English, representing an estimated 18% of the web.

Takano also highlighted the top locales installed:

  • Japanese: 5.9%
  • German: 5.5%
  • Spanish: 5.0%
  • French: 3.8%
  • English (UK): 3.7%

Locales with most translation contributors include Spanish (2,863), German (2,399), Italian (2,190), Dutch (1,584), and Russian (1,515). These stats show that WordPress still has tremendous opportunity for growth among top world languages with the most native speakers, such as Chinese dialects, Hindi, Aarabic, Bengali, and Portugese.

Translation Day 4 hosted more local events than previous years with participants in Africa, Asia, Europe, North America, South America and Oceania. Some of these events projected the livestream, online talks, and tweets, enabling attendees to follow along with other participants across the globe.

Energetic groups of Polyglots gathered together to make WordPress more accessible in their languages. Their goals included the following:

  • Increase the number of PTEs
  • Increase the number of mentors
  • Translate the top 200 plugins and themes
  • Curate Polyglot assets: glossary and rules
  • Improve the Translate page on Rosetta

Bhutan Hosts Its First Meetup in Thimphu for WordPress Translation Day

Some of the newly initiated Polyglots contributors came from Bhutan where the country’s first WordPress meetup was hosted in Thimphu this past weekend. Organizer Ugyen Dorji gathered local developers, designers, and publishers for WordPress Translation Day, adding more contributor to the Dzongkha locale, the national language of Bhutan. The group now has 26 members.

Dorji invited a speaker for the meetup, Tenzin Namgyel, an ICT officer from the Dzongkha Development Commission who is also the locale manager and GTE for Dzongkha. He explained the basics of translating WordPress and the attendees participated in Translation Day via the livestream.

Dorji is passionate about completing the Dzongkha translation, encouraging Dzongkha bloggers, and improving local government websites. Many local government websites, such as the Dzongkha Development Commission, rely on WordPress. As the organizer of the fledgling meetup, Dorji is full of ideas for growing the Bhutanese WordPress community.

“My next plan is to visit the language university and teach them to blog in Dzongkha using WordPress,” he said. “We have plans to gather a group of active Bhutanese WordPress bloggers and host panel talks. WordCamp Thimphu is my goal – to reach and invite more WordPress experts as speakers of the main event and help Bhutanese to grow their careers with WordPress.”

In addition to launching a new WordPress community in Bhutan, participants in the Translation Day event translated thousands of strings and helped new teams make progress towards launching packages for WordPress 5.2. Some of the most popular plugins and themes are now more accessible to the global WordPress user base, thanks to contributions inspired by the virtual event.

Events like this are a reminder of just far-reaching WordPress’ influence is across cultures. The Polyglots team is made up of a diverse and remarkably collaborative community of volunteers. Check out a few of the translation teams below that checked in from around the world with pictures on Twitter.

by Sarah Gooding at May 13, 2019 10:35 PM under Global WordPress Translation Day

Follow our RSS feed: 

WordPress Planet

This is an aggregation of blogs talking about WordPress from around the world. If you think your blog should be part of this site, send an email to Matt.

Official Blog

For official WordPress development news, check out the WordPress Core Blog.


Last updated:

May 24, 2019 06:00 AM
All times are UTC.