Plugin Directory

Changeset 2619486

Timestamp:
10/25/2021 02:50:05 PM (3 years ago)
Author:
idenovasi
Message:

Fix the widget couldn't load on new Widget Block page.

Location:
recent-posts-widget-extended
Files:
25 added
21 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • recent-posts-widget-extended/trunk/assets/css/rpwe-admin.css

    r1033155 r2619486  
    1 .widgets-php .rpwe-columns-3 {
    2     overflow: hidden;
    3     float: left;
    4     width: 31%;
    5     margin-right: 3.5%;
     1.rpwe-options small {
     2  font-size: 0.7em;
     3  color: #999;
    64}
    75
    8 .widgets-php .rpwe-columns-3 select.widefat {
    9     width: 98.5%;
     6.rpwe-info {
     7  font-size: 0.8em;
     8  line-height: 1.4;
    109}
    1110
    12 .widgets-php .rpwe-column-last {
    13     float: right;
    14     margin-right: 0;
    15 }
    16 
    17 .widgets-php .rpwe-columns-3 label {
    18     font-size: 11px;
    19 }
    20 
    21 .widgets-php .rpwe-columns-3 p small {
    22     color: #777;
    23     font-style: italic;
    24 }
    25 
    26 .small-input {
    27     width: 30%;
     11.rpwe-options .small-input {
     12  width: 32% !important;
     13  display: inline-block !important;
    2814}
    2915
    3016.rpwe-block {
    31     display: block;
     17display: block;
    3218}
    33 
    34 .rpwe-multiple-check-form {
    35     margin: 1em 0;
    36 }
    37 
    38 .rpwe-multiple-check-form ul {
    39     border: 1px solid #eee;
    40     padding: 10px;
    41     max-height: 110px;
    42     overflow: auto;
    43     margin-top: 0;
    44 }
    45 
    46 .rpwe-multiple-check-form ul li:last-child {
    47     margin-bottom: 0;
    48 }
  • recent-posts-widget-extended/trunk/classes/widget.php

    r2476478 r2619486  
    44 * The custom recent posts widget.
    55 * This widget gives total control over the output to the user.
    6  *
    7  * @package    Recent_Posts_Widget_Extended
    8  * @since      0.1
    9  * @author     Satrya
    10  * @copyright  Copyright (c) 2014, Satrya
    11  * @license    http://www.gnu.org/licenses/gpl-2.0.html
    126 */
    137class Recent_Posts_Widget_Extended extends WP_Widget {
  • recent-posts-widget-extended/trunk/includes/form.php

    r2476478 r2619486  
    33/**
    44 * Widget forms.
    5  *
    6  * @package    Recent_Posts_Widget_Extended
    7  * @since      0.9.4
    8  * @author     Satrya
    9  * @copyright  Copyright (c) 2014, Satrya
    10  * @license    http://www.gnu.org/licenses/gpl-2.0.html
    115 */
    126?>
    137
    14 <div class="rpwe-columns-3">
     8<div class="rpwe-">
    159
    1610    <p>
     
    5650    </p>
    5751
    58 </div>
    59 
    60 <div class="rpwe-columns-3">
    6152
    6253    <p>
     
    7869            <?php _e('Post Types', 'recent-posts-widget-extended'); ?>
    7970        </label>
    80         <ul>
    81             <?php foreach (get_post_types(array('public' => true), 'objects') as $type) : ?>
    82                 <li>
    83                     <input type="checkbox" value="<?php echo esc_attr($type->name); ?>" id="<?php echo $this->get_field_id('post_type') . '-' . $type->name; ?>" name="<?php echo $this->get_field_name('post_type'); ?>[]" <?php checked(is_array($instance['post_type']) && in_array($type->name, $instance['post_type'])); ?> />
    84                     <label for="<?php echo $this->get_field_id('post_type') . '-' . $type->name; ?>">
    85                         <?php echo esc_html($type->labels->name); ?>
    86                     </label>
    87                 </li>
    88             <?php endforeach; ?>
    89         </ul>
     71        <?php foreach (get_post_types(array('public' => true), 'objects') as $type) : ?>
     72            <p>
     73                <input type="checkbox" value="<?php echo esc_attr($type->name); ?>" id="<?php echo $this->get_field_id('post_type') . '-' . $type->name; ?>" name="<?php echo $this->get_field_name('post_type'); ?>[]" <?php checked(is_array($instance['post_type']) && in_array($type->name, $instance['post_type'])); ?> />
     74                <label for="<?php echo $this->get_field_id('post_type') . '-' . $type->name; ?>">
     75                    <?php echo esc_html($type->labels->name); ?>
     76                </label>
     77            </p>
     78        <?php endforeach; ?>
    9079    </div>
    9180
     
    9584        </label>
    9685        <select class="widefat" id="<?php echo $this->get_field_id('post_status'); ?>" name="<?php echo $this->get_field_name('post_status'); ?>" style="width:100%;">
    97             <?php foreach (get_available_post_statuses() as $status_value => $status_label) { ?>
     86            <?php foreach () as $status_value => $status_label) { ?>
    9887                <option value="<?php echo esc_attr($status_label); ?>" <?php selected($instance['post_status'], $status_label); ?>><?php echo esc_html(ucfirst($status_label)); ?></option>
    9988            <?php } ?>
     
    131120            <?php _e('Limit to Category', 'recent-posts-widget-extended'); ?>
    132121        </label>
    133         <ul>
    134             <?php foreach (rpwe_cats_list() as $category) : ?>
    135                 <li>
    136                     <input type="checkbox" value="<?php echo (int) $category->term_id; ?>" id="<?php echo $this->get_field_id('cat') . '-' . (int) $category->term_id; ?>" name="<?php echo $this->get_field_name('cat'); ?>[]" <?php checked(is_array($instance['cat']) && in_array($category->term_id, $instance['cat'])); ?> />
    137                     <label for="<?php echo $this->get_field_id('cat') . '-' . (int) $category->term_id; ?>">
    138                         <?php echo esc_html($category->name); ?>
    139                     </label>
    140                 </li>
    141             <?php endforeach; ?>
    142         </ul>
     122
     123        <?php foreach (rpwe_cats_list() as $category) : ?>
     124            <p>
     125                <input type="checkbox" value="<?php echo (int) $category->term_id; ?>" id="<?php echo $this->get_field_id('cat') . '-' . (int) $category->term_id; ?>" name="<?php echo $this->get_field_name('cat'); ?>[]" <?php checked(is_array($instance['cat']) && in_array($category->term_id, $instance['cat'])); ?> />
     126                <label for="<?php echo $this->get_field_id('cat') . '-' . (int) $category->term_id; ?>">
     127                    <?php echo esc_html($category->name); ?>
     128                </label>
     129            </p>
     130        <?php endforeach; ?>
    143131    </div>
    144132
     
    147135            <?php _e('Limit to Tag', 'recent-posts-widget-extended'); ?>
    148136        </label>
    149         <ul>
    150             <?php foreach (rpwe_tags_list() as $post_tag) : ?>
    151                 <li>
    152                     <input type="checkbox" value="<?php echo (int) $post_tag->term_id; ?>" id="<?php echo $this->get_field_id('tag') . '-' . (int) $post_tag->term_id; ?>" name="<?php echo $this->get_field_name('tag'); ?>[]" <?php checked(is_array($instance['tag']) && in_array($post_tag->term_id, $instance['tag'])); ?> />
    153                     <label for="<?php echo $this->get_field_id('tag') . '-' . (int) $post_tag->term_id; ?>">
    154                         <?php echo esc_html($post_tag->name); ?>
    155                     </label>
    156                 </li>
    157             <?php endforeach; ?>
    158         </ul>
     137        <?php foreach (rpwe_tags_list() as $post_tag) : ?>
     138            <p>
     139                <input type="checkbox" value="<?php echo (int) $post_tag->term_id; ?>" id="<?php echo $this->get_field_id('tag') . '-' . (int) $post_tag->term_id; ?>" name="<?php echo $this->get_field_name('tag'); ?>[]" <?php checked(is_array($instance['tag']) && in_array($post_tag->term_id, $instance['tag'])); ?> />
     140                <label for="<?php echo $this->get_field_id('tag') . '-' . (int) $post_tag->term_id; ?>">
     141                    <?php echo esc_html($post_tag->name); ?>
     142                </label>
     143            </p>
     144        <?php endforeach; ?>
    159145    </div>
    160146
     
    164150        </label>
    165151        <input type="text" class="widefat" id="<?php echo $this->get_field_id('taxonomy'); ?>" name="<?php echo $this->get_field_name('taxonomy'); ?>" value="<?php echo esc_attr($instance['taxonomy']); ?>" />
    166         <small><?php _e('Ex: category=1,2,4&amp;post_tag=6,12', 'rpwe'); ?><br />
     152        <small><?php _e('Ex: category=1,2,4&amp;post_tag=6,12>
    167153            <?php _e('Available: ', 'rpwe');
    168154            echo implode(', ', get_taxonomies(array('public' => true))); ?></small>
    169155    </p>
    170 
    171 </div>
    172 
    173 <div class="rpwe-columns-3 rpwe-column-last">
    174156
    175157    <p>
     
    201183                <?php _e('Thumbnail (height,width,align)', 'recent-posts-widget-extended'); ?>
    202184            </label>
     185
    203186            <input class="small-input" id="<?php echo $this->get_field_id('thumb_height'); ?>" name="<?php echo $this->get_field_name('thumb_height'); ?>" type="number" step="1" min="0" value="<?php echo (int)($instance['thumb_height']); ?>" />
     187
    204188            <input class="small-input" id="<?php echo $this->get_field_id('thumb_width'); ?>" name="<?php echo $this->get_field_name('thumb_width'); ?>" type="number" step="1" min="0" value="<?php echo (int)($instance['thumb_width']); ?>" />
     189
    205190            <select class="small-input" id="<?php echo $this->get_field_id('thumb_align'); ?>" name="<?php echo $this->get_field_name('thumb_align'); ?>">
    206191                <option value="rpwe-alignleft" <?php selected($instance['thumb_align'], 'rpwe-alignleft'); ?>><?php _e('Left', 'recent-posts-widget-extended') ?></option>
     
    277262
    278263
     264
     265
     266
     267
     268
     269
     270
     271
     272
     273
     274
     275
     276
     277
     278
    279279</div>
    280 
    281 <div class="clear"></div>
    282 
    283 <p>
    284     <input id="<?php echo $this->get_field_id('styles_default'); ?>" name="<?php echo $this->get_field_name('styles_default'); ?>" type="checkbox" <?php checked($instance['styles_default']); ?> />
    285     <label for="<?php echo $this->get_field_id('styles_default'); ?>">
    286         <?php _e('Use Default Styles', 'recent-posts-widget-extended'); ?>
    287     </label>
    288 </p>
    289 
    290 <p>
    291     <label for="<?php echo $this->get_field_id('css'); ?>">
    292         <?php _e('Custom CSS', 'recent-posts-widget-extended'); ?>
    293     </label>
    294     <textarea class="widefat" id="<?php echo $this->get_field_id('css'); ?>" name="<?php echo $this->get_field_name('css'); ?>" style="height:180px;"><?php echo $instance['css']; ?></textarea>
    295     <small><?php _e('If you turn off the default styles, you can use these css code to customize the recent posts style.', 'recent-posts-widget-extended'); ?></small>
    296 </p>
  • recent-posts-widget-extended/trunk/includes/functions.php

    r2476478 r2619486  
    33/**
    44 * Various functions used by the plugin.
    5  *
    6  * @package    Recent_Posts_Widget_Extended
    7  * @since      0.9.4
    8  * @author     Satrya
    9  * @copyright  Copyright (c) 2014, Satrya
    10  * @license    http://www.gnu.org/licenses/gpl-2.0.html
    115 */
    126
     
    1812function rpwe_get_default_args() {
    1913
    20     $css_defaults = ".rpwe-block ul{\nlist-style: none !important;\nmargin-left: 0 !important;\npadding-left: 0 !important;\n}\n\n.rpwe-block li{\nborder-bottom: 1px solid #eee;\nmargin-bottom: 10px;\npadding-bottom: 10px;\nlist-style-type: none;\n}\n\n.rpwe-block a{\ndisplay: inline !important;\ntext-decoration: none;\n}\n\n.rpwe-block h3{\nbackground: none !important;\nclear: none;\nmargin-bottom: 0 !important;\nmargin-top: 0 !important;\nfont-weight: 400;\nfont-size: 12px !important;\nline-height: 1.5em;\n}\n\n.rpwe-thumb{\nborder: 1px solid #eee !important;\nbox-shadow: none !important;\nmargin: 2px 10px 2px 0;\npadding: 3px !important;\n}\n\n.rpwe-summary{\nfont-size: 12px;\n}\n\n.rpwe-time{\ncolor: #bbb;\nfont-size: 11px;\n}\n\n.rpwe-comment{\ncolor: #bbb;\nfont-size: 11px;\npadding-left: 5px;\n}\n\n.rpwe-alignleft{\ndisplay: inline;\nfloat: left;\n}\n\n.rpwe-alignright{\ndisplay: inline;\nfloat: right;\n}\n\n.rpwe-aligncenter{\ndisplay: block;\nmargin-left: auto;\nmargin-right: auto;\n}\n\n.rpwe-clearfix:before,\n.rpwe-clearfix:after{\ncontent: \"\";\ndisplay: table !important;\n}\n\n.rpwe-clearfix:after{\nclear: both;\n}\n\n.rpwe-clearfix{\nzoom: 1;\n}\n";
    21 
    22     $defaults = array(
    23         'title'             => esc_attr__('Recent Posts', 'rpwe'),
    24         'title_url'         => '',
    25 
    26         'limit'            => 5,
    27         'offset'           => 0,
    28         'order'            => 'DESC',
    29         'orderby'          => 'date',
    30         'cat'              => array(),
    31         'tag'              => array(),
    32         'taxonomy'         => '',
    33         'post_type'        => array('post'),
    34         'post_status'      => 'publish',
    35         'ignore_sticky'    => 1,
    36         'exclude_current'  => 1,
    37 
    38         'excerpt'          => false,
    39         'length'           => 10,
    40         'thumb'            => true,
    41         'thumb_height'     => 45,
    42         'thumb_width'      => 45,
    43         'thumb_default'    => 'http://placehold.it/45x45/f0f0f0/ccc',
    44         'thumb_align'      => 'rpwe-alignleft',
    45         'date'             => true,
    46         'date_relative'    => false,
    47         'date_modified'    => false,
    48         'readmore'         => false,
    49         'readmore_text'    => __('Read More &raquo;', 'recent-posts-widget-extended'),
    50         'comment_count'    => false,
    51 
    52         'styles_default'   => true,
    53         'css'              => $css_defaults,
    54         'cssID'            => '',
    55         'css_class'        => '',
    56         'before'           => '',
    57         'after'            => ''
    58     );
    59 
    60     // Allow plugins/themes developer to filter the default arguments.
    61     return apply_filters('rpwe_default_args', $defaults);
     14$css_defaults = ".rpwe-block ul{\nlist-style: none !important;\nmargin-left: 0 !important;\npadding-left: 0 !important;\n}\n\n.rpwe-block li{\nborder-bottom: 1px solid #eee;\nmargin-bottom: 10px;\npadding-bottom: 10px;\nlist-style-type: none;\n}\n\n.rpwe-block a{\ndisplay: inline !important;\ntext-decoration: none;\n}\n\n.rpwe-block h3{\nbackground: none !important;\nclear: none;\nmargin-bottom: 0 !important;\nmargin-top: 0 !important;\nfont-weight: 400;\nfont-size: 12px !important;\nline-height: 1.5em;\n}\n\n.rpwe-thumb{\nborder: 1px solid #eee !important;\nbox-shadow: none !important;\nmargin: 2px 10px 2px 0;\npadding: 3px !important;\n}\n\n.rpwe-summary{\nfont-size: 12px;\n}\n\n.rpwe-time{\ncolor: #bbb;\nfont-size: 11px;\n}\n\n.rpwe-comment{\ncolor: #bbb;\nfont-size: 11px;\npadding-left: 5px;\n}\n\n.rpwe-alignleft{\ndisplay: inline;\nfloat: left;\n}\n\n.rpwe-alignright{\ndisplay: inline;\nfloat: right;\n}\n\n.rpwe-aligncenter{\ndisplay: block;\nmargin-left: auto;\nmargin-right: auto;\n}\n\n.rpwe-clearfix:before,\n.rpwe-clearfix:after{\ncontent: \"\";\ndisplay: table !important;\n}\n\n.rpwe-clearfix:after{\nclear: both;\n}\n\n.rpwe-clearfix{\nzoom: 1;\n}\n";
     15
     16$defaults = array(
     17'title'             => esc_attr__('Recent Posts', 'rpwe'),
     18'title_url'         => '',
     19
     20'limit'            => 5,
     21'offset'           => 0,
     22'order'            => 'DESC',
     23'orderby'          => 'date',
     24'cat'              => array(),
     25'tag'              => array(),
     26'taxonomy'         => '',
     27'post_type'        => array('post'),
     28'post_status'      => 'publish',
     29'ignore_sticky'    => 1,
     30'exclude_current'  => 1,
     31
     32'excerpt'          => false,
     33'length'           => 10,
     34'thumb'            => true,
     35'thumb_height'     => 45,
     36'thumb_width'      => 45,
     37'thumb_default'    => 'http://placehold.it/45x45/f0f0f0/ccc',
     38'thumb_align'      => 'rpwe-alignleft',
     39'date'             => true,
     40'date_relative'    => false,
     41'date_modified'    => false,
     42'readmore'         => false,
     43'readmore_text'    => __('Read More &raquo;', 'recent-posts-widget-extended'),
     44'comment_count'    => false,
     45
     46'styles_default'   => true,
     47'css'              => $css_defaults,
     48'cssID'            => '',
     49'css_class'        => '',
     50'before'           => '',
     51'after'            => ''
     52);
     53
     54// Allow plugins/themes developer to filter the default arguments.
     55return apply_filters('rpwe_default_args', $defaults);
    6256}
    6357
     
    6862 */
    6963function rpwe_recent_posts($args = array()) {
    70     echo rpwe_get_recent_posts($args);
     64echo rpwe_get_recent_posts($args);
    7165}
    7266
     
    8074function rpwe_get_recent_posts($args = array()) {
    8175
    82     // Set up a default, empty variable.
    83     $html = '';
    84 
    85     // Merge the input arguments and the defaults.
    86     $args = wp_parse_args($args, rpwe_get_default_args());
    87 
    88     // Extract the array to allow easy use of variables.
    89     extract($args);
    90 
    91     // Allow devs to hook in stuff before the loop.
    92     do_action('rpwe_before_loop');
    93 
    94     // Display the default style of the plugin.
    95     if ($args['styles_default'] === true) {
    96         rpwe_custom_styles();
    97     }
    98 
    99     // If the default style is disabled then use the custom css if it's not empty.
    100     if ($args['styles_default'] === false && !empty($args['css'])) {
    101         echo '<style>' . $args['css'] . '</style>';
    102     }
    103 
    104     // Get the posts query.
    105     $posts = rpwe_get_posts($args);
    106 
    107     if ($posts->have_posts()) :
    108 
    109         // Recent posts wrapper
    110         $html = '<div ' . (!empty($args['cssID']) ? 'id="' . sanitize_html_class($args['cssID']) . '"' : '') . ' class="rpwe-block ' . (!empty($args['css_class']) ? '' . sanitize_html_class($args['css_class']) . '' : '') . '">';
    111 
    112         $html .= '<ul class="rpwe-ul">';
    113 
    114         while ($posts->have_posts()) : $posts->the_post();
    115 
    116             // Thumbnails
    117             $thumb_id = get_post_thumbnail_id(); // Get the featured image id.
    118             $img_url  = wp_get_attachment_url($thumb_id); // Get img URL.
    119 
    120             // Display the image url and crop using the resizer.
    121             $image    = rpwe_resize($img_url, $args['thumb_width'], $args['thumb_height'], true);
    122 
    123             // Start recent posts markup.
    124             $html .= '<li class="rpwe-li rpwe-clearfix">';
    125 
    126             if ($args['thumb']) :
    127 
    128                 // Check if post has post thumbnail.
    129                 if (has_post_thumbnail()) :
    130                     $html .= '<a class="rpwe-img" href="' . esc_url(get_permalink()) . '"  rel="bookmark">';
    131                     if ($image) :
    132                         $html .= '<img class="' . esc_attr($args['thumb_align']) . ' rpwe-thumb" src="' . esc_url($image) . '" alt="' . esc_attr(get_the_title()) . '">';
    133                     else :
    134                         $html .= get_the_post_thumbnail(
    135                             get_the_ID(),
    136                             array($args['thumb_width'], $args['thumb_height']),
    137                             array(
    138                                 'class' => $args['thumb_align'] . ' rpwe-thumb the-post-thumbnail',
    139                                 'alt'   => esc_attr(get_the_title())
    140                             )
    141                         );
    142                     endif;
    143                     $html .= '</a>';
    144��
    145                 // If no post thumbnail found, check if Get The Image plugin exist and display the image.
    146                 elseif (function_exists('get_the_image')) :
    147                     $html .= get_the_image(array(
    148                         'height'        => (int) $args['thumb_height'],
    149                         'width'         => (int) $args['thumb_width'],
    150                         'image_class'   => esc_attr($args['thumb_align']) . ' rpwe-thumb get-the-image',
    151                         'image_scan'    => true,
    152                         'echo'          => false,
    153                         'default_image' => esc_url($args['thumb_default'])
    154                     ));
    155 
    156                 // Display default image.
    157                 elseif (!empty($args['thumb_default'])) :
    158                     $html .= sprintf(
    159                         '<a class="rpwe-img" href="%1$s" rel="bookmark"><img class="%2$s rpwe-thumb rpwe-default-thumb" src="%3$s" alt="%4$s" width="%5$s" height="%6$s"></a>',
    160                         esc_url(get_permalink()),
    161                         esc_attr($args['thumb_align']),
    162                         esc_url($args['thumb_default']),
    163                         esc_attr(get_the_title()),
    164                         (int) $args['thumb_width'],
    165                         (int) $args['thumb_height']
    166                     );
    167 
    168                 endif;
    169 
    170             endif;
    171 
    172             $html .= '<h3 class="rpwe-title"><a href="' . esc_url(get_permalink()) . '" title="' . sprintf(esc_attr__('Permalink to %s', 'recent-posts-widget-extended'), the_title_attribute('echo=0')) . '" rel="bookmark">' . esc_attr(get_the_title()) . '</a></h3>';
    173 
    174             if ($args['date']) :
    175                 $date = get_the_date();
    176                 if ($args['date_relative']) :
    177                     $date = sprintf(__('%s ago', 'recent-posts-widget-extended'), human_time_diff(get_the_date('U'), current_time('timestamp')));
    178                 endif;
    179                 $html .= '<time class="rpwe-time published" datetime="' . esc_html(get_the_date('c')) . '">' . esc_html($date) . '</time>';
    180             elseif ($args['date_modified']) : // if both date functions are provided, we use date to be backwards compatible
    181                 $date = get_the_modified_date();
    182                 if ($args['date_relative']) :
    183                     $date = sprintf(__('%s ago', 'recent-posts-widget-extended'), human_time_diff(get_the_modified_date('U'), current_time('timestamp')));
    184                 endif;
    185                 $html .= '<time class="rpwe-time modfied" datetime="' . esc_html(get_the_modified_date('c')) . '">' . esc_html($date) . '</time>';
    186             endif;
    187 
    188             if ($args['comment_count']) :
    189                 if (get_comments_number() == 0) {
    190                     $comments = __('No Comments', 'recent-posts-widget-extended');
    191                 } elseif (get_comments_number() > 1) {
    192                     $comments = sprintf(__('%s Comments', 'recent-posts-widget-extended'), get_comments_number());
    193                 } else {
    194                     $comments = __('1 Comment', 'recent-posts-widget-extended');
    195                 }
    196                 $html .= '<a class="rpwe-comment comment-count" href="' . get_comments_link() . '">' . $comments . '</a>';
    197             endif;
    198 
    199             if ($args['excerpt']) :
    200                 $html .= '<div class="rpwe-summary">';
    201                 $html .= wp_trim_words(apply_filters('rpwe_excerpt', get_the_excerpt()), $args['length'], ' &hellip;');
    202                 if ($args['readmore']) :
    203                     $html .= '<a href="' . esc_url(get_permalink()) . '" class="more-link">' . $args['readmore_text'] . '</a>';
    204                 endif;
    205                 $html .= '</div>';
    206             endif;
    207 
    208             $html .= '</li>';
    209 
    210         endwhile;
    211 
    212         $html .= '</ul>';
    213 
    214         $html .= '</div><!-- Generated by http://wordpress.org/plugins/recent-posts-widget-extended/ -->';
    215 
    216     endif;
    217 
    218     // Restore original Post Data.
    219     wp_reset_postdata();
    220 
    221     // Allow devs to hook in stuff after the loop.
    222     do_action('rpwe_after_loop');
    223 
    224     // Return the  posts markup.
    225     return wp_kses_post($args['before']) . apply_filters('rpwe_markup', $html, $args) . wp_kses_post($args['after']);
     76// Set up a default, empty variable.
     77$html = '';
     78
     79// Merge the input arguments and the defaults.
     80$args = wp_parse_args($args, rpwe_get_default_args());
     81
     82// Extract the array to allow easy use of variables.
     83extract($args);
     84
     85// Allow devs to hook in stuff before the loop.
     86do_action('rpwe_before_loop');
     87
     88// Display the default style of the plugin.
     89if ($args['styles_default'] === true) {
     90rpwe_custom_styles();
     91}
     92
     93// If the default style is disabled then use the custom css if it's not empty.
     94if ($args['styles_default'] === false && !empty($args['css'])) {
     95echo '<style>' . $args['css'] . '</style>';
     96}
     97
     98// Get the posts query.
     99$posts = rpwe_get_posts($args);
     100
     101if ($posts->have_posts()) :
     102
     103// Recent posts wrapper
     104$html = '<div ' . (!empty($args['cssID']) ? 'id="' . sanitize_html_class($args['cssID']) . '"' : '') . ' class="rpwe-block ' . (!empty($args['css_class']) ? '' . sanitize_html_class($args['css_class']) . '' : '') . '">';
     105
     106$html .= '<ul class="rpwe-ul">';
     107
     108while ($posts->have_posts()) : $posts->the_post();
     109
     110// Thumbnails
     111$thumb_id = get_post_thumbnail_id(); // Get the featured image id.
     112$img_url  = wp_get_attachment_url($thumb_id); // Get img URL.
     113
     114// Display the image url and crop using the resizer.
     115$image    = rpwe_resize($img_url, $args['thumb_width'], $args['thumb_height'], true);
     116
     117// Start recent posts markup.
     118$html .= '<li class="rpwe-li rpwe-clearfix">';
     119
     120if ($args['thumb']) :
     121
     122// Check if post has post thumbnail.
     123if (has_post_thumbnail()) :
     124">';
     125if ($image) :
     126) . '">';
     127else :
     128$html .= get_the_post_thumbnail(
     129get_the_ID(),
     130array($args['thumb_width'], $args['thumb_height']),
     131array(
     132'class' => $args['thumb_align'] . ' rpwe-thumb the-post-thumbnail',
     133'alt'   => esc_attr(get_the_title())
     134)
     135);
     136endif;
     137$html .= '</a>';
     138
     139// If no post thumbnail found, check if Get The Image plugin exist and display the image.
     140elseif (function_exists('get_the_image')) :
     141$html .= get_the_image(array(
     142'height'        => (int) $args['thumb_height'],
     143'width'         => (int) $args['thumb_width'],
     144'image_class'   => esc_attr($args['thumb_align']) . ' rpwe-thumb get-the-image',
     145'image_scan'    => true,
     146'echo'          => false,
     147'default_image' => esc_url($args['thumb_default'])
     148));
     149
     150// Display default image.
     151elseif (!empty($args['thumb_default'])) :
     152$html .= sprintf(
     153'<a class="rpwe-img" href="%1$s" rel="bookmark"><img class="%2$s rpwe-thumb rpwe-default-thumb" src="%3$s" alt="%4$s" width="%5$s" height="%6$s"></a>',
     154esc_url(get_permalink()),
     155esc_attr($args['thumb_align']),
     156esc_url($args['thumb_default']),
     157esc_attr(get_the_title()),
     158(int) $args['thumb_width'],
     159(int) $args['thumb_height']
     160);
     161
     162endif;
     163
     164endif;
     165
     166$html .= '<h3 class="rpwe-title"><a href="' . esc_url(get_permalink()) . '" title="' . sprintf(esc_attr__('Permalink to %s', 'recent-posts-widget-extended'), the_title_attribute('echo=0')) . '" rel="bookmark">' . esc_attr(get_the_title()) . '</a></h3>';
     167
     168if ($args['date']) :
     169$date = get_the_date();
     170if ($args['date_relative']) :
     171$date = sprintf(__('%s ago', 'recent-posts-widget-extended'), human_time_diff(get_the_date('U'), current_time('timestamp')));
     172endif;
     173$html .= '<time class="rpwe-time published" datetime="' . esc_html(get_the_date('c')) . '">' . esc_html($date) . '</time>';
     174elseif ($args['date_modified']) : // if both date functions are provided, we use date to be backwards compatible
     175$date = get_the_modified_date();
     176if ($args['date_relative']) :
     177$date = sprintf(__('%s ago', 'recent-posts-widget-extended'), human_time_diff(get_the_modified_date('U'), current_time('timestamp')));
     178endif;
     179$html .= '<time class="rpwe-time modfied" datetime="' . esc_html(get_the_modified_date('c')) . '">' . esc_html($date) . '</time>';
     180endif;
     181
     182if ($args['comment_count']) :
     183if (get_comments_number() == 0) {
     184$comments = __('No Comments', 'recent-posts-widget-extended');
     185} elseif (get_comments_number() > 1) {
     186$comments = sprintf(__('%s Comments', 'recent-posts-widget-extended'), get_comments_number());
     187} else {
     188$comments = __('1 Comment', 'recent-posts-widget-extended');
     189}
     190$html .= '<a class="rpwe-comment comment-count" href="' . get_comments_link() . '">' . $comments . '</a>';
     191endif;
     192
     193if ($args['excerpt']) :
     194$html .= '<div class="rpwe-summary">';
     195$html .= wp_trim_words(apply_filters('rpwe_excerpt', get_the_excerpt()), $args['length'], ' &hellip;');
     196if ($args['readmore']) :
     197$html .= '<a href="' . esc_url(get_permalink()) . '" class="more-link">' . $args['readmore_text'] . '</a>';
     198endif;
     199$html .= '</div>';
     200endif;
     201
     202$html .= '</li>';
     203
     204endwhile;
     205
     206$html .= '</ul>';
     207
     208$html .= '</div><!-- Generated by http://wordpress.org/plugins/recent-posts-widget-extended/ -->';
     209
     210endif;
     211
     212// Restore original Post Data.
     213wp_reset_postdata();
     214
     215// Allow devs to hook in stuff after the loop.
     216do_action('rpwe_after_loop');
     217
     218// Return the  posts markup.
     219return wp_kses_post($args['before']) . apply_filters('rpwe_markup', $html, $args) . wp_kses_post($args['after']);
    226220}
    227221
     
    235229function rpwe_get_posts($args = array()) {
    236230
    237     // Query arguments.
    238     $query = array(
    239         'offset'              => $args['offset'],
    240         'posts_per_page'      => $args['limit'],
    241         'orderby'             => $args['orderby'],
    242         'order'               => $args['order'],
    243         'post_type'           => $args['post_type'],
    244         'post_status'         => $args['post_status'],
    245         'ignore_sticky_posts' => $args['ignore_sticky'],
    246     );
    247 
    248     // Exclude current post
    249     if ($args['exclude_current']) {
    250         $query['post__not_in'] = array(get_the_ID());
    251     }
    252 
    253     // Limit posts based on category.
    254     if (!empty($args['cat'])) {
    255         $query['category__in'] = $args['cat'];
    256     }
    257 
    258     // Limit posts based on post tag.
    259     if (!empty($args['tag'])) {
    260         $query['tag__in'] = $args['tag'];
    261     }
    262 
    263     /**
    264     * Taxonomy query.
    265     * Prop Miniloop plugin by Kailey Lampert.
    266     */
    267     if (!empty($args['taxonomy'])) {
    268 
    269         parse_str($args['taxonomy'], $taxes);
    270 
    271         $operator  = 'IN';
    272         $tax_query = array();
    273         foreach (array_keys($taxes) as $k => $slug) {
    274             $ids = explode(',', $taxes[$slug]);
    275             if (count($ids) == 1 && $ids['0'] < 0) {
    276                 // If there is only one id given, and it's negative
    277                 // Let's treat it as 'posts not in'
    278                 $ids['0'] = $ids['0'] * -1;
    279                 $operator = 'NOT IN';
    280             }
    281             $tax_query[] = array(
    282                 'taxonomy' => $slug,
    283                 'field'    => 'id',
    284                 'terms'    => $ids,
    285                 'operator' => $operator
    286             );
    287         }
    288 
    289         $query['tax_query'] = $tax_query;
    290     }
    291 
    292     // Allow plugins/themes developer to filter the default query.
    293     $query = apply_filters('rpwe_default_query_arguments', $query);
    294 
    295     // Perform the query.
    296     $posts = new WP_Query($query);
    297 
    298     return $posts;
     231// Query arguments.
     232$query = array(
     233'offset'              => $args['offset'],
     234'posts_per_page'      => $args['limit'],
     235'orderby'             => $args['orderby'],
     236'order'               => $args['order'],
     237'post_type'           => $args['post_type'],
     238'post_status'         => $args['post_status'],
     239'ignore_sticky_posts' => $args['ignore_sticky'],
     240);
     241
     242// Exclude current post
     243if ($args['exclude_current']) {
     244$query['post__not_in'] = array(get_the_ID());
     245}
     246
     247// Limit posts based on category.
     248if (!empty($args['cat'])) {
     249$query['category__in'] = $args['cat'];
     250}
     251
     252// Limit posts based on post tag.
     253if (!empty($args['tag'])) {
     254$query['tag__in'] = $args['tag'];
     255}
     256
     257/**
     258 * Taxonomy query.
     259 * Prop Miniloop plugin by Kailey Lampert.
     260 */
     261if (!empty($args['taxonomy'])) {
     262
     263parse_str($args['taxonomy'], $taxes);
     264
     265$operator  = 'IN';
     266$tax_query = array();
     267foreach (array_keys($taxes) as $k => $slug) {
     268$ids = explode(',', $taxes[$slug]);
     269if (count($ids) == 1 && $ids['0'] < 0) {
     270// If there is only one id given, and it's negative
     271// Let's treat it as 'posts not in'
     272$ids['0'] = $ids['0'] * -1;
     273$operator = 'NOT IN';
     274}
     275$tax_query[] = array(
     276'taxonomy' => $slug,
     277'field'    => 'id',
     278'terms'    => $ids,
     279'operator' => $operator
     280);
     281}
     282
     283$query['tax_query'] = $tax_query;
     284}
     285
     286// Allow plugins/themes developer to filter the default query.
     287$query = apply_filters('rpwe_default_query_arguments', $query);
     288
     289// Perform the query.
     290$posts = new WP_Query($query);
     291
     292return $posts;
    299293}
    300294
     
    306300function rpwe_custom_styles() {
    307301?>
    308     <style>
    309         .rpwe-block ul {
    310             list-style: none !important;
    311             margin-left: 0 !important;
    312             padding-left: 0 !important;
    313         }
    314 
    315         .rpwe-block li {
    316             border-bottom: 1px solid #eee;
    317             margin-bottom: 10px;
    318             padding-bottom: 10px;
    319             list-style-type: none;
    320         }
    321 
    322         .rpwe-block a {
    323             display: inline !important;
    324             text-decoration: none;
    325         }
    326 
    327         .rpwe-block h3 {
    328             background: none !important;
    329             clear: none;
    330             margin-bottom: 0 !important;
    331             margin-top: 0 !important;
    332             font-weight: 400;
    333             font-size: 12px !important;
    334             line-height: 1.5em;
    335         }
    336 
    337         .rpwe-thumb {
    338             border: 1px solid #EEE !important;
    339             box-shadow: none !important;
    340             margin: 2px 10px 2px 0;
    341             padding: 3px !important;
    342         }
    343 
    344         .rpwe-summary {
    345             font-size: 12px;
    346         }
    347 
    348         .rpwe-time {
    349             color: #bbb;
    350             font-size: 11px;
    351         }
    352 
    353         .rpwe-comment {
    354             color: #bbb;
    355             font-size: 11px;
    356             padding-left: 5px;
    357         }
    358 
    359         .rpwe-alignleft {
    360             display: inline;
    361             float: left;
    362         }
    363 
    364         .rpwe-alignright {
    365             display: inline;
    366             float: right;
    367         }
    368 
    369         .rpwe-aligncenter {
    370             display: block;
    371             margin-left: auto;
    372             margin-right: auto;
    373         }
    374 
    375         .rpwe-clearfix:before,
    376         .rpwe-clearfix:after {
    377             content: "";
    378             display: table !important;
    379         }
    380 
    381         .rpwe-clearfix:after {
    382             clear: both;
    383         }
    384 
    385         .rpwe-clearfix {
    386             zoom: 1;
    387         }
    388     </style>
     302<style>
     303.rpwe-block ul {
     304list-style: none !important;
     305margin-left: 0 !important;
     306padding-left: 0 !important;
     307}
     308
     309.rpwe-block li {
     310border-bottom: 1px solid #eee;
     311margin-bottom: 10px;
     312padding-bottom: 10px;
     313list-style-type: none;
     314}
     315
     316.rpwe-block a {
     317display: inline !important;
     318text-decoration: none;
     319}
     320
     321.rpwe-block h3 {
     322background: none !important;
     323clear: none;
     324margin-bottom: 0 !important;
     325margin-top: 0 !important;
     326font-weight: 400;
     327font-size: 12px !important;
     328line-height: 1.5em;
     329}
     330
     331.rpwe-thumb {
     332border: 1px solid #EEE !important;
     333box-shadow: none !important;
     334margin: 2px 10px 2px 0;
     335padding: 3px !important;
     336}
     337
     338.rpwe-summary {
     339font-size: 12px;
     340}
     341
     342.rpwe-time {
     343color: #bbb;
     344font-size: 11px;
     345}
     346
     347.rpwe-comment {
     348color: #bbb;
     349font-size: 11px;
     350padding-left: 5px;
     351}
     352
     353.rpwe-alignleft {
     354display: inline;
     355float: left;
     356}
     357
     358.rpwe-alignright {
     359display: inline;
     360float: right;
     361}
     362
     363.rpwe-aligncenter {
     364display: block;
     365margin-left: auto;
     366margin-right: auto;
     367}
     368
     369.rpwe-clearfix:before,
     370.rpwe-clearfix:after {
     371content: "";
     372display: table !important;
     373}
     374
     375.rpwe-clearfix:after {
     376clear: both;
     377}
     378
     379.rpwe-clearfix {
     380zoom: 1;
     381}
     382</style>
    389383<?php
    390384}
  • recent-posts-widget-extended/trunk/includes/helpers.php

    r2476478 r2619486  
    33/**
    44 * Function helper
    5  *
    6  * @package    Recent_Posts_Widget_Extended
    7  * @since      0.9.9.1
    8  * @author     Satrya
    9  * @copyright  Copyright (c) 2015, Satrya
    10  * @license    http://www.gnu.org/licenses/gpl-2.0.html
    115 */
    126
  • recent-posts-widget-extended/trunk/includes/shortcode.php

    r2476478 r2619486  
    33/**
    44 * Shortcode helper
    5  *
    6  * @package    Recent_Posts_Widget_Extended
    7  * @since      0.9.4
    8  * @author     Satrya
    9  * @copyright  Copyright (c) 2014, Satrya
    10  * @license    http://www.gnu.org/licenses/gpl-2.0.html
    115 */
    126
  • recent-posts-widget-extended/trunk/languages/recent-posts-widget-extended.pot

    r2476478 r2619486  
    1414"Plural-Forms: nplurals=2; plural=(n != 1);\n"
    1515
    16 #: classes/widget.php:25
     16#: classes/widget.php:
    1717msgid "An advanced widget that gives you total control over the output of your site’s most recent Posts."
    1818msgstr ""
    1919
    20 #: classes/widget.php:37
     20#: classes/widget.php:3
    2121msgid "Recent Posts Extended"
    2222msgstr ""
    2323
    24 #: includes/form.php:18
     24#: includes/form.php:1
    2525msgid "Title"
    2626msgstr ""
    2727
    28 #: includes/form.php:25
     28#: includes/form.php:
    2929msgid "Title URL"
    3030msgstr ""
    3131
    32 #: includes/form.php:32
     32#: includes/form.php:
    3333msgid "CSS ID"
    3434msgstr ""
    3535
    36 #: includes/form.php:39
     36#: includes/form.php:3
    3737msgid "CSS Class"
    3838msgstr ""
    3939
    40 #: includes/form.php:46
     40#: includes/form.php:4
    4141msgid "HTML or text before the recent posts"
    4242msgstr ""
    4343
    44 #: includes/form.php:53
     44#: includes/form.php:
    4545msgid "HTML or text after the recent posts"
    4646msgstr ""
    4747
    48 #: includes/form.php:65
     48#: includes/form.php:
    4949msgid "Ignore sticky posts"
    5050msgstr ""
    5151
    52 #: includes/form.php:72
     52#: includes/form.php:
    5353msgid "Exclude current post"
    5454msgstr ""
    5555
    56 #: includes/form.php:78
     56#: includes/form.php:
    5757msgid "Post Types"
    5858msgstr ""
    5959
    60 #: includes/form.php:94
     60#: includes/form.php:
    6161msgid "Post Status"
    6262msgstr ""
    6363
    64 #: includes/form.php:105
     64#: includes/form.php:
    6565msgid "Order"
    6666msgstr ""
    6767
    68 #: includes/form.php:115
     68#: includes/form.php:1
    6969msgid "Orderby"
    7070msgstr ""
    7171
    72 #: includes/form.php:131
     72#: includes/form.php:1
    7373msgid "Limit to Category"
    7474msgstr ""
    7575
    76 #: includes/form.php:147
     76#: includes/form.php:1
    7777msgid "Limit to Tag"
    7878msgstr ""
    7979
    80 #: includes/form.php:163
     80#: includes/form.php:1
    8181msgid "Limit to Taxonomy"
    8282msgstr ""
    8383
    84 #: includes/form.php:177
     84#: includes/form.php:1
    8585msgid "Number of posts to show"
    8686msgstr ""
    8787
    88 #: includes/form.php:184
     88#: includes/form.php:1
    8989msgid "Offset"
    9090msgstr ""
    9191
    92 #: includes/form.php:187
     92#: includes/form.php:1
    9393msgid "The number of posts to skip"
    9494msgstr ""
    9595
    96 #: includes/form.php:195
     96#: includes/form.php:1
    9797msgid "Display Thumbnail"
    9898msgstr ""
    9999
    100 #: includes/form.php:201
     100#: includes/form.php:
    101101msgid "Thumbnail (height,width,align)"
    102102msgstr ""
    103103
    104 #: includes/form.php:206
     104#: includes/form.php:
    105105msgid "Left"
    106106msgstr ""
    107107
    108 #: includes/form.php:207
     108#: includes/form.php:
    109109msgid "Right"
    110110msgstr ""
    111111
    112 #: includes/form.php:208
     112#: includes/form.php:
    113113msgid "Center"
    114114msgstr ""
    115115
    116 #: includes/form.php:214
     116#: includes/form.php:
    117117msgid "Default Thumbnail"
    118118msgstr ""
    119119
    120 #: includes/form.php:217
     120#: includes/form.php:2
    121121msgid "Leave it blank to disable."
    122122msgstr ""
    123123
    124 #: includes/form.php:225
     124#: includes/form.php:2
    125125msgid "Display Excerpt"
    126126msgstr ""
    127127
    128 #: includes/form.php:231
     128#: includes/form.php:2
    129129msgid "Excerpt Length"
    130130msgstr ""
    131131
    132 #: includes/form.php:239
     132#: includes/form.php:2
    133133msgid "Display Readmore"
    134134msgstr ""
    135135
    136 #: includes/form.php:245
     136#: includes/form.php:2
    137137msgid "Readmore Text"
    138138msgstr ""
    139139
    140 #: includes/form.php:253
     140#: includes/form.php:2
    141141msgid "Display Comment Count"
    142142msgstr ""
    143143
    144 #: includes/form.php:260
     144#: includes/form.php:2
    145145msgid "Display Date"
    146146msgstr ""
    147147
    148 #: includes/form.php:267
     148#: includes/form.php:2
    149149msgid "Display Modification Date"
    150150msgstr ""
    151151
    152 #: includes/form.php:274
     152#: includes/form.php:2
    153153msgid "Use Relative Date. eg: 5 days ago"
    154154msgstr ""
    155155
    156 #: includes/form.php:286
     156#: includes/form.php:2
    157157msgid "Use Default Styles"
    158158msgstr ""
    159159
    160 #: includes/form.php:292
     160#: includes/form.php:2
    161161msgid "Custom CSS"
    162162msgstr ""
    163163
    164 #: includes/form.php:295
     164#: includes/form.php:2
    165165msgid "If you turn off the default styles, you can use these css code to customize the recent posts style."
    166166msgstr ""
    167167
    168 #: includes/functions.php:49
     168#: includes/functions.php:4
    169169msgid "Read More &raquo;"
    170170msgstr ""
    171171
    172 #: includes/functions.php:172
     172#: includes/functions.php:1
    173173msgid "Permalink to %s"
    174174msgstr ""
    175175
    176 #: includes/functions.php:183, includes/functions.php:177
     176#: includes/functions.php:1
    177177msgid "%s ago"
    178178msgstr ""
    179179
    180 #: includes/functions.php:194
     180#: includes/functions.php:1
    181181msgid "1 Comment"
    182182msgstr ""
    183183
    184 #: includes/functions.php:192
     184#: includes/functions.php:1
    185185msgid "%s Comments"
    186186msgstr ""
    187187
    188 #: includes/functions.php:190
     188#: includes/functions.php:1
    189189msgid "No Comments"
    190190msgstr ""
  • recent-posts-widget-extended/trunk/readme.txt

    r2476478 r2619486  
    33Donate link: https://paypal.me/satrya
    44Tags: recent posts, random posts, popular posts, thumbnails, widget, widgets, sidebar, excerpt, category, post tag, taxonomy, post type, post status, shortcode, multiple widgets
    5 Requires at least: 4.8
    6 Tested up to: 5.6
     5Requires at least: .8
     6Tested up to: 5.
    77Requires PHP: 7.2
    8 Stable tag: 1.0.0
     8Stable tag: 1..0
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    4242
    4343* [Translate to your language](https://translate.wordpress.org/projects/wp-plugins/recent-posts-widget-extended/).
    44 * Contribute on [Github](https://github.com/satrya/recent-posts-widget-extended).
     44* Contribute on [Github](https://github.com//recent-posts-widget-extended).
    4545* [Donate](https://paypal.me/satrya).
    4646
     
    231231== Changelog ==
    232232
    233 = 1.0.0 - Feb 17, 2021 =
    234 - This is just a maintenance update after a couple years with no update. Thank you for still using this plugin 🥳
    235 
    236 
    237 
     233**1.1.0**
     234
     235Release Date: Oct 25, 2021
     236
     237This release comes with several fixes and enhancements to support the new Widget Block in WordPress 5.8.
     238
     239**Enhancements:**
     240
     241- Adds `height` and `width` attribute to the image thumbnail.
     242
     243**Bugfixes:**
     244
     245- Fixes a bug the widget couldn't load on new Widgets Block page.
     246
     247**Warning:**
     248
     249Current thumbnail resize system will be deprecated and replaced with WordPress built-in thumbnail resize function.
     250
     251
     252
  • recent-posts-widget-extended/trunk/rpwe.php

    r2476478 r2619486  
    22
    33/**
    4  * Plugin Name:  Recent Posts Widget Extended
    5  * Plugin URI:   https://idenovasi.com/projects/recent-posts-widget-extended/
    6  * Description:  Enables advanced widget that gives you total control over the output of your site’s most recent Posts.
    7  * Version:      1.0.0
    8  * Author:       Satrya
    9  * Author URI:   https://idenovasi.com/
    10  * Author Email: satrya@idenovasi.com
    11  * Text Domain:  recent-posts-widget-extended
    12  * Domain Path:  /languages
    13  *
    14  * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
    15  * General Public License as published by the Free Software Foundation; either version 2 of the License,
    16  * or (at your option) any later version.
    17  *
    18  * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
    19  * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    20  *
    21  * You should have received a copy of the GNU General Public License along with this program; if not, write
    22  * to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
    23  *
    24  * @package    Recent_Posts_Widget_Extended
    25  * @since      0.1
    26  * @author     Satrya
    27  * @copyright  Copyright (c) 2014, Satrya
    28  * @license    http://www.gnu.org/licenses/gpl-2.0.html
     4 * Plugin Name:       Recent Posts Widget Extended
     5 * Plugin URI:        https://idenovasi.com/projects/recent-posts-widget-extended/
     6 * Description:       Enables advanced widget that gives you total control over the output of your site’s most recent Posts.
     7 * Version:           1.1.0
     8 * Requires at least: 5.8
     9 * Requires PHP:      7.2
     10 * Author:            Idenovasi
     11 * Author URI:        https://idenovasi.com/
     12 * License:           GPL v2 or later
     13 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
     14 * Text Domain:       recent-posts-widget-extended
     15 * Domain Path:       /languages
    2916 */
    3017
Note: See TracChangeset for help on using the changeset viewer.