Demac Media Demac Media Brand Demac Media Brand



Mini Tutorial:
Custom WordPress Shortcode in Magento with Fishpig

Timer Icon 2 Mins

Magento Commerce, Magento Tutorials

Most WordPress users should be exposed to the ShortCode. It’s a special code that embeds extra features to a post in the visual editor. E.g the [ video ] tag allows an user to embed an video.

Fishpig’s WordPress supports shortcode too. This allows Magento to render shortcodes in Full Integration mode. However, the rendering code in Fishpig is independent from official WordPress. Therefore the official shortcodes do not work when rendering in Magento. Fishpig supplied a separated set of shortcode for the full integration.

But what if you need to support a custom WordPress shortcode in Magento? Well, this is the tutorial for you!

Example: Global Content Blocks

In the following example, I’ll be implementing the shortcode for Global Content Blocks.

Note: This example assumes you know how to create a Magento extension.

There are 2 steps involved. The first is to declare your shortcode and the second step is to hook up your shortcode to the “wordpress_shortcode_apply” event observer. Please see the follow gist for details.

Further Notes

This implementation only supports multi-site setup and basic content rendering. It takes both numeric and string as identifier. However, it does not support advanced features such as PHP eval and %%variables%% rendering, which supported in WordPress version. Those pieces of content should be rendered as plain text. You have to add extra logic to support these advanced features.

This concludes the tutorial. Please leave a comment if you have any questions. The next part of the series will be “Adding WordPress Posts and Categories to Magento’s Google Sitemap”.

Related: Full Fishpig WordPress Integration with Custom Post Types and Fields for Magento

Subscribe to the Blog

Stay updated with 20,000+ eCommerce leaders in our community

Sign Up

Let’s talk about your 10X return

Icon/Social/Phone Contact us for pricing information