Plugin Directory

Changeset 3477469


Ignore:
Timestamp:
03/08/2026 03:39:51 PM (4 weeks ago)
Author:
s7ntech
Message:

Release v1.3.0-v1.5.0: tag ordering/limit/exclusion, nofollow/new-tab/post-count, outlined+hashtag templates, Gutenberg block, admin UX improvements, theme template override, examples/

Location:
tag-display/trunk
Files:
13 added
9 edited

Legend:

Unmodified
Added
Removed
  • tag-display/trunk/admin/css/tag-display-admin.css

    r3471739 r3477469  
    312312    box-shadow: 0 0 0 2px rgba(0, 115, 170, 0.25);
    313313}
     314
     315/* T30 — Outlined template preview */
     316.preview-outlined {
     317    display: flex;
     318    flex-wrap: wrap;
     319    gap: 8px;
     320}
     321
     322.preview-outlined .tag-outlined {
     323    display: inline-block;
     324    background-color: transparent;
     325    color: #0073aa;
     326    border: 2px solid #0073aa;
     327    padding: 4px 12px;
     328    border-radius: 20px;
     329    font-size: 13px;
     330    font-weight: 500;
     331    text-decoration: none;
     332    transition: background-color 0.2s ease, color 0.2s ease;
     333}
     334
     335.preview-outlined .tag-outlined:hover {
     336    background-color: #0073aa;
     337    color: #fff;
     338}
     339
     340/* T30 — Hashtag template preview */
     341.preview-hashtag {
     342    display: flex;
     343    flex-wrap: wrap;
     344    gap: 4px 14px;
     345}
     346
     347.preview-hashtag .tag-hashtag {
     348    display: inline-block;
     349    color: #0073aa;
     350    font-size: 14px;
     351    font-weight: 600;
     352    text-decoration: none;
     353    transition: color 0.2s ease;
     354}
     355
     356.preview-hashtag .tag-hashtag:hover {
     357    text-decoration: underline;
     358}
     359
     360.preview-hashtag .tag-hashtag .tag-hash {
     361    color: inherit;
     362    user-select: none;
     363}
  • tag-display/trunk/admin/js/tag-display-admin.js

    r3471739 r3477469  
    119119
    120120        // Handle hover effects for the template previews
    121         $('.template-previews a').hover(
    122             function() {
    123                 var $this = $(this);
    124                 var hoverBg = $this.data('hover-bg');
    125                 var hoverColor = $this.data('hover-color');
    126 
    127                 if (hoverBg) {
    128                     $this.css('background-color', hoverBg);
    129                 }
    130                 if (hoverColor) {
    131                     $this.css('color', hoverColor);
    132                 }
    133             },
    134             function() {
    135                 var $this = $(this);
    136                 var origBg = $this.data('bg');
    137                 var origColor = $this.data('color');
    138 
     121        $(document).on('mouseenter', '.template-previews a', function() {
     122            var $this = $(this);
     123            var hoverBg = $this.data('hover-bg');
     124            var hoverColor = $this.data('hover-color');
     125
     126            if (hoverBg) {
     127                $this.css('background-color', hoverBg);
     128            }
     129            if (hoverColor) {
     130                $this.css('color', hoverColor);
     131            }
     132            // Outlined: fill bg, set text to hover color
     133            if ($this.hasClass('tag-outlined') && hoverBg) {
     134                $this.css({ 'background-color': hoverBg, 'color': hoverColor || '#fff' });
     135            }
     136        });
     137
     138        $(document).on('mouseleave', '.template-previews a', function() {
     139            var $this = $(this);
     140            var origBg = $this.data('bg');
     141            var origColor = $this.data('color');
     142            var accent = $this.data('accent');
     143
     144            if ($this.hasClass('tag-outlined')) {
     145                // Restore: transparent bg, accent color
     146                $this.css({ 'background-color': 'transparent', 'color': accent || '#0073aa' });
     147            } else {
    139148                if (origBg) {
    140149                    $this.css('background-color', origBg);
     
    144153                }
    145154            }
    146         );
     155        });
    147156
    148157        // Initialize tag preview with current values
     
    256265                    .data('hover-color', hoverTextColor);
    257266            });
     267
     268            // Update outlined template preview (accent = hoverBgColor for border + hover bg)
     269            $('.preview-outlined .tag-outlined').each(function() {
     270                $(this)
     271                    .css({
     272                        'color': hoverBgColor,
     273                        'border-color': hoverBgColor
     274                    })
     275                    .data('accent', hoverBgColor)
     276                    .data('hover-bg', hoverBgColor)
     277                    .data('hover-color', hoverTextColor);
     278            });
     279
     280            // Update hashtag template preview (accent = hoverBgColor for link color)
     281            $('.preview-hashtag .tag-hashtag').each(function() {
     282                $(this)
     283                    .css('color', hoverBgColor)
     284                    .data('accent', hoverBgColor);
     285            });
    258286        }
    259287    });
  • tag-display/trunk/admin/partials/tag-display-admin-display.php

    r3471739 r3477469  
    256256                            </div>
    257257                        </div>
     258                        <div class="template-preview">
     259                        <h3><?php esc_html_e( 'Outlined Template', 'tag-display' ); ?></h3>
     260                        <p><?php esc_html_e( 'Transparent background with a colored border — minimal modern style.', 'tag-display' ); ?></p>
     261
     262                        <div class="preview-container">
     263                            <div class="preview-title">Tags:</div>
     264
     265                            <div class="preview-tags preview-outlined">
     266                                <?php foreach ( $sample_tags as $sample_tag ) : ?>
     267                                <a href="javascript:void(0)" class="tag-outlined" role="button"
     268                                   data-hover-bg="<?php echo esc_attr($hover_bg_color); ?>"
     269                                   data-hover-color="<?php echo esc_attr($hover_text_color); ?>"
     270                                   data-accent="<?php echo esc_attr($hover_bg_color); ?>">
     271                                    <?php echo esc_html( $sample_tag ); ?>
     272                                </a>
     273                                <?php endforeach; ?>
     274                            </div>
     275                        </div>
     276                    </div>
     277
     278                    <div class="template-preview">
     279                        <h3><?php esc_html_e( 'Hashtag Template', 'tag-display' ); ?></h3>
     280                        <p><?php esc_html_e( 'Social-style tags prefixed with # — no border, no background.', 'tag-display' ); ?></p>
     281
     282                        <div class="preview-container">
     283                            <div class="preview-title">Tags:</div>
     284
     285                            <div class="preview-tags preview-hashtag">
     286                                <?php foreach ( $sample_tags as $sample_tag ) : ?>
     287                                <a href="javascript:void(0)" class="tag-hashtag" role="button"
     288                                   data-accent="<?php echo esc_attr($hover_bg_color); ?>"
     289                                   data-color="<?php echo esc_attr($text_color); ?>">
     290                                    <span class="tag-hash" aria-hidden="true">#</span><?php echo esc_html( $sample_tag ); ?>
     291                                </a>
     292                                <?php endforeach; ?>
     293                            </div>
     294                        </div>
    258295                    </div>
    259296                </div>
    260             </div>
    261            
     297                </div>
     298            </div>
     299
    262300            <!-- Help Tab -->
    263301            <div id="help" class="tab-pane">
  • tag-display/trunk/includes/class-tag-display-admin.php

    r3471739 r3477469  
    505505     */
    506506    public function sanitize_template( $input ) {
    507         $valid_templates = array( 'default', 'minimal', 'cloud' );
     507        $valid_templates = array( 'default', 'minimal', 'cloud', 'outlined', 'hashtag' );
    508508
    509509        if ( in_array( $input, $valid_templates, true ) ) {
     
    609609        ?>
    610610        <select name="s7n_tag_display_template" id="s7n_tag_display_template">
    611             <option value="default" <?php selected( $template, 'default' ); ?>><?php esc_html_e( 'Default', 'tag-display' ); ?></option>
    612             <option value="minimal" <?php selected( $template, 'minimal' ); ?>><?php esc_html_e( 'Minimal', 'tag-display' ); ?></option>
    613             <option value="cloud" <?php selected( $template, 'cloud' ); ?>><?php esc_html_e( 'Tag Cloud', 'tag-display' ); ?></option>
     611            <option value="default"  <?php selected( $template, 'default' ); ?>><?php esc_html_e( 'Default', 'tag-display' ); ?></option>
     612            <option value="minimal"  <?php selected( $template, 'minimal' ); ?>><?php esc_html_e( 'Minimal', 'tag-display' ); ?></option>
     613            <option value="cloud"    <?php selected( $template, 'cloud' ); ?>><?php esc_html_e( 'Tag Cloud', 'tag-display' ); ?></option>
     614            <option value="outlined" <?php selected( $template, 'outlined' ); ?>><?php esc_html_e( 'Outlined', 'tag-display' ); ?></option>
     615            <option value="hashtag"  <?php selected( $template, 'hashtag' ); ?>><?php esc_html_e( 'Hashtag', 'tag-display' ); ?></option>
    614616        </select>
    615617        <p class="description"><?php esc_html_e( 'Select the default template to use for displaying tags. This can be overridden for specific content types.', 'tag-display' ); ?></p>
     
    701703        $cpt_template = get_option( 's7n_tag_display_cpt_template', 'default' );
    702704        $templates = array(
    703             'default' => __( 'Default', 'tag-display' ),
    704             'minimal' => __( 'Minimal', 'tag-display' ),
    705             'cloud' => __( 'Tag Cloud', 'tag-display' ),
     705            'default'  => __( 'Default', 'tag-display' ),
     706            'minimal'  => __( 'Minimal', 'tag-display' ),
     707            'cloud'    => __( 'Tag Cloud', 'tag-display' ),
     708            'outlined' => __( 'Outlined', 'tag-display' ),
     709            'hashtag'  => __( 'Hashtag', 'tag-display' ),
    706710        );
    707711        ?>
  • tag-display/trunk/includes/class-tag-display-public.php

    r3471739 r3477469  
    9292                background-color: {$hover_bg_color};
    9393                color: {$hover_text_color};
     94            }
     95            .tag-display-outlined a {
     96                color: {$hover_bg_color};
     97                border-color: {$hover_bg_color};
     98            }
     99            .tag-display-outlined a:hover {
     100                background-color: {$hover_bg_color};
     101                color: {$hover_text_color};
     102            }
     103            .tag-display-hashtag a {
     104                color: {$hover_bg_color};
     105            }
     106            .tag-display-hashtag a:hover {
     107                color: {$text_color};
    94108            }
    95109        ";
     
    293307
    294308        // Validate template
    295         $valid_templates = array( 'default', 'minimal', 'cloud' );
     309        $valid_templates = array( 'default', 'minimal', 'cloud', 'outlined', 'hashtag' );
    296310        if ( ! in_array( $template, $valid_templates, true ) ) {
    297311            $template = 'default';
     
    327341        ob_start();
    328342
    329         // Include the template file (all $display_* variables are available in template scope)
    330         include plugin_dir_path( dirname( __FILE__ ) ) . 'public/partials/tag-display-template-' . $template . '.php';
     343        // T38 — Theme template override: look for tag-display-template-{name}.php in child/parent theme
     344        $template_filename = 'tag-display-template-' . $template . '.php';
     345        $theme_template    = locate_template( $template_filename );
     346
     347        if ( $theme_template && validate_file( $theme_template ) === 0 ) {
     348            // Theme override found and path is safe — use it
     349            include $theme_template;
     350        } else {
     351            // Fall back to plugin template
     352            include plugin_dir_path( dirname( __FILE__ ) ) . 'public/partials/' . $template_filename;
     353        }
    331354
    332355        // Get the buffer contents and clean the buffer
  • tag-display/trunk/includes/class-tag-display.php

    r3304085 r3477469  
    6464        $this->define_admin_hooks();
    6565        $this->define_public_hooks();
     66        $this->define_block_hooks();
    6667    }
    6768
     
    8889         */
    8990        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-tag-display-public.php';
     91
     92        /**
     93         * The render callback function for the Gutenberg block.
     94         */
     95        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'block/render.php';
    9096    }
    9197
     
    160166
    161167    /**
     168     * Register hooks for the Gutenberg block.
     169     *
     170     * @since    1.4.0
     171     * @access   private
     172     */
     173    private function define_block_hooks() {
     174        add_action( 'init', array( $this, 'register_block' ) );
     175    }
     176
     177    /**
     178     * Register the Tag Display Gutenberg block.
     179     *
     180     * Uses render_callback so the block works on WordPress 5.6+ without
     181     * requiring the block.json "render" field (added in WP 6.1).
     182     *
     183     * @since    1.4.0
     184     */
     185    public function register_block() {
     186        if ( ! function_exists( 'register_block_type' ) ) {
     187            return;
     188        }
     189
     190        $block_dir = plugin_dir_path( dirname( __FILE__ ) ) . 'block/';
     191        $build_js  = $block_dir . 'build/index.js';
     192
     193        // Only register if the built JS exists (skips dev environments without npm build)
     194        if ( ! file_exists( $build_js ) ) {
     195            return;
     196        }
     197
     198        register_block_type(
     199            $block_dir,
     200            array(
     201                'render_callback' => 's7n_tag_display_render_block',
     202            )
     203        );
     204    }
     205
     206    /**
    162207     * Run the plugin.
    163208     *
  • tag-display/trunk/public/css/tag-display-public.css

    r3471739 r3477469  
    125125}
    126126
     127/* Outlined template styles */
     128.tag-display-outlined {
     129    display: flex;
     130    flex-wrap: wrap;
     131    gap: 8px;
     132}
     133
     134.tag-display-outlined a {
     135    display: inline-block;
     136    background-color: transparent;
     137    color: #0073aa;
     138    border: 2px solid #0073aa;
     139    padding: 5px 14px;
     140    border-radius: 20px;
     141    text-decoration: none;
     142    font-size: 14px;
     143    font-weight: 500;
     144    transition: all 0.2s ease;
     145}
     146
     147.tag-display-outlined a:hover {
     148    background-color: #0073aa;
     149    color: #fff;
     150}
     151
     152.tag-display-outlined a:active {
     153    transform: translateY(1px);
     154    opacity: 0.9;
     155}
     156
     157.tag-display-outlined a:visited {
     158    opacity: 0.85;
     159}
     160
     161/* Hashtag template styles */
     162.tag-display-hashtag {
     163    display: flex;
     164    flex-wrap: wrap;
     165    gap: 4px 14px;
     166}
     167
     168.tag-display-hashtag a {
     169    display: inline-block;
     170    color: #0073aa;
     171    text-decoration: none;
     172    font-size: 15px;
     173    font-weight: 600;
     174    transition: color 0.2s ease;
     175}
     176
     177.tag-display-hashtag a:hover {
     178    text-decoration: underline;
     179}
     180
     181.tag-display-hashtag a:visited {
     182    opacity: 0.85;
     183}
     184
     185.tag-display-hashtag .tag-hash {
     186    color: inherit;
     187    user-select: none;
     188}
     189
    127190/* Responsive adjustments */
    128191@media screen and (max-width: 768px) {
     
    148211    .tag-display-default a,
    149212    .tag-display-minimal a,
    150     .tag-display-cloud a {
     213    .tag-display-cloud a,
     214    .tag-display-outlined a,
     215    .tag-display-hashtag a {
    151216        transition: none;
    152217    }
     
    157222
    158223    .tag-display-default a:active,
    159     .tag-display-cloud a:active {
     224    .tag-display-cloud a:active,
     225    .tag-display-outlined a:active {
    160226        transform: none;
    161227    }
  • tag-display/trunk/readme.txt

    r3471739 r3477469  
    55Tested up to: 6.8
    66Requires PHP: 7.2 
    7 Stable tag: 1.3.0
     7Stable tag: 1.5.0
    88License: GPLv2 or later 
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html 
     
    1313== Description == 
    1414
    15 Tag Display allows you to present your WordPress tags using different templates, improving user engagement and navigation. 
    16 Choose between three customizable templates: 
     15Tag Display allows you to present your WordPress tags using different templates, improving user engagement and navigation.
     16Choose between five customizable templates:
    1717
    18 1. **Default Template:** Clean and modern tag buttons with subtle hover effects. 
    19 2. **Minimal Template:** Simple text links separated by commas for a clean look. 
    20 3. **Tag Cloud Template:** Tags displayed in a cloud format with varied sizes and rotations. 
     181. **Default Template:** Clean and modern tag buttons with subtle hover effects.
     192. **Minimal Template:** Simple text links separated by commas for a clean look.
     203. **Tag Cloud Template:** Tags displayed in a cloud format with sizes proportional to post count.
     214. **Outlined Template:** Transparent background with a colored border — modern pill-style buttons.
     225. **Hashtag Template:** Social-style tags prefixed with `#` — Instagram/Twitter look.
    2123
    22 **Features:** 
    23 - Multiple tag templates for flexible styling. 
    24 - Easy shortcode integration: `[s7n_tag_display]` or `[s7n_tag_display template="minimal"]`. 
    25 - Admin settings page for customization. 
    26 - Automatic or manual tag display. 
    27 - Support for custom taxonomies alongside WordPress tags. 
    28 - Optimized for performance and easy to configure. 
     24**Features:**
     25- Five tag templates for flexible styling.
     26- Native Gutenberg block for the block editor (no shortcode needed).
     27- Easy shortcode integration: `[s7n_tag_display]` or `[s7n_tag_display template="minimal"]`.
     28- Admin settings page with live template preview and color picker.
     29- Automatic or manual tag display (before or after content).
     30- Tag ordering: alphabetical, by post count, or random.
     31- Limit the number of tags shown and exclude specific tags by slug.
     32- Optionally display the post count next to each tag (e.g. *WordPress (12)*).
     33- Support for custom taxonomies alongside WordPress tags.
     34- SEO options: rel="nofollow" and target="_blank" for tag links.
     35- Theme template override: place a custom template file in your theme folder to fully control the output.
     36- Optimized for performance and easy to configure.
    2937
    30 == Installation == 
     38== Installation ==
    3139
    32 1. Upload the `tag-display` folder to the `/wp-content/plugins/` directory. 
    33 2. Activate the plugin through the 'Plugins' menu in WordPress. 
    34 3. Go to **Settings -> Tag Display** to customize your preferences. 
    35 4. Use the shortcode `[s7n_tag_display]` in your posts or pages. 
     401. Upload the `tag-display` folder to the `/wp-content/plugins/` directory.
     412. Activate the plugin through the 'Plugins' menu in WordPress.
     423. Go to **Settings → Tag Display** to configure templates, colors, tag ordering, and auto-display options.
     434. Display tags in one of three ways:
     44   * **Shortcode** — add `[s7n_tag_display]` to any post or page.
     45   * **Gutenberg block** — search for "Tag Display" in the block inserter.
     46   * **Automatic** — enable auto-display in **Settings → Content Types** to add tags to every post automatically.
    3647
    37 == Frequently Asked Questions == 
     48== Frequently Asked Questions ==
    3849
    39 = How do I use the plugin? = 
    40 Simply activate the plugin, customize your settings, and use the shortcode `[s7n_tag_display]` wherever you want the tags to appear. 
     50= How do I use the plugin? =
     51Activate the plugin, go to **Settings → Tag Display** to configure your preferences, then add tags to your posts in one of three ways:
    4152
    42 = Can I change the template style? = 
    43 Yes, you can select between Default, Minimal, and Tag Cloud templates directly from the settings page or via shortcode: 
    44 `[s7n_tag_display template="minimal"]` 
     531. **Shortcode** — paste `[s7n_tag_display]` anywhere in a post or page.
     542. **Gutenberg block** — search for "Tag Display" in the block inserter and add it to your content.
     553. **Automatic** — enable auto-display in Settings → Content Types and tags will appear automatically in every post.
    4556
    46 = Is it compatible with the latest WordPress version? = 
    47 Yes, Tag Display is regularly updated to ensure compatibility. 
     57= Can I change the template style? =
     58Yes. Choose between Default, Minimal, Cloud, Outlined, and Hashtag templates:
     59
     60* From the settings page: **Settings → Tag Display → General Settings → Default Template**.
     61* Via shortcode: `[s7n_tag_display template="outlined"]`
     62* Via Gutenberg block: select the block and use the **Template** option in the sidebar.
     63
     64= How do I use the Gutenberg block? =
     65In the block editor, click the **+** button and search for "Tag Display". Add the block to your post. Use the sidebar panel (**Display Settings**, **Link Options**, **Title**) to override the template, ordering, tag limit, and other options for that specific block — independently of the global settings.
     66
     67= What shortcode attributes are available? =
     68All attributes are optional and override the global settings for that specific instance:
     69
     70`[s7n_tag_display template="hashtag" order="count_desc" max="8" exclude="news,draft" nofollow="true" new_tab="true" show_count="true" title="Related topics:"]`
     71
     72* `template` — `default`, `minimal`, `cloud`, `outlined`, `hashtag`
     73* `order` — `alpha_asc`, `alpha_desc`, `count_desc`, `count_asc`, `random` (default: global setting)
     74* `max` — maximum number of tags to show, e.g. `max="5"` (0 = all)
     75* `exclude` — comma-separated slugs to hide, e.g. `exclude="news,uncategorized"`
     76* `nofollow` — `true` to add `rel="nofollow"` to tag links
     77* `new_tab` — `true` to open links in a new tab
     78* `show_count` — `true` to show the post count next to each tag, e.g. *WordPress (12)*
     79* `title` — custom label above the tags, e.g. `title="Topics:"` (empty string hides the title)
     80
     81= How do I limit or sort the tags? =
     82Go to **Settings → Tag Display → General Settings**. You can set:
     83
     84* **Tag Order** — alphabetical (A→Z / Z→A), by post count (most/least used), or random.
     85* **Max Tags** — show only the first N tags (0 = show all).
     86* **Exclude Tags** — comma-separated slugs of tags to always hide.
     87
     88These settings can also be overridden per-instance via shortcode or Gutenberg block.
     89
     90= How do I hide specific tags? =
     91In **Settings → Tag Display → General Settings → Exclude Tags**, enter the slugs (not names) of the tags you want to hide, separated by commas. Example: `news, uncategorized, draft`.
     92
     93To find a tag's slug, go to **Posts → Tags** in the WordPress admin.
     94
     95= Can I display tags automatically without a shortcode? =
     96Yes. Go to **Settings → Tag Display → Content Types**, enable auto-display for posts, pages, or custom post types, and choose whether tags appear **before** or **after** the content.
     97
     98= How do I add rel="nofollow" or open links in a new tab? =
     99Go to **Settings → Tag Display → General Settings** and enable the **rel="nofollow"** or **Open in new tab** checkboxes. These can also be set per-instance via shortcode (`nofollow="true"`, `new_tab="true"`) or Gutenberg block sidebar.
     100
     101= Can I create a fully custom template from my theme? =
     102Yes. Place a file named `tag-display-template-{name}.php` in your theme (or child theme) root folder, where `{name}` is the template you want to override: `default`, `minimal`, `cloud`, `outlined`, or `hashtag`.
     103
     104Example: to override the default template, create `wp-content/themes/your-theme/tag-display-template-default.php`.
     105
     106The plugin detects and uses it automatically. A fully commented example file is included in the plugin's `examples/` folder.
     107
     108The following variables are available in your custom template:
     109
     110* `$tags` — array of WP_Term objects (`->name`, `->slug`, `->count`)
     111* `$display_title` — label text above the tags
     112* `$display_nofollow` — boolean, whether to add `rel="nofollow"`
     113* `$display_new_tab` — boolean, whether to open links in a new tab
     114* `$display_show_count` — boolean, whether to show post count next to each tag
     115
     116= Is it compatible with the latest WordPress version? =
     117Yes, Tag Display is regularly updated to ensure compatibility.
    48118
    49119== Screenshots == 
     
    56126
    57127== Changelog ==
     128
     129= 1.5.0 =
     130* Added theme template override: place `tag-display-template-{name}.php` in your theme folder to fully customize the output.
     131* Added `examples/tag-display-template-custom.php` with a fully commented template starter.
     132* Override is applied automatically for both shortcode and Gutenberg block rendering.
     133
     134= 1.4.0 =
     135* Added native Gutenberg block (dynamic block, server-side rendered) with InspectorControls for all display options.
     136* Added Outlined template: transparent background with colored border pill-style buttons.
     137* Added Hashtag template: social-style tags prefixed with # (Instagram/Twitter look).
     138* Admin: improved admin preview cards for Outlined and Hashtag templates with live color updates.
     139* Admin: template select now switches to Template Preview tab and highlights the matching card in real-time.
    58140
    59141= 1.3.0 =
  • tag-display/trunk/tag-display.php

    r3471739 r3477469  
    1111 * Plugin URI:        https://ismailnasry.it/portfolio-archive/tag-display/
    1212 * Description:       Display clickable tags in pages/articles with customizable templates and display options.
    13  * Version:           1.3.0
     13 * Version:           1.5.0
    1414 * Author:            Ismail Nasry
    1515 * Author URI:        https://ismailnasry.it
     
    2828 * Currently plugin version.
    2929 */
    30 define( 'S7N_TAG_DISPLAY_VERSION', '1.3.0' );
     30define( 'S7N_TAG_DISPLAY_VERSION', '1.5.0' );
    3131
    3232/**
Note: See TracChangeset for help on using the changeset viewer.