Plugin info

Total downloads: 4,254,327
Active installs: 80,000
Total reviews: 253
Average rating: 4.7
Support threads opened: 4
Support threads resolved: 1 (25%)
Available in: 1 language(s)
Contributors: 3
Last updated: 11/5/2025 (56 days ago)
Added to WordPress: 8/16/2008 (17 years old)
Minimum WordPress version: 3.3
Tested up to WordPress version: 6.8.3
Minimum PHP version: 5.6

Maintenance & Compatibility

Maintenance score

Actively maintained • Last updated 56 days ago • Support resolved 25% • 253 reviews

65/100

Is List category posts abandoned?

Likely maintained (last update 56 days ago).

Compatibility

Requires WordPress: 3.3
Tested up to: 6.8.3
Requires PHP: 5.6

Similar & Alternatives

Explore plugins with similar tags, and compare key metrics like downloads, ratings, updates, support, and WP/PHP compatibility.

List categories
Rating 4.5/5 (15 reviews)Active installs 6,000
Custom Category Listing Page
Rating 5.0/5 (1 reviews)Active installs 50
Syno Author Bio
Rating 0.0/5 (0 reviews)Active installs 0
Custom Post Type UI
Rating 4.6/5 (271 reviews)Active installs 1,000,000
Table of Contents Plus
Rating 4.4/5 (159 reviews)Active installs 200,000
White Label CMS
Rating 4.7/5 (112 reviews)Active installs 200,000

Description

List Category Posts allows you to list posts by category in a post or page using the [catlist] shortcode. When you’re editing a page or post, directly insert the shortcode in your text and the posts will be listed there. The basic usage would be something like this:

[catlist id=1]

[catlist name="news"]

The shortcode accepts a category name or id, the order in which you want the posts to display, and the number of posts to display. You can also display the post author, date, excerpt, custom field values, even the content! A lot of parameters have been added to customize what to display and how to show it. Check the full documentation to learn about the different ways to use it.

The [catlist] shortcode can be used as many times as needed with different arguments on each post/page.
[catlist id=1 numberposts=10]

There’s an options page with a few options, new options will be implemented on demand (as long as they make sense).

Read the instructions to learn which parameters are available and how to use them.

If you want to List Categories instead of posts you can use my other plugin List categories.

You can find Frequently Asked Questions here.

Customization

The different elements to display can be styled with CSS. you can define an HTML tag to wrap the element with, and a CSS class for this tag. Check the documentation for usage. You can also check this nice tutorial which gives lots of tips and how-to’s to customize how to display the posts.

Great to use WordPress as a CMS, and create pages with several categories posts.

GUI

Klemens Starybrat has created a GUI for List Category Posts. It helps you create a shortcode from a nice visual interface in WordPress’ text editor. Check it out:
GUI for List Category Posts

AJAX pagination

The ajax pagination feature is maintained in an add-on plugin by Klemens Starybrat. Check it out:
LCP Ajax Pagination

Widget

Since WordPress 4.9, you can use shortcode in text widgets. So you can just add a text widget in Appearence > Widgets and write the List Category Posts shortcode.

The plugin also includes a widget as a simple interface for its functionality. Just add as many widgets as you want, and select all the available options from the Appearence > Widgets page. Not all the functionality in the shortcode has been implemented in the widget yet. You can use the shortcode for the most flexibility.

Please, read the information on the wiki and Changelog to be aware of new functionality, and improvements to the plugin.

Videos

Some users have made videos on how to use the plugin (thank you, you are awesome!), check them out here:

Support the plugin

Klemens Starybrat has been writing lots of amazing code for this plugin, so if you’ve found it useful and want to pay it forward, consider sponsoring him on GitHub: https://github.com/sponsors/klemens-st

I have a PayPal account where you can donate too.

Development

Development is being tracked on Codeberg and GitHub. Fork it, code, make a pull request, suggest improvements, etc. over there. I dream of the day all of the WordPress plugins will be hosted on Git 🙂

Since the documentation on how to use the plugin has passed wordpress.org’s character limit, the text was cut. You can find the complete documentation on the wiki. It’s also more comfortable to read and maintain than a txt file. Please check it out, suggestions are welcome on Codeberg/GitHub issues!

Instructions on how to use the plugin

Below you can find common shortcode use cases. You can use the shortcode while editing posts, pages, custom post types, text widgets and in all “page builder” plugins that support shortcodes.

Read the full documentation to discover many more features, including:

  • advanced post selection options (by date, search terms, custom fields, post types, custom taxonomies and more)
  • output customizations (show each post’s date, author, excerpt, thumbnail and more)
  • custom templates of your own design, based on a simple PHP example

List 10 latest posts:

[catlist]

The default number of listed posts is 10, to modify it you need to specify numberposts parameter:

[catlist numberposts=15]

List posts from the “Dogs” category:

[catlist name=Dogs]

List posts from the category with id 2:

[catlist id=2]

By default only the “post” post type is included. To list pages use:

[catlist post_type=page]

and for both posts and pages:

[catlist post_type="post,page"]

If we combine the above options we can get a shortcode that lists 15 items, including post and pages, from the “Dogs” category:

[catlist name=Dogs post_type="post,page" numberposts=15]

Most of the parameters you will find in the documentation can be used together.

The plugin can detect current post’s category and use it for listing:

[catlist categorypage=yes]

Same goes for tags:

[catlist currenttags=yes]

To show each post’s excerpt use:

[catlist excerpt=yes]

If you want to show the date, author and comments count next to each post, use:

[catlist date=yes author=yes comments=yes]

You can specify html tags and classes for many elements. Let’s modify the previous shortcode and wrap dates and authors in tags and classes of our choice:

[catlist date=yes date_tag=span date_class="my-date" author=yes author_tag=p author_class="my-author" comments=yes]

Read more about this feature

You can order posts by date:

[catlist orderby=date]

You can also use title, author, ID. More options are described in the documentation.

The plugin also supports pagination. You need to specify numberposts to tell the plugin how many posts per page you want:

[catlist pagination=yes numberposts=5]

See the wiki: Pagination for more information.

Please read the full documentation for detailed documentation of all plugin features, use cases and shortcode parameters.

Installation

  • Upload the list-category-posts directory to your wp-content/plugins/ directory.
  • Login to your WordPress Admin menu, go to Plugins, and activate it.
  • Start using the ‘[catlist]` shortcode in your posts and/or pages.
  • You can find the List Category Posts widget in the Appearence > Widgets section on your WordPress Dashboard.
  • If you want to customize the way the plugin displays the information, check HTML & CSS Customization or the section on Templates on the wiki.

Frequently Asked Questions

You can find the Frequently Asked Questions here.

INSTRUCTIONS ON HOW TO USE THE PLUGIN

Check out the Wiki

Please read the instructions and the FAQ before opening a new topic in the support forums.

Widget

The widget is quite simple, and it doesn’t implement all of the plugin’s functionality.

Since WordPress 4.9, you can use a shortcode in a widget. If you’re using a previous WordPress version, add this code to your theme’s functions.php file:

add_filter('widget_text', 'do_shortcode');

Then just add a new text widget to your blog and use the shortcode there as the widget’s content.

HTML & CSS Customization

HTML and CSS Customization

TEMPLATE SYSTEM

How to customize the way the posts are shown: Template System.

NEW FEATURE REQUESTS, BUG FIXES, ENHANCEMENTS

You can post them on GitHub Issues.

FURTHER QUESTIONS

Please check the FAQ before posting a question. You can post questions in the Support forum or add a new issue on GitHub.

Review feed

OllieJones
1/30/2022

Exactly right for what I need

Thanks for this plugin. It does exactly what I need and works flawlessly.

Screenshots

No screenshots available

Changelog

See CHANGELOG.md for full Changelog.

0.93.1

  • Fixes a bug with post_status introduced in sanitize_status. Thanks Galen Charlton (@gmcharlt) for the catch and fix!

0.93.0

  • Don’t skip password protected filter when showing content.
  • Sanitize post_status so some posts are only shown if user is Editor or Administrator.
  • Addresses reported vulnerability: CVE-2025-11377, Authenticated (Contributor+) Information Exposure. Severity Score: 4.3 (Medium). CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N. Organization: Wordfence. Vulnerability Researcher(s): Athiwat Tiprasaharn (Jitlada)

This is a low risk vulnerability that could potentially be executed by an authenticated attacker, with contributor-level access and above. But it should be fixed with this version.

0.92.0

  • Avoids potential SQL injection in starting_with parameter – CVE-2025-10163. This solves SQL injection and results in starting_with working as per the Wiki, but the previous code also allowed things like [catlist starting_with="Hello"] which would return posts starting with “Hello” but not just with “H”. This new implementation would return both, because only the first character matters, which is ok because that’s what is documented.
  • Improves template file inclusion security. Template files when using the template parameter can only have letters, numbers, _ and - in the name. They also can only be located in the current theme’s directory under a list-category-posts directory.

0.91.0

  • Addresses CVE-2025-47636, avoids Local File Inclusion for template system. The code will remove any occurrences of the string ‘../’ in the template parameter. Templates files must be php files located in a directory named list-category-posts under wp-content/themes/your-theme-folder.
    https://www.cve.org/CVERecord?id=CVE-2025-47636

0.90.3

  • Hardens xss fix for script tag by checking case insensitive and using tag_escape.

0.90.2

  • Updates fix for stored cross-site scripting from 0.90.0, now applied to all tags. From this version onwards, script is not available to use as a tag when setting an element’s tag in the shortcode.

0.90.1

  • Fix PHP 8.2 deprecation notices
  • Remove empty anchor tags from widget morelink

0.90.0

  • Fixes a Stored Cross-Site Scripting issue using excerpt_tag='script'.