BLACK FRIDAY
Save 59% on PageForge Annual $191/year $485/year
Claim 59% Off →
WPR General Posts icon
Possibly abandoned Tested up to 4.9.33 #30 in popular posts

WPR General Posts

Gives you full control of a post listing widget.

Active installs10+10+ tier
Downloads · 30d66▲ +6.5% vs prev. 30d
Rating5/51 reviews
Health score30/100At risk
All-time downloads2.5KSince Dec 2014
Support resolved—No recent threads
RequiresWP 3.0.1PHP any
Downloads · 7d19▲ +26.7% week over week
Our verdict

Consider an alternative

WPR General Posts shows warning signs in 2026 — compare the alternatives below before installing. It runs on 10+ sites, is rated 5/5 and was last updated 8 years ago, and scores 30/100 on our health check.

  • Small user base (10+ active installs)
  • Very few reviews so far
  • No update in 8 years
  • Only tested up to WordPress 4.9 (latest is 7.1)

How does it stack up?

Side-by-side on installs, updates, ratings & support

Daily downloads

135Jul 2Aug 15Sep 29
Yesterday2
Daily average (1y)2
Peak day13May 16, 2026
Last 12 months614

Download spikes usually follow a new release — each site that auto-updates counts as a download.

Rankings

Where WPR General Posts stands today

WordPress.org search rankings

Live position in the plugin search, top 100
KeywordPositionCompeting pluginsCategory
popular posts >100 2,709 Best popular posts plugins →
posts-widget >100 10,000 Best posts-widget plugins →
recent post >100 2,866 Best recent post plugins →
recent posts >100 2,864 Best recent posts plugins →
recent posts widget >100 1,523 Best recent posts widget plugins →

Version adoption

Share of active sites per release.

  • 1.3100.0%

Rating breakdown

★★★★★★★★★★ 5 from 1 reviews

  • 5★100.0%
  • 4★0.00%
  • 3★0.00%
  • 2★0.00%
  • 1★0.00%

About WPR General Posts

From the official readme · v1.3.0

Description

With the general posts widget, you can place a list of posts into your widget areas based on any query parameters available in WP_QUERY. You can generate the latest posts, popular posts (given you have some method of tracking post hits), post types, filter by category or other taxonomy, filter by post meta, etc… If it’s available in WP_QUERY it’s available to you in the widget. If there are customizations that the interface does not allow for, there are a number of hooks that allow you to edit and control pretty much any part of the widget from adjusting the query to adjusting the output.

Please Note

There is no styling associated with this plugin. If you wish to style the output, assign a class and/or an ID to the widget and style appropriately in your style.css file.

Available Hooks

  • add_filter( 'widget_title', 'my_Func'); function my_Func($title){return $title;}
  • add_filter('wpr_adjust_genposts_query','my_Func', 10, 3); function my_Func( $queryargs, $widgetargs, $instance){return $queryargs}
    $widgetargs contains things like before_widget and after_widget. $instance contains the widget params you added in the UI.
  • add_filter('wpr_genposts_titlefilter', 'my_Func', 10, 6); function my_Func($fintitle, $before_title, $title, $after_title, $instance){return $fintitle}
  • add_filter(‘wpr_genposts_listloop’, ‘my_Func’, 10, 5); function my_Func($thisprint, $found_posts, $post, $count, $instance){return $thisprint;}
    This filter is within the loop that prints the <li>'s. $thisprint is the final string containing all the html including the <li> opening and closing tags. This filter will likely be the one used the most. By default, this outputs the featured image (if one exists) and the title. That’s all. In order to edit the output of the loop, you would want to edit your my_Func function to something else, utilizing the $post variable which contains all the post information (title, excerpt, content, permalink, ect…). This is up to you to customize however you wish. I’m sure the support area will fill up with questions in regards to outputting the lists in a certain fashion. Most people will not read or understand this that I wrote here and many examples will likely sprout up in the support section, so stay tuned and read through those (unless you are the very first to ask for support) before posting a support question. This plugin is free and support should not be expected. I will have a general support license available at a later time, for all WPR plugins, but for now, don’t expect, but be grateful if I do answer. I’m usually good about it though.
  • add_filter('wpr_genposts_addtoend', 'my_Func', 10, 2); function my_Func($readingon, $instance){return $readingon;}
    This filter allows you to customize the read more link that is shown after all the posts are displayed. The final text/html is the $readingon variable and the $instance provides you with all the widget instance params you supplied in the widget interface.
  • add_filter('wpr_genposts_list_print', 'my_Func', 10, 6); function my_Func($finalprint, $openprint, $toprint, $closeprint, $instance, $wpQuery){return $finalprint;}
    This supplies the final list with the container divs and everything else. $openprint contains the opening div with the id and class supplied by the widget interface. It also includes the openieng <ul> tag. $closeprint contains all the closure tags for the $openprint as well as the readmore link/text. $toprint contains everything in between (the result of the query contained in <li> tags). $wpQuery contains the WP_Query instance, which can be used for pagination or anything else where the data provided could be useful. To add pagination, something like this would work:
    function homeAddPages($finalprint, $openprint, $toprint, $closeprint, $instance, $postsQ){
    $big = 999999999;
    $cpage = get_query_var('paged')?get_query_var('paged'):0;
    if(!isset($cpage) || $cpage == "" || $cpage === 0){
    $cpage = get_query_var('page')?get_query_var('page'):1;
    }
    $addclose = paginate_links( array(
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, $cpage),
    'total' => $postsQ->max_num_pages
    ) );
    return $openprint . $toprint . $closeprint . '<div class="hpaginator">' . $addclose . '</div>';
    }
    add_filter('wpr_genposts_list_print', 'homeAddPages', 10, 6);
  • add_filter('wpr_adjust_genposts_beforewidget', 'my_Func', 10, 3); function my_Func($before_widget, $post_widgeid, $post_widgeclass){return $before_widget;}
    This allows you to modify the before widget string which contains the wrapper div with id and class. You have access to the ID and Class you defined within the widget in order to tell instances apart from each other.
    unction wpr_changeBeforeWidget($before_widget, $post_widgeid, $post_widgeclass){
    if($post_widgeid == 'theothers'){
    return str_replace('class="', 'class="theothersblock ', $before_widget);
    }
    if($post_widgeid == 'thefeatured'){
    return str_replace('class="', 'class="thefeaturedblock ', $before_widget);
    }
    return $before_widget;
    }
    add_filter('wpr_adjust_genposts_beforewidget', 'wpr_changeBeforeWidget', 10, 3);
  • add_filter('wpr_adjust_genposts_afterwidget', 'my_Func', 10, 3); function my_Func($after_widget, $post_widgeid, $post_widgeclass){return $after_widget;}
    This is identical to the wpr_adjust_genposts_beforewidget hook except this one allows you to modify the after widget string. These last two allow you direct control over each individual widget container. These before and after strings are set in the register_sidebar function when creating the sidebars, but they are generic for all widgets in that sidebar and WP does not offer any hooks to modify this directly. There is a workaround to add the action for register_sidebar, get the sidebar object and then adjust the $wp_registered_sidebars global, but in order to do this, you would have to know the order id number of the specific widget. Doing it that way can be problematic.

Instance Variables

  • $title = apply_filters( 'widget_title', $instance['title'] );
  • $post_amount = $instance['show']; This is the posts per page (total posts to show)
  • $post_orderby = $instance['orderby'];
  • $post_order = $instance['order'];
  • $post_catin = $instance['catin']; Category In
  • $post_catout = $instance['catout']; Category Exclude
  • $pagecount = $instance['pagecount']; Numer of Posts to show (not used, this is so you can define total posts to query and number to show per tabbed interface which is not implemented in the plugin, but available for hooking)
  • $post_taxis = $instance['taxis']; Taxonamy slug
  • $post_taxterm = $instance['taxterm']; Taxonomy term ids, comma separated list
  • $post_typed = $instance['ptipe'];
  • $post_metakey = $instance['metakey'];
  • $post_metavalue = $instance['metavalue'];
  • $post_comparison = $instance['metacompare']; Meta comparison operator
  • $post_widgeid = $instance['widgetidentifier']; Widget Container ID
  • $post_widgeclass = $instance['widgetclassifier']; Widget Container Class
  • $post_readmoretitle = $instance['readmoretitle'];
  • $post_readmorelink = $instance['readmorelink'];

Plugin site: WorldpressRevolution

Installation

  1. Upload wpr-general-posts folder to the /wp-content/plugins/ directory

  2. Activate the plugin through the ‘Plugins’ menu in WordPress

Changelog

1.0.0

  • Initial release.

Full changelog on WordPress.org →

Screenshots

Title, Id of the widget container, Class of the widget container, Choose post type, Posts per page, display per tab (not active with the plugin by default, you must hook the code in order to create this functionality yourself).
Title, Id of the widget container, Class of the widget container, Choose post type, Posts…
Choose order by.  Choose order.  You can choose either to include or exclude categories by id, one or the other. Query by taxonomy, choose a taxonomy.  Enter the SLUG of the taxonomy you chose.  Using the interface, you can only add one meta query.  You can provide the meta key and meta value.  In order to query by multiple meta key/values, you must hook into the appropriate area and extend the query parameters, adding your own meta query value.
Choose order by. Choose order. You can choose either to include or exclude categories by…
Choose the meta compare operator for the above meta query.  You may enter in the read more text here.   It will automatically be wrapped in the appropriate  tag based on the link provided.  The read more text and link here does not refer to the individual posts in the list.  It is a link that is added after the entire list that directs the user to the page that contains a full list of the parameters set for the widget.  If your widget is listing most recent posts, of post type "revolution", then your read more link should link to the post type archive page for "revolution".  If it is a list of categories, then your read more link should link to the specific category post listing page (category.php, category-slug.php, etc...). You may use hmtl here (eg: More Articles ). Finally, if you put a read more title, you should add the read more link.  If you use a full url (http(s)://...) then that will be placed in the href attribute.  If you begin with a /, omitting the http(s)://, then the home url path will be appended to the link provided.
Choose the meta compare operator for the above meta query. You may enter in the read more…

For developers

Is this your plugin? Show off the numbers.

Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.

Active installs badge Rating badge Health score badge

Best WPR General Posts alternatives

All popular posts plugins →
Alternatives
Rank Plugin Active installs Rating Updated Health
1 WP ULike – Like Buttons, Voting & Engagement Analytics WP ULike – Like Buttons, Voting & Engagement Analytics One-click like buttons your visitors actually use, plus a built-in analytics dashboard that… by Alimir 60K+ ★★★★★★★★★★ 4.8 (282) 1 month ago 85
2 WebberZone Top 10 — Popular Posts WebberZone Top 10 — Popular Posts Track post views and page views, and display popular posts and trending content on your… by Ajay 10K+ ★★★★★★★★★★ 4.6 (101) 2 weeks ago 89
3 Statify Widget Statify Widget Data privacy conform widget for list popular content (pages, posts, custom post types) –… by Finn Dohrn 4K+ ★★★★★★★★★★ 5 (5) 3 months ago 69
4 Light Views Counter – Fast, Scalable View Counter for High-Traffic Sites Light Views Counter Lightweight and fast post view counter with smart tracking, built for high-traffic sites… by ThemeRuby 3K+ ★★★★★★★★★★ 5 (1) 4 months ago 60
5 WP Views Counter WP Views Counter Fast, lightweight post views counter. Display views in admin, blocks or shortcodes — no… by etruel 2K+ ★★★★★★★★★★ 5 (5) 9 months ago 55
6 WP Most Popular WP Most Popular WP Most Popular is a simple plugin which tracks your most popular blog posts based on views… by MattGeri 2K+ ★★★★★★★★★★ 4.9 (11) 8 years ago 40
7 YAHMAN Add-ons YAHMAN Add-ons YAHMAN Add-ons has Multiple functions. by YAHMAN 1K+ ★★★★★★★★★★ 5 (2) 3 weeks ago 66
8 Random Posts and Pages Widget Random Posts and Pages Widget The main advantage of this widget is random movement of random links and every time they… by Ays Pro 1K+ ★★★★★★★★★★ 5 (4) 6 months ago 62
9 Popular Posts by Webline Popular Posts by Webline Popular Posts will display the posts according to the filters applied from widget settings. by WeblineIndia 1K+ ★★★★★★★★★★ 4 (9) 2 years ago 38
10 Most And Least Read Posts Widget Most And Least Read Posts Widget Provide two widgets, showing lists of the most and reast read posts. by whiletrue 900+ ★★★★★★★★★★ 5 (6) 2 months ago 78

FAQ

WPR General Posts: quick answers

Straight answers, pulled from live WordPress.org data.

Live data from WordPress.org · checked Sep 30, 2026

Is WPR General Posts free?

Yes. WPR General Posts is free to download and use from the official WordPress.org plugin directory.

Is WPR General Posts safe to use in 2026?

WPR General Posts shows warning signs in 2026 — compare the alternatives below before installing. It runs on 10+ sites, is rated 5/5 and was last updated 8 years ago, and scores 30/100 on our health check.

How many websites use WPR General Posts?

WPR General Posts is active on 10+ WordPress websites and has been downloaded 2,542 times since it launched in December 2014. It was downloaded 66 times in the last 30 days.

Does WPR General Posts work with WordPress 7.1?

WPR General Posts is officially tested up to WordPress 4.9.33, while the latest release is 7.1.2. It may still work, but try it on a staging site first.

When was WPR General Posts last updated?

The latest version, 1.3.0, was released on April 9, 2018 (8 years ago).

Who makes WPR General Posts?

WPR General Posts is developed and maintained by aryanduntley.

What are the best alternatives to WPR General Posts?

The most popular alternatives to WPR General Posts are WP ULike (60K+ installs), WebberZone Top 10 (10K+ installs) and Statify Widget (4K+ installs).

Powered by PageForge

Want thousands of pages that rank like these? Build them in an afternoon.

This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.

  • CSV, Google Sheets & API data sources
  • AI content, schema & internal links per page
  • Works with Elementor, Gutenberg, Yoast & Rank Math
  • Free on WordPress.org — no credit card
Sarah is here to help!
Hi there! 👋 Need help finding what you're looking for?
Sarah
Sarah
Online & Ready to Help
Hi there! 👋 Need help finding what you're looking for?

We'll use this to continue our conversation

Just now ✓ Verified

Join 500+ SEO Pros Scaling Their Strategy

Get exclusive programmatic SEO tactics, AI content workflows, and the latest PageForge updates delivered straight to your inbox. Stay ahead of the algorithm.

We care about your data in our privacy policy.