Using wordpress embeds with MLA gallery?
-
First, thank you so much for all of your work on this plugin! It’s been really invaluable to me for many projects, and I appreciate the really stellar support that’s provided for it, too.
Anyway, my question:
I’m using the shortcode below to display an MLA gallery of products on a client’s page. The client wants to be able to display a Spotify playlist along with each product, which works just fine with WordPress’ “embed” function if I insert it into the actual page editor, but I can’t seem to get it to work at all when it’s integrated into the markup template. I created a custom “spotify_playlist” field using the Advanced Custom Fields plugin, which displays on the image screen in the media library. I’ve tried everything I can think of (and I apologize for my inability to remember/list them all out here). I tried including the wordpress [embed][/embed] shortcode in the custom field along with the spotify link without any luck, and it didn’t work when I incorporated it into the markup template, among many other failed solutions, but no matter what, the only thing I can get to display is a text string of the Spotify URL.
And, for the code:
The shortcode:
[mla_gallery size="medium" columns=1 mla_style=product-page mla_markup=product-grid attachment_category='wine' attachment_tag='2013' orderby='title' link="image"]which pulls in the following markup template:
<div id='[+selector+]' class='gallery galleryid-[+id+] gallery-columns-[+columns+] gallery-size-[+size_class+]'> <!-- row open --> <div class="col-md-9 gallery-caption"> <h2>[+title+]</h2> <h3>[+caption+]</h3> <p><em>[+description+]</em></p> <p>[+custom:spotify_playlist+]</p> </div> <div class="clearfix"></div> <br><br> </div>I’d really appreciate any guidance you can offer here! I’d love to find a way to make this work within MLA, although I know there are other ways to build this as well. Thank you in advance.
-
Thanks for your kind words and for this interesting question. Thanks as well for posting the details of your shortcode and template; very helpful.
As you’ve experienced, shortcodes like
[embed][/embed]are not processed when extracted form a custom field and added to an[mla_gallery]display. The easy way to accomplish your goal is to use themla_gallery_item_valuesfilter in a small custom plugin (or add it to your theme’sfunctions.phpfile). The code you need will be something like:/* * Replace the Spotify Playlist URL with the WordPress [embed] output */ if ( isset( $item_values['custom:spotify_playlist'] ) ) { //$item_values['custom:spotify_playlist'] = do_shortcode( '[embed]' . $item_values['custom:spotify_playlist'] . '[/embed]' ); $item_values['custom:spotify_playlist'] = apply_filters('the_content', "[embed]" . $item_values['custom:spotify_playlist'] . "[/embed]"); }You might think a simple
do_shortcode()would work, but[embed]is special; see the Function Reference/do shortcode example.You can adapt the
/media-library-assistant/examples/mla-audio-shortcode-example.php.txtexample plugin for a complete solution. Just replace theif ( isset( self::$shortcode_attributes['my_custom_audio'] ) ) {code with the code above and you should get what you want.I am marking this topic resolved, but please update it if you have problems or further questions about adding
[embed]output to your[mla_gallery]display. Thanks for your support and for an interesting application example.Creating a custom plugin for this worked like a charm! Thank you so much for your speedy response, and for now it looks like this is indeed resolved.
Thanks for your update and for the good news. I am happy to hear you were able to create a custom plugin along the lines I suggested. Let me know if you have any other problems or questions regarding an
[embed]shortcode in your[mla_gallery]displays. Thanks for your interest in the plugin.
The topic ‘Using wordpress embeds with MLA gallery?’ is closed to new replies.