List category posts


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 only one option -for the moment-, new options will be implemented on demand (as long as they make sense). Right now the only global option is the numberposts parameter, to define a default number of posts to show for each instance (you can override this value by using the numberposts parameter in your shortcode).

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.


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.


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


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.


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:

I have a PayPal account where you can donate too.


Development is being tracked on 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’s character limit, the text was cut. I’ve since started using a wiki for more comfortable reading and maintaining. Please check it out, suggestions are welcome on 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:


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.


  • 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.


You can find the Frequently Asked Questions here.


Check out the Wiki

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


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


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


You can post them on GitHub Issues.


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


12 มกราคม 2024
As a long-time WordPress user, I’ve encountered numerous plugins, each promising to enhance the functionality of my website. However, few have impressed me as much as the List Category Posts plugin. This versatile tool has become an indispensable part of my WordPress toolkit, streamlining how I organize and display content across my site. The plugin’s core strength lies in its simplicity and effectiveness. With straightforward shortcode implementation, I can easily display a list of posts from specific categories on any page or post. This functionality not only improves the navigability of my site but also enhances the overall user experience. The ability to fine-tune the display – including adjusting post counts, ordering, and even including elements like excerpts and author names – provides a level of customization that is both powerful and user-friendly. One feature I particularly appreciate is the plugin’s ability to detect the current post’s category and use it for listing, making dynamic content display a breeze. The flexibility to mix post types in a single list further adds to its utility, especially for sites with diverse content. The plugin’s developer has done an exceptional job in balancing functionality with usability. The extensive documentation and active support ensure that even less tech-savvy users can make the most of its features. Its compatibility with various themes and plugins makes it a reliable choice for a wide range of WordPress users. In summary, the List Category Posts plugin stands out for its effectiveness in enhancing content organization and presentation on WordPress sites. It’s a testament to thoughtful development focused on real-world utility and user experience.
6 กันยายน 2023
I’ve been using this plug in for years – and I’ve been remiss not leaving a review. I run a single site with a core set of portfolio type items that have a general information page. Because of this plugin, I can type the description in a portfolio type post and have just the pieces I want replicated on the product page or in a blog post about the item. That’s what databases are supposed to do – avoid replication of the same data. I decide to update a description, I fix it in one place and anywhere I’ve used that description gets updated. It took trial and error and poring over the documentation, which is really good, to make it all work, but it was completely worth it. Thank you!
24 กุมภาพันธ์ 2023
the plugin gives you the flexibility to control the display of posts in many ways and by many filters. The many options available allow for insertion of posts lists by category in different ways, even in the same page. The pagination option works very well. posts can be displayed in full or title or excerpt. It may require definition of css to get what you want. But there was plenty documentation in the plugin page to learn how to do it. (more examples of css setting would be nice) thanks
Read all 253 reviews

Contributors & Developers

“List category posts” is open source software. The following people have contributed to this plugin.


“List category posts” has been translated into 16 locales. Thank you to the translators for their contributions.

Translate “List category posts” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Fixes previous release not reporting correct version on Plugin Repository.


  • Updates esc_attr for tag_escape in title_tag for extra protection


  • Same as 0.89.4, more character escaping for security purposes.


  • Fixes an issue where pagination links are invalid after clicking any pagination link.
  • More html tags are now allowed in post titles.


  • This release focuses solely on making sure the plugin does not output malicious scripts if a post’s author tries to inject code into LCP shortcodes.


  • Fixes an issue where excludeposts=this raised PHP warnings when navigating to non-post pages.


  • Fixes an issue where the LCP widget incorrectly handled the current category for category id ‘1’.


  • Fixes an issue where the LCP widget incorrectly detected the current post on pages containing multiple posts, such pages do not actually have a ‘current’ post.


  • Allows using excluded ids for categorypage=yes (#418). See the docs for usage.


  • Fixed PHP warnings that appeared when creating a new LCP widget.
  • Upgraded testing environment.
  • Fixed PHP 8.1 deprecation warnings reported by testing suite.
  • Deprecation notice: this is the last version with official support of PHP 5.4. Required PHP version will be raised to 5.6 with the next release.


  • When filtering by a single category, you can add main_cat_only=yes to select only the posts that have this category as their main one (#449).
  • Similar to currenttags, currentterms has been added to support filtering by current post’s custom taxonomy terms (#293).


  • New feature: use keep_orderby_filters=yes to prevent the plugin from removing ‘posts_orderby’ filters added by other plugins/themes.
  • New feature: use ignore_sticky_posts=yes to ignore all sticky posts, they will still be displayed as regular posts in normal order if they match your filtering options, though. (#342)
  • New feature: use cat_sticky_posts=yes to make sticky posts ‘stick’ when filtering by category. (#423)


  • Fixed multiple CSS classes, things like [catlist posts_cats=yes posts_cats_class="feed categories"] now work.


  • New feature: use link_current=no to prevent the current post from being wrapped in a link.
  • New feature: display categories and tags of each post with posts_cats and posts_tags, a bunch of new parameters have been added to customise this feature, see the docs.
  • Fixed an issue with currenttags, when navigating to a post with no tags, no posts are displayed, same as with categorypage.
  • Updated the testing environment and CI scripts.


  • Attempted fix of a compatibility issue with some versions of PHP 7.4


  • New feature: Support for custom field data types for customfield_orderby, use customfield_orderby_type. Thanks @vosykapavel!
  • New feature: Run LCP in standard secondary loop mode with main_query=no. See the docs and #445.
  • Removed the target attribute from <a> elements in post titles (#464) .
  • post_parent=0 post_type=page now works as expected, displaying only top level pages (#370).
  • Fixed multiple authors by id (#426).


  • Fixed includeposts undefined index in older widgets.
  • Fixed invalid href attribute in morelink.


  • Filter hook added: shortcode_atts_catlist, see the docs.
  • Filter hook added: lcp_pagination_html, see the source.


  • New feature: Select specific posts by IDs: [catlist includeposts="2,97"]. Thanks @hvianna!
  • New feature: Advanced customfield filtering with customfield_compare, see the docs for instructions.
  • New feature: It is now possible to style category_description with category_description_tag and category_description_class.
  • Changed the default wrapper tag for content=yes to <div> to avoid generating invalid HTML (previously <p>).
  • Fixed excerpt_full not being run through the_excerpt filters (thanks @StefanXRoos!). The filters are now applied same as for excerpt_yes. Please check your setup if you are using excerpt_full.
  • Fixed display_id bug, thanks for reporting @fiestoforo!
  • Fixed PHP warnings in WP admin caused by the widget, thanks for reporting @hiskingdomprophecy (#420).
  • Fixed posts_where filter not being properly removed when using starting_with.
  • Full refactor of HTML generation making it easier to maintain.
  • Upgraded PHP to 7.4 in the Vagrant machine.


  • Fixes bug with order parameter after refactor:


This is a big release since @zymeth25 and I have been doing lots of refactoring based on maintainability, code quality and testing. It means the code is much cleaner and easier to maintain. So fixing bugs or adding new features should be easier now. If you find any issues, please report them on GitHub (

  • Development: We’ve refactored a lot of the code in include, updated the build, bumped versions, added tests, and more.
  • Bugfix: An issue where customfield_display_glue was shown even when the custom field values were empty –
  • Bugfix: Fixed excluded categories when using an and relationship.
  • New parameter: ol_offset, when you use an ordered list, you can set an offset so the posts will start from that number instead of 1.
  • Templates system refactor – The plugin now uses the template system by default. There should be no changes on how the plugin works, but please do let us know if you have any issues. Building templates should be easier now. You can use the included template as an example to start. It’s in the plugin’s template folder under the name default.php. Be warned, however, that this is the default template the plugin uses to create output so if you change it, you will change the plugin’s default behavior. When you update the plugin this file will be overwritten so it’s best not to edit it but copy it over to another file to create your custom template.
    More information on templates:
  • Pull Request:
  • Official docs:


  • Adds support for several authors. To select posts from one author, you can use the author_posts parameter and use ‘user_nicename’ (NOT name). Example: [catlist author_posts="fernando"]. If you want to select posts from several authors, you need to use the author id instead. You can find the id for each author in wp-admin/users.php. It needs to be a comma separated value, example: [catlist author_posts="1,2"]
  • Rewrote excludeposts function. It wasn’t working very well with this.


  • Adds “” to the “…” in pagination.
  • Adds ‘current_user’ as an option to the author_posts parameter to list posts from logged in user.


  • Hopefully final bugfix from alt in thumbnails 🤦🏻


  • Bugfix release: With 0.80, using the post title as alt attribute in thumbnails made a change to use get_the_post_thumbnail_url. But thanks to a post in the support forum, I noticed we lost some of the sizing functionality in get_the_post_thumbnail. So this version goes back to using get_the_post_thumbnail but keeping the new alt attribute for thumbnails.


  • Bugfix release: fix for featured image link to full post not working. Thanks Werner!


  • Use post title as alt attribute in thumbnails. Thanks @arcticmouse!
  • Dynamic pagination paddin. Thanks @zymeth25! More info:
  • Bugfix current category for posts displayed in the loop. Thanks @zymeth25! More info:
  • Added “private” text next to a post’s title when it’s private, thanks to a suggestion by @cmccrone in the support forums. The text is published with the following html: <span class="lcp_private"> private</span>, so you can customize the CSS (hide it, change its color, etc.).


  • Requires PHP >= 5.4
  • categorypage now suppports yes for all post’s categories with OR relationship, all for AND relationship and other to get all categories except current categories (with OR relationship) (thanks @zymeth25! 🎉)
  • Possibly one of the last versions before 1.0.
  • Fixes in current category (thanks @zymeth25! 🎉)
  • Added link to Klemens’ GUI.
  • Moved documentation to the wiki:
  • Add ‘id’ to widget ordering options (thanks @zymeth25! 🎉)
  • Add currenttags=all for AND relationship (thanks @zymeth25! 🎉)


  • Refactor in widget parameters by @zymeth25, all widget related issues with missing parameters will be gone for good.


  • Adds before=today, when you use it the plugin will get today’s date dynamically and display only old posts. Thanks @nnasirzada for the PR implementing this!
  • Changes in pagination: You can now have no anchor links in the pagination. Check the wiki for more info. Thanks @zymeth25 for this feature! If you’re using the lcp_page_link somewhere or customized the lcp-paginator.php file somehow, watch out because we refactored this function. Also, let us know what you changed to see if we can incorporate it in the core plugin 🙂


  • Bug fix by @zymeth25: In some rare cases wp_reset_query fails to reset global $post to its initial value. This manual reset ensures the plugin leaves the main query in a clean state regardless of circumstances. Fixes and


  • Improvements in testing by @zymeth25.
  • Removed hardcoded wp_ as table prefix and replaced with $wpdb->prefix to allow for WordPress database tables which are setup to use more secure prefixes by @djadan.


  • Fixes parsing error for PHP < 5.4. We will be dropping support for PHP pre 5.4 soon, so we recommend you to upgrade to a newer version.


  • Starting_with support for utf8mb4 charset
  • Improve catlink/catlist in widget
  • Avoid PHP Notices when trying to replace widget title but no category is present.
  • Fix ‘current category’ handling
  • Better test coverage
  • Fix dates parameters: before and after are now working again
  • Remove warning for deprecated create_function in PHP 7


  • Fix author_post and search parameters.
  • Multiple instances pagination fix.
  • New test for the LcpPaginator class.


  • Fix a case where pagination would show up but the CSS wasn’t being loaded.
  • Fixes other issues with pagination
    Thanks Klemens Starybrat (zymeth25) for the fixes in this release 🙂


  • Improvements to custom_fields and customfield_orderby. Please check the readme for more information.
  • Several bug fixes to pagination.
  • Do not hide empty categories from widget.
    Special thanks to Klemens Starybrat (zymeth25) for all the contributions.


  • Add pagination function for templates.


  • Possibly fixed a bug where the code for the Paginator class would show up in some blogs. Apparently some PHP ini accept “<?” as a valid way of starting a php file, others don’t.


  • Adds “next” and “previous” classes to the previous and next buttons in pagination menu. The classes are lcp_prevlink and lcp_nextlink. Thanks @zymeth25.
  • Adds pagination to Widget.


  • Bug fix release: [catlist categorypage="yes"] had stopped working with WordPress 4.9. This is because the category check would compare a return value against the “Empty Term” translation key which was changed in this commit adding periods at the end of some error messages. So it was just a matter of adding the period in the if condition. Thanks helmutka for reporting this!


  • Bumped version because wouldn’t grab the previous one.


  • Support “and” relationship for custom taxonomies, by Dalton Rooney.
  • Support for multiple taxonomies in the same shortcode by TheSquiffy
  • Tested up to WordPress 4.9
  • Adds Irish translation by Jordan Silaen.


Several bug fixes:

  • Makes sure the tags_as_class instance variable is defined. This squelched an ‘undefined index’ PHP Notice that appeared for widgets that were last saved before upgrading to 0.71.1. Fix by Matthew Eppelsheimer (@MatthewEppelsheimer on GitHub).
  • Adds a new tutorial in the docs, check it out!
  • Fixes a bug where customfield_value wouldn’t work if a custom field’s value = 0
  • Adds tag/class html customization refactor to excerpt to behave as expected:
    • If you provide excerpt_tag but not excerpt_class, excerpt will be wrapped with given tag.
    • If you provide excerpt_tag and excerpt_class, excerpt will be wrapped with provided tag and given class.
    • If you provide excerpt_class but not excerpt_tag, excerpt will be wrapped with a span and the given class.
  • Fixes an error notice when widget is displayed for “current category” on post without category – Notice: Undefined offset: 0 in /include/lcp-category.php on line 69



  • Added tags_as_class: Use a post’s tags as a class for the li that lists the posts. Default is no. Thanks @vacuus on GitHub for this PR!



  • Update lcp-widget.php for PHP 7 compatibility. Thanks @kenshin23!


Thanks @mmatthews1981, @ottadvantage and @mhoeher for their contributions on this version:

  • Adds Alt Tag to thumbnail
  • Handle child_categories flag correctly –
  • Adds a default value to numberposts on plugin activation –


  • Bugfix release, this should fix the issues with Parent Categories listings.


  • Adds custom css class to current page in pagination lcp_currentpage.
  • Adds child_categories parameter to being able to exclude child categories’ posts from a list.
  • New feature to look for the first image in a post when requesting a thumbnail and the post has no featured image. Thanks Michael J. Gibbs for writing this code 🙂


  • Full release notes:
  • Orders the README a bit.
  • Issues with tags when using more than one tag for OR and AND relationships should be fixed.
  • Documented the use of custom taxonomies. For some reason I never came around to do that. I changed the parameters for taxonomies, it used the ‘tags’ parameter for ‘terms’ before, so I added a ‘terms’ parameter to make this independent from the tags parameter. So now it looks like this: [catlist taxonomy='person' terms='bob']. This might break some current uses of taxonomy, but since it was written so long ago and I don’t know why it used “tags”, I decided to just create the ‘terms’ parameter. People using the custom taxonomies were people who are looking at the code anyway since I can’t find it documented anywhere. Sorry for the inconveniences!
  • Adds category description parameter.
  • Adds orderby and order to options page. Removes default values since they’re the default anyway.


  • Adds pagination parameter to the options page.
  • Changes the loop in the default template.
  • Fixes ‘morelink_class not working with templates’ in the default template.
  • Adds link to post wrapper for the post date. If you have a chance, please thank bibz who is doing awesome Pull Requests to this plugin and occasionally helping out on the support forums here too 🙂


  • Fixes get_current_tags
  • Some updates on the documentation
  • Introduces a conditional title, only displayed when posts are found, thanks bibz for this Pull Request!
  • Introduces customfield_display_separately, customfield_display_glue and customfield_display_name_glue parameters for multiple custom fields handling by bibz. Thanks! 😀


  • Remove renamed file (Damn using subversion), should fix issues updating.


  • Vagrant box and development environment improved by bibz
  • Tested with WordPress 4.3, updated Widget constructor because of PHP 4 deprecation.


  • Dutch translation by Gerhard Hoogterp, thank you!
  • Re-add the loop fixes and fixes function missing from last time by Sophist-UK, thanks!
  • Allow to order by the modified date in the widget by bibz, thanks!


  • Adds Portuguese from Portugal (pt_PT) translation, muito obrigado Joaquim Félix!
  • Fixes translation paths, thanks monpelaud!.


  • Reverts switching to the loop til we find a way around for using templates.


  • Fixes the loop so that other plugins work as if this was a blog or archive post.
    See issue #156
    on Github. Thanks Sophist-UK for this new version 🙂


  • Tested with WordPress 4.2
  • Sophist’s fix: Check for multi-byte functions installed and use ascii functions if not.


  • Fix some errors


Thanks Sophist from UK for this release 🙂

By Sophist:

  • Fix error causing call to undefined method
  • Add excerpt=full to allow either full explicit excerpt or use <?–more–> to define where the excerpt ends.
  • Fixes link_titles=false creates plain text rather than unlinked formatted text as you might expect.
  • Fixes title_limit not working correctly

Other minor fixes by me.


  • Fixes an error with pagination links. Accessing $_SERVER filtered not working on some servers, have to investigate further for a future version.
  • Addresses warning messages when debug enabled.


  • Removes filter interfering with filters set by other plugins. Thanks zulkamal for the Pull Request!
  • Adds option to display titles without links. Thanks zulkamal for this Pull Request too! 😀
  • Workaround to prevent ‘?&’ to appear in URLs. Thanks mhoeher for the Pull Request!
  • General refactors for improving code quality/security.
  • Fixed typo in Readme (Thanks Irma!).
  • Fixes excluding tags when using category name (should fix other issues with category name too since there was a bug there).


  • Add custom image sizes to the list of selectable image sizes in the widget. Thanks nuss for the Pull Request!
  • New Attribute ‘no_post_titles’. Thanks thomasWeise for the Pull Request!
  • Finnish localization. Thanks Newman101 for the Pull Request!


  • Adds Indonesian (Bahasa Indonesia) translation. Thanks Dhyayi Warapsari!
  • Adds french from France language. Thanks Dorian Herlory!
  • Adds content=full parameter to ignore tags when displaying content. Thanks Sophist-UK!
  • Fixes excluded_tags parameter


  • Ordered lists now follow the posts count when using pagination –
  • Fixes issue introduced in 0.54 with undefined indexes –


  • Fixes call to undefined method lcp_get_current_post_id()


  • Fixes bug in LcpParameters.


  • Adds http/https check for pagination links.
  • Fixes post_status and post_type parameters for using multiple post statuses and types.
  • Big refactor: Thumbnail code, parameters moved to new class,
    created util class, removed bad and repeated code, moved category
    code to new class. Small fixes all around the place. Went from a
    very bad 1.77 GPA to 3.23 on CodeClimate.


  • Makes “starting_with” parameter accept several letters, by Diego Sorribas. Thank you!


  • Small fix for pagination and query string.
  • Fix on multiple categories with AND relationship.
  • Fixes options page 404 and saving options.
  • Tested with WordPress 4.1.


  • Fixes translations, updates Spanish translation. Translators, please update your po and mo files and submit them via pull request on GitHub 🙂
  • Test compatibility with WordPress 4.0
  • Adds icon for WordPress 4.0 new plugin interface.
  • Fixes posts_morelink and customfields for templates.
  • Adds fixes by htrex:
    • Fix custom template regression
    • Fix excluded categories not working in widget


  • Addresses some warnings / scandir on Displayer and catname on widget
  • Fixes lcp_paginator.css path
  • Some small sanitations


  • Small fix on templates


  • Fixes issue with catlink.
  • Fixes issue with templates named “default”


  • Adds Thai translation by itpcc.
  • The widget can now select an existing template. Thanks Borjan Tchakaloff!
  • Templates code was refactored.


  • Makes sure “starting_with” queries are case insesitive.
  • Fixes category link on ‘catlink’ and ‘catname’ parameters (were showing twice)


  • Adds author_posts_link, to show an author’s page.
  • Adds catname parameter to show just the category name (and not the link). Thanks user sirenAri from the forum.
  • Small bug fix for getting current category. Used to check against simple string, now checking against i18n’ed one.


  • Bug fixes
  • Adds parameter to show modified date of posts. Thanks Eric Sandine for the Pull Request 🙂


  • Adds Ukranian translation by Michael Yunat
  • Adds display_id parameter. Set it to yes to show the Post’s ID next to the post title.
  • Adds starting_with parameter. Gets posts whose title start with a given letter.


  • Finally (hopefully) fix the excerpt issues.


  • Fix something that I broke on previous update for excerpt :S


  • Some fixes on displaying excerpt.


  • Fixes quotes bug on title tag.
  • Only show ellipsis when title.size > title_limit when using the
    title_limit param.


  • Adds “the_excerpt” filter to excerpt to improve compatibility with
    the Jetpack plugin.
  • Add character limit to title
  • Removes debug warnings
  • Output valid HTML, attribute quotations – thanks Nikolaus Demmel!


  • Adds ol default template to template parameter.
  • Improves documentation.


  • Removes warning when using current tag in pages
  • Small fix on Readme


  • Adds the feature to get an author’s posts
  • Adds show posts from current post’s tags.


  • Show “no posts text” only if it’s been set and there are no posts,
    otherwise behave like before.


  • Removes filters to order by (should fix issues with order)
  • Adds pagination_prev and pagination_next params to customize
    the “Previous” and “Next” buttons on pagination navigation.
  • Only show pages in pagination when they are > 1
  • Adds no_posts_text param to display a custom message when no
    posts are found
  • Fixes “morelink” class parameter (now can be used without
    specifying an HTML tag and the class is applied to the a tag).


  • Adds missing title attribute from thumbnail links.


  • Fixes pagination numbers
  • Removes warning on wp-debug set to true


  • Fixes some debug warnings (Ruby’s nil doesn’t apply in the PHP World)


  • Fixes excludeposts=this.
  • Adds customfield_tag and customfield_class to customize an HTML tag
    and CSS class for custom fields.


  • Small bugfix with customfield_display_name (wasn’t working now it


  • Fixes customfield display name.
  • Fixes size in getting thumbnails, now checks for all available
    sizes and defaults (“thumbnail”, “full”, etc.)


  • Adds options page, to set the default numberposts value globally.
  • Adds customfield_display_name param.
  • Adds pagination to custom template.
  • Fixes date display.
  • Adds conditions to Vagrantfile to boot faster and not repeat work.
  • Fixes exclude posts, broken when migrating from get_posts to


  • Small fix closing quotes on content when using


  • Tested with WordPress 3.8
  • Removes unnecessary stuff on wp_enqueue_styles
  • Fixes validation when using quotes in title
  • Fixes on tag
  • Fixes on title HTML tag and CSS class. (See HTML & CSS
    on Other Notes to check the expected behaviour)


  • Adds “post suffix” parameter, to add a String after each post
    listed. Source


  • Adds pagination. Check Pagination on Other

    to learn how to use it.
  • Adds “How to display thumbnails next to title” to the FAQ.
  • Adds a Vagrant box for developers to be able to start coding with
    no effort 🙂


  • Supports more tag. If there’s a <!–more–> tag in the post, then it will behave just as WordPress does: only show the content previous to the more tag.
  • Fixes YouTube thumbnails: Includes “embed” urls for youtube video
    thumbnails, makes correct img tag when using CSS class.


  • Fixed category_count for several categories.


  • Fixed catlink to display titles for all the categories when using more than one category.


  • Adds option for “target=_blank” for post links.
  • Adds option to exclude category when using the and relationship: [catlist id=1+2-3] will include posts from categories 1 and 2 but not 3.


  • Updated Turkish translation, thanks again Hakan Er!
  • Adds feature to order by custom field using the customfield_orderby parameter.


  • Bugfix (removed var_dump)


  • Now accepts either class or tag or both for styling elements (such as date, author, etc. to display). When just using a tag, it will sorround the element with that tag. When using just a class, it will wrap the element between span tags and the given CSS class. Check Other notes under HTML & CSS Customization for more info.
  • Fixed bug on post_status, it used to show all published posts and if user was logged in, all private ones too. Now you can specify ‘private’ to just display private posts, and draft, publish, draft, etc (See post_status param on the instructions for more info).


  • Fixes bug with thumbnail size on Widget.
  • Adds feature to make widget title a link to the category. Use ‘catlink’ as the value for the widget’s title to make it a link to the category (based on
  • Fixes morelink styiling with CSS class and tag.
  • Adds morelink to templates (based on
  • Fixes tag and CSS class for “catlink” too:


  • Add category count parameter to show the number of posts in a category next to its title. Only works when using the catlink option: [catlist name=nintendo catlink=yes category_count=yes] –


  • Pull request from @cfoellmann, adds testing environment and Travis CI integration. Awesomeness.
  • When searching for a thumbnail, if there’s no thumbnail on the post but there’s a YouTube video, display the YouTube video thumbnail. (


  • Bugfix release, fixes current category for post/page


  • Improves ‘current category’ detection.
  • Adds categorypage parameter to widget


  • excerpt – Fixed default excerpt behaviour from previous release. By default it will strip html tags as it always did. If you want it not to strip tags, you’ll have to use excerpt_strip=no. Added a new parameter to have a consistent excerpt. If you want to overwrite WordPress’ excerpt when using the plugin and generate one the way the plugin does when there’s no excerpt, use excerpt_overwrite=yes.


  • Adds ability to exclude tags.
  • Changes excerpt. Since lot of users have asked for it, I once again modified the way the excerpt is shown. It now respects your theme’s allowed HTML tags and doesn’t strip them from the excerpt. If you want to strip tags, use excerpt_strip=yes.


  • Adds turkish translation, thanks Hakan Er for writing this translation! 🙂
  • Adds “AND” relationship to several categories. Thanks to hvianna from the WordPress forums who implemented this feature 😀
  • More improvements on readme.


  • Improvements on readme, faqs.
  • New posts_morelink param: adds a ‘read more’ link to each post.


  • Sets minimum version to WordPress 3.3, since wp_trim_words was introduced in that version. Adds workaround for people using WordPress < 3.3.
  • Adds Slovak translation by Branco from
  • Removes Debug PHP warnings.
  • Checkboxes on Widget save state, i18n for widget.
  • Adds excerpt size to widget.


  • Fixes to widget.
  • Adds year and month parameters to list posts from a certain year and/or month.
  • Adds search parameter to display posts that match a search term.


  • Adds i18n, German and Spanish translations. All credit to cfoellmann for implementing this and writing the German translation. Thanks! 🙂


  • Changed excerpt limit, it uses word count, and is working for WordPress’ excerpt and auto generated ones.


  • Better excerpt
  • Applies title filter, should work with qTranslate
  • Adds post status parameter
  • Adds meta links to plugin page – most importantly: INSTRUCTIONS (please read them).


  • Fixes “excerpt doesn’t strip shortcodes” –
  • Exclude currently displayed post – 1, 2
  • Add title to category title 1, will be improved.
  • Attempting to condition whitespaces to WordPress Coding Standard (emacs php-mode sucks for this…)
  • No more git-svn crap, now I’m developing this over at (GitHub)[] and copying it into the WordPress SVN Repo.


  • Bugfix release


  • Bugfix release


This update is dedicated to Michelle K McGinnis who bought me “Diamond Age” by Neal Stephenson from my Amazon Wishlist. Thanks! 😀

  • Added excerpt size. You can set how many characters you want the excerpt to display with ‘excerpt_size’.
  • Fixed HTML tag and CSS class for each element (Check Other notes for usage).
  • Removed shortcodes from excerpt.


  • Fixed thumbnail size parameter, added usage example on README.
  • Added space after author and date


  • Fixed bug with the categorypage=yes param.
  • Tested with WordPress 3.3.


  • Fixed accidentally deleted line which made the catlink=yes param not work.


  • Added CSS “current” class hook for current post in the list: .current class attached to either the li or a tag of the currently viewed page in the said list.
  • Added morelink parameter, check Other notes for usage.


  • Removed var_dump… (Sorry about that)


  • Small fixes:
    • Used “empty()” function for some Strings instead of evaluating isset() and != ”.
    • Include parameters on the get_posts args only when they are set (post_parent among others).

= …