Gallery Image Captions (GIC)
With GIC, you can display the title, caption, and description image attributes. You can also change/filter the rendering HTML to whatever you want. After installing and activating GIC, write your filter and add the WordPress Gallery shortcode to your page. If you’ve been dreaming of writing a filter to customise the gallery image captions, then this plugin is for you. Visit the live demo page. Motivation The default WordPress gallery shortcode will only display the caption from the media’s attachment metadata. Sometimes it’s nice to display more like the title—even the description. The GIC plugin overrides the WordPress gallery shortcode function to create a hook. With this hook you can do a little bit more than just displaying the caption. Some premium themes hide the caption completely. This leaves photography lovers like me scratching their head and spending precious time cobbling together makeshift caption blocks. Usage Custom Filter For Displaying Captions The crux of this plugin is the ability to filter the gallery image caption. The galimgcaps_gallery_image_caption hook makes this possible. For the usage examples below, this is the filter used. /** * Custom Filter for Gallery Image Captions * * Note: Avoid altering captiontag, selector, and itemtag. */ function mlc_gallery_image_caption($attachment_id, $captiontag, $selector, $itemtag) { $id = $attachment_id; // Grab the meta from the GIC plugin. $my_image_meta = galimgcaps_get_image_meta($id); /** * Here's where to customise the caption content. * * This example uses the meta title, caption, and description. * * You can display any value from the $my_image_meta array. * You can add your own HTML too. */ return " " . "Title: " . $my_image_meta['title'] . " " . "Caption: " . $my_image_meta['caption'] . " ". "Description: ". $my_image_meta['description'] . " "; } add_filter('galimgcaps_gallery_image_caption', 'mlc_gallery_image_caption', 10, 4); Feel free to use this filter code as a starter template. After activating the GIC plugin, add the code above to your child theme’s functions.php file. Rename the function and tweak the return string to suit your needs. New Filter To Get Custom Fields /** * New GIC 1.4.0 filter for custom meta fields. */ function gic_add_custom_fields( $image_meta, $attachment ) { // This is how you add a custom fields to the array that // GIC uses to display captions. $image_meta['credit_text'] = $attachment->credit_text; $image_meta['credit_link'] = $attachment->credit_link; return $image_meta; } add_filter( 'galimgcaps_image_meta', 'gic_add_custom_fields', 10, 2 ); To use these two custom fields, your galimgcaps_gallery_image_caption would look something like this. function mlc_gallery_image_caption($attachment_id, $captiontag, $selector, $itemtag) { $id = $attachment_id; // Grab the meta from the GIC plugin. $my_image_meta = galimgcaps_get_image_meta($id); // If there's credit, give it where it's due complete with link. $credit = $my_image_meta['description'] ? " Credit : " . $my_image_meta['credit_text'] . " " . " " : ''; /** * With GIC 1.4.0 you can also add custom media attachment fields * to your captions. */ return " " . " Caption : " . $my_image_meta['caption'] . " " . $credit . " "; } add_filter('galimgcaps_gallery_image_caption', 'mlc_gallery_image_caption', 10, 4); Since v1.2.0, GIC automatically adds an Image ID column to your WordPress Media Library. This is to help you add the image IDs to your GIC shortcodes. See where GIC automatically adds an Image ID column to your WordPress Media Library. New in v1.4.0, GIC support custom media attachment fields. Usage Example 1 Shortcode For starters, let’s use a tag for the caption tag. [gallery size="full" columns="1" link="file" ids="114" captiontag="p"] Styling Let’s override the generated styles with our own style for one particular image. /* Targeting a Specific Image */ /* Add some padding all around. */ #gallery-1 .gallery-item, #gallery-1 .gallery-item p { padding: 1%; } /* Add some moody background with typewriter font. */ #gallery-1 .gallery-item { color: whitesmoke; background-color: black; font-size: 1.25rem; font-family: Courier, monospace; text-align: left !important; } Usage Example 2 Shortcode A 2 column x 1 row gallery with large size images using an H4 for the caption. [gallery size="large" columns="2" link="file" ids="109,106" captiontag="h4"] A 3 column x 1 row gallery with medium size images using a blockquote for the caption. [gallery size="medium" columns="3" link="file" ids="109,106,108" captiontag="blockquote"] Did you notice that we are using in the second shortcode? Let’s give it try just for kicks. Styling /* 1. Style the H4 Used in the Caption Example */ h4 { color: #777777 !important; font-size: 1.2rem !important; font-family: Helvetica, Arial, sans-serif !important; } /* 2. Help Align the Blockquote */ #gallery-3 .gallery-caption { margin-left: 40px !important; } Responsive CSS Example I recommend adding the following media queries if you use galleries with more than one image. The two media queries below will stack 2×1 and 3×1 galleries into a 1 column x n rows or 2 column x n rows as needed. /* Media Queries for Responsive Galleries */ /** * Styling based on article "How To: Style Your WordPress Gallery" * by Par Nicolas. * * https://theme.fm/how-to-style-your-wordpress-gallery/ */ /* Mobile Portrait Breakpoint - 1 column */ @media only screen and (max-width: 719.998px) { .gallery-columns-2 .gallery-item, .gallery-columns-3 .gallery-item { width: 100% !important; } } /* Mobile Landscape and Tablet Breakpoints - 2 columns */ @media only screen and (min-width: 720px) and (max-width: 1024px) { .gallery-columns-3 .gallery-item { width: 50% !important; } }
Top keywords
- image34×3.94%
- gallery20×2.32%
- meta19×2.20%
- caption18×2.09%
- image meta15×1.74%
- gic14×1.62%
- add13×1.51%
- filter13×1.51%
- gallery image11×1.28%
- custom10×1.16%
- id10×1.16%
- media10×1.16%
HTML
Converts the default plain-text email notifications into fully customizable, sweet-lookin’ HTML emails. Multi-site support (for WordPress 3.0) will be added soon. Notes: Emails are sent with readable plain-text versions for email clients that don’t support HTML emails. Note: they’re somewhat crude because they’re auto-generated. I may decide to add decent-looking plain-text versions in the future, but that’s low priority. Emails have only been tested on Gmail, Gmail on Android, and Outlook, but should work on most email clients (including clients without HTML support). If you’re using a client other than the 3 I’ve listed, I would appreciate an email with info on whether the email looks like it should and works correctly. Send your questions, comments, suggestions via email. Customizing Templates You can fully customize the look of any of the emails by creating your own templates. Emails have two pieces: Email Wrapper (content common across all emails) Email Message (content unique to each email) Custom templates can be created an placed in either your theme directory or your Content directory (/wp-content/ on most sites). See utils.php for a number of useful functions that you can use in your templates. Email Wrapper The Email Wrapper includes elements and markup that are common across all email notifications. It contains your html, head and body tags and any other elements that are shared across emails. To customize the email template, create a file called html_email.php and add it to either your theme or content directory. Note: you must include the following code in the template to work: The Email Wrapper has access to the following variables: $email_title: (string) title of the email $email_subtitle: (string) subtitle of the email $email_data: (array) Associative array of various data passed by the calling function Email Message: New Comment By default, new comment and comment moderation emails share the same template. You can create separate templates for both for each comment type by creating the following files: notify_postauthor_comment.php notify_postauthor_trackback.php notify_postauthor_pingback.php notify_moderator_comment.php notify_moderator_trackback.php notify_moderator_pingback.php If you don’t want to customize the emails by comment type, just create the following two templates: notify_postauthor.php notify_moderator.php If you just want a custom template shared between the two notification types, just create the following: notify_comment.php New Comment email messages have the following data variables available: $comment – (obj) comment object $post – (obj) post object $comment_type – (string) slug for the comment_type $comment_type_text – (string) friendly name for the comment_type $comment_moderate – (bool) Whether the comment needs moderation or not Using HTML Emails in your plugin It’s pretty easy to use. The main call you need to make is htmlize_message() and pass the return into your wp_mail object. Details to come. Credits Blockquote image borrowed from the amazing Wu Wei theme by Jeff Ngan Plain Text conversion script by Jon Abernathy aka Chuggnutt Email styling inspired by WordPress.com Blog Subscription Notifications