Automatisering (WordPress)
Processen die ik vaak doorloop, automatiseer ik graag. Dat maakt die processen herhaalbaar, verifiëerbaar, optimaliseerbaar en schaalbaar. Rondom WordPress zijn er twee specifieke gevallen waarop ik automatisering toepas:
- Updaten van betaalde plugins → Plugins handmatig bijwerken (WordPress)
- Importeren van WooCommerce-productgegevens en bijbehorende data → Dit artikel.
In dit artikel worden plugins buiten beschouwing gelaten: Ik vind ze vaak te beperkt of te onhandig.
Problemen
Ik wil graag de volgende objecten in WordPress in bulk importeren en aan elkaar koppelen.
Productgegevens importeren
Hoe kan ik WooCommerce Productgegevens in bulk importeren? En dan zo compleet mogelijk, liefst inclusief taal. Dit mag inclusief afbeeldingen en afbeelding-metadata, maar dat kan ook apart.
Afbeelding-metadata importeren
Als het gaat om optimalisatie van productgegevens, dan speelt optimalisatie van afbeelding-metadata een belangrijke rol. Zie de afbeelding hiernaast voor een overzicht van de betreffende velden. Dit wil ik heel graag automatisch kunnen importeren. De afbeeldingen zelf, kan ik desgewenst handmatig doen, zolang de koppeling met de metadata min-of-meer automatisch gaat.
Afbeeldingen & producten koppelen
Taxonomieën importeren
Ihb.:
- Product-catalog-taxonomieën
- Product-attribute-taxonomieën
- Post-taxonomieën?
- tags?
Taxonomieën & producten koppelen
Posts importeren?
Met posts bedoel ik hier 'gewone' pagina's. Deze zijn tot op heden (april 2019) voor mij het minst relevant, al kan het zijn dat ik binnenkort een klus heb, waarbij zo'n 2.500 'gewone' pagina's aangemaakt moeten worden.
Oplossingen
Naast plugins (die ik hier buiten beschouwing laat) zijn er verrassend veel mogelijkheden:
PHP-API
WordPress is geschreven in PHP, en alle functionaliteit is ondergebracht in een verzameling API's. Dit is waartegen je programmeert als je bv. een plugin schrijft. Waarschijnlijk is dit de krachtigste methode om WordPress naar je hand te zetten. Er bestaan een paar Python-wrappers zodat je sommige API's via Python kunt benaderen, maar in de praktijk moet je het gewoon in PHP doen. Dat kan zowel in de vorm als plugins, maar ook in de vorm van losse scripts. Tot op heden (april 2019) gebruik ik deze laatste mogelijkheid.
Een impressie van de API's die tezamen de WordPress API vormen:
- <a href="https://codex.wordpress.org/Dashboard_Widgets_API" title="Dashboard Widgets API">Dashboard Widgets API</a>
- <a href="https://codex.wordpress.org/Database_API" title="Database API">Database API</a>
- <a href="https://codex.wordpress.org/HTTP_API" title="HTTP API">HTTP API</a>
- <a rel="nofollow" class="external text" href="https://developer.wordpress.org/rest-api/">REST API</a>
- <a href="https://codex.wordpress.org/File_Header_API" title="File Header API">File Header API</a>
- <a href="https://codex.wordpress.org/Filesystem_API" title="Filesystem API">Filesystem API</a>
- <a href="https://codex.wordpress.org/Metadata_API" title="Metadata API">Metadata API</a>
- <a href="https://codex.wordpress.org/Options_API" title="Options API">Options API</a>
- <a href="https://codex.wordpress.org/Plugin_API" title="Plugin API">Plugin API</a>
- <a href="https://codex.wordpress.org/Quicktags_API" title="Quicktags API">Quicktags API</a>
- <a href="https://codex.wordpress.org/Rewrite_API" title="Rewrite API">Rewrite API</a>
- <a href="https://codex.wordpress.org/Settings_API" title="Settings API">Settings API</a>
- <a href="https://codex.wordpress.org/Shortcode_API" title="Shortcode API">Shortcode API</a>
- <a href="https://codex.wordpress.org/Theme_Modification_API" title="Theme Modification API">Theme Modification API</a>
- <a href="https://codex.wordpress.org/Theme_Customization_API" title="Theme Customization API">Theme Customization API</a>
- <a href="https://codex.wordpress.org/Transients_API" title="Transients API">Transients API</a>
- <a href="https://codex.wordpress.org/Widgets_API" title="Widgets API">Widgets API</a>
- <a href="https://codex.wordpress.org/XML-RPC_WordPress_API" title="XML-RPC WordPress API">XML-RPC WordPress API</a> (supersedes the legacy Blogger, MovableType, and metaWeblog APIs)