Sharing Image

Sharing Image is a WordPress plugin for generating sharing posters in social networks. Allows you to use text, watermarks and various filters. It is possible to create different posters for any posts types, archives and taxonomies. Compatible with various SEO plugins.

Custom posters draw attention to your social media links and make them stand out from the rest in your feed. You can also place your company logo as a watermark to increase your brand awareness. If you are posting video or audio, it can be a good idea to add a play icon to your poster to help users identify the type of content.

Install Github
Sharing Image WordPress plugin general screenshot

Installation #

Just search sharing-image and activate the plugin from your admin dashboard. You can also manually upload the latest release to /wp-content/plugins and activate it.

The standard PHP GD library is used to generate posters. Its presence is mandatory in the system. If you are unable to install it yourself, contact your hoster or system administrator. Find more at PHP Manual.

How it works #

Plugin usage is divided into 2 stages: template preparation and poster generation.

Navigate to the Sharing Image Settings first. Add new template and fill desired options. You can upload permanent background for the template or select it for each post on poster generate stage. Poster width and height apply to all templates. Default values preferred.

Now you can add layers to the template.

On the Configuration tab you can select the poster image format, the download directory and the default poster — it will be used for all pages where there is no generated.

Sharing Image post editor screen
Generate Sharing Image poster for certain post.

On the post page, you can generate a poster. If Premium is available to you, then first you need to choose one of the available templates. Taxonomy posters are also availible for Premium users.

Load the background and enter text if necessary, then generate a poster and save the post. All is ready!

Sharing Image poster example in Twitter
Example of a poster in Twitter feed.

By default, posters are displayed in the page meta tags for all posts, if you want to manage this yourself, you can disable the meta display using sharing_image_hide_meta filter. To display the poster manually, use the sharing_image_poster() or sharing_image_poster_src() functions.

Automatic generation #

The latest version of the plugin supports automatic poster generation. First you need to select the desired template on the Configuration page of the plugin settings. Now, when saving a post, a poster will be automatically generated using presets (title, excerpt, thumbnail). The plugin will not overwrite the poster if it has already been generated for the post.

Premium license #

The Premium version of the plugin adds new features and helps the product develop. For this it is worth getting a Premium:

To get Premium access, enter your email address to which the license key will be sent. While the plugin is in beta testing, it is absolutely free. Each key can be used up to 5 times on different sites. If you need to change this limit, please contact us.

You can control your license key with a special tool.

We guarantee that your email will not be used for automatic mailings and will never be transferred to third parties without your explicit consent.

Enhancement #

The plugin has great extensibility. Most of the main methods return WordPress hooks, and you can change them as you wish. Write your own plugin or use your theme's functions.php file.

The entire list of actions and filters is collected on a separate page.

FAQ #

This section describes common problems when using the plugin and how to solve them. If you haven't found your question, it is best to ask it in the official repository on Github.

What to do if I do not see Sharing Image poster on Facebook or Twitter #

If you generated a poster but don't see it, it's likely that some other plugin or your theme is also displaying image tags.

Use snippets for popuplar plugins and themes to replace poster image.

Yoast SEO Plugin
                    
                        add_filter( 'sharing_image_hide_meta', '__return_true' );

                        function my_add_opengraph_images( $image_container ) {
                            $sharing_image = sharing_image_poster_src();
                            $updated_image = array(
                                'url'    => $sharing_image[0],
                                'width'  => $sharing_image[1],
                                'height' => $sharing_image[2],
                            );

                            $image_container->add_image( $updated_image );
                        };

                        add_action( 'wpseo_add_opengraph_images', 'my_add_opengraph_images' );
                    
                
The SEO Framework Plugin
                    
                        /**
                         * @link https://kb.theseoframework.com/kb/filter-reference-for-the-seo-framework/#image-related
                         */
                        add_filter( 'the_seo_framework_image_generation_params', 'my_image_generation_params', 10, 3);

                        function my_image_generation_params( $params = [], $args = null, $context = 'social' ) {
                            if ( 'social' !== $context ) {
                                return $params;
                            }

                            if ( null === $args ) {
                                if ( is_singular( 'post' ) ) {
                                    $params['cbs']['custom'] = 'my_sharing_image_poster';
                                }
                            } else {
                                if ( ! $args['taxonomy'] ) {
                                    $params['cbs']['custom'] = 'my_sharing_image_poster';
                                }
                            }

                            return $params;
                        }, 10, 3 );

                        function my_sharing_image_poster( $args = null, $size = 'full' ) {
                            $post_id = $args['id'] ?? the_seo_framework()->get_the_real_ID();

                            $sharing_image = sharing_image_poster_src( $post_id );

                            if ( $sharing_image ) {
                                yield [
                                    'url' => $sharing_image[0],
                                ];
                            } else {
                                yield [
                                    'url' => '',
                                    'id'  => 0,
                                ];
                            }
                        }
                    
                

Props to Mikhail Kobzarev