In previous years I’ve written a bucket list for things I want to achieve while attending WordCamp London. This year I already have 9 items. I’m sure I’ll find the 10th very soon.
- Find some coding buddies
- Implement WPCS for PhpStorm
- Run my phpUnit tests from PhpStorm
- Improved WPMS content sharing
- Runtime plugin activation based on URL visited
- Passing values to nested blocks
- Inline blocks
- Understand the select API
- Internationalisation (i18n) for blocks
- Choose from below
Item 1. Find some coding buddies
At @wppompey last month we discussed the Southampton Code Club meetup. Due to other commitments I’ve not been able to attend this meetup yet. But, from my understanding, I think it will be useful for me to get involed. That’s so long as the objective of the meetup is to share.
In the 10 years or so since I’ve been developing WordPress plugins I’ve not worked closely with anyone on any projects. I have over 100 GitHub repositories, but no collaborators. I’m sure I’m missing out. There are many things that I know I want to improve in my development process. I would like some guidance from others who have already learnt it themselves or have been taught it. And while learning I may be able to impart some of my knowledge. Since even though I may not be doing it right ( “doing it wrong” even), I do believe that, when you’ve got a problem to solve, “doing something is better than doing nothing”.
I’m looking for one or more coding buddies, preferably local, to work on projects with the following objectives:
- Improve the delivered project.
- Learn from each other.
Item 2. Implement WPCS for PhpStorm
WPCS – WordPress Coding Standards
PhpStorm provides full coding assistance for developing WordPress including WordPress-aware code completion, search for hook registration functions and functions specified as hook registration parameters, navigation between hook registrations and the hook invocations, callbacks, the possibility to configure the coding …
I set up the PHP Code Sniffer to run from the command line in my old PC ( aside: cs.bat file calls C:/github/squizlabs/PHP_CodeSniffer/bin/phpcs ). Now I need to configure my new PC.
Item 3. Run my PHPUnit tests from PhpStorm
A while ago I developed my PHPUnit solution to run in situ. I currently run my tests from the command line. Now I want to be able to develop and run tests within PhpStorm. I’m just a little nervous about breaking things. So I suppose I want to implement it in some safe project before applying it to my main development environment. Any help greatly appreciated.
Item 4. Improved WPMS Content Sharing
wp-a2z.org is a WordPress Multi Site network with subdomains for a number of well known plugins or themes. I’ve been developing blocks.wp-a2z.org to catalogue the different blocks for the new block editor in WordPress. In the blocks sub-domain I want to duplicate the documentation for the blocks associated with WordPress core, Jetpack, WooCommerce and Yoast SEO. This will then enable visitors to search for a block in just one site.
The solution is also related to wordpress.org work to support block registration and discovery.
Building a WordPress.org directory for discovering blocks, and a way to seamlessly install them.
Item 8 – 9 Projects for 2019, Matt Mullenweg
Item 5. Runtime plugin activation based on URL visited
I estimate that by the end of 2019 there will be 500 or so WordPress plugins that implement blocks, with an average of 10 blocks per plugin. If we want to create a catalogue that can demonstrate these blocks in action then we’ll need to be able to dynamically load the required plugin(s) for the block.
I’ve started writing a Must Use plugin that determines what to load based on the request. I imagine that a more advanced solution will be needed for a generic solution, where blocks are used indiscriminately.
Item 6. Passing values to nested blocks
Most blocks expect some attributes to be set, which will define the behaviour of the block. I feel I have the requirement for a nested block to inherit values from the containing block. An example would be an Author / Person block which allows a Follow me block to be nested. Both blocks require the Author to be identified. One would expect the parent block to pass this parameter to the nested block. In this screen capture of my Person block below you’ll see I implemented a pragmatic solution by extending my [bw_user] shortcode to support a virtual field called `follow_me`.
Item 7. Inline blocks
I’m only aware of one inline block – the Inline image – an example of which you can see here in this paragraph block.
You can insert it using the Inline Elements section of the Block Inserter tool ( Add Block ).
I think I have a requirement for other inline blocks, such as inline icons and inline shortcodes. Maybe you can put me right.
Item 8. Understand the select API
There’s a lot of source code in Gutenberg that I don’t understand at all. I wish someone could explain it to me. One example is the select API.
Item 9. Internationalisation (i18n) for blocks
I’m going to have to learn how to do this sometime. Where’s the best place to start?
Item 10. Choose from below
- Find a Table of Contents block.
- Find a Numbered headings block
- Demonstrate to a Designer the frustrations of using an iPad to write content with the block editor.
- Expand the WP-Pompey community