{"id":4916,"date":"2009-03-04T18:56:13","date_gmt":"2009-03-04T18:56:13","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/posts-per-cat\/"},"modified":"2025-05-12T19:36:47","modified_gmt":"2025-05-12T19:36:47","slug":"posts-per-cat","status":"publish","type":"plugin","link":"https:\/\/de.wordpress.org\/plugins\/posts-per-cat\/","author":187052,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.5.0","stable_tag":"1.5.0","tested":"6.8.5","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Posts per Cat","header_author":"Aleksandar Uro\u0161evi\u0107","header_description":"","assets_banners_color":"dae8f2","last_updated":"2025-05-12 19:36:47","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/urosevic.net\/wordpress\/donate\/?donate_for=posts-per-cat","header_plugin_uri":"http:\/\/urosevic.net\/wordpress\/plugins\/posts-per-cat\/","header_author_uri":"https:\/\/urosevic.net","rating":5,"author_block_rating":0,"active_installs":300,"downloads":53123,"num_ratings":8,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.0.10":{"tag":"0.0.10","author":"urkekg","date":"2010-01-07 13:38:03"},"0.0.11":{"tag":"0.0.11","author":"urkekg","date":"2010-05-18 14:41:31"},"0.0.12":{"tag":"0.0.12","author":"urkekg","date":"2010-05-18 14:43:47"},"0.0.13":{"tag":"0.0.13","author":"urkekg","date":"2010-05-27 04:59:34"},"0.0.14":{"tag":"0.0.14","author":"urkekg","date":"2011-04-09 21:55:45"},"0.0.7":{"tag":"0.0.7","author":"urkekg","date":"2009-03-04 19:18:10"},"0.0.8":{"tag":"0.0.8","author":"urkekg","date":"2009-09-26 08:23:42"},"0.0.9":{"tag":"0.0.9","author":"urkekg","date":"2009-10-09 19:15:20"},"1.0.0":{"tag":"1.0.0","author":"urkekg","date":"2012-01-16 21:20:40"},"1.1.0":{"tag":"1.1.0","author":"urkekg","date":"2012-04-05 14:35:22"},"1.2.0":{"tag":"1.2.0","author":"urkekg","date":"2013-11-24 22:28:03"},"1.2.1":{"tag":"1.2.1","author":"urkekg","date":"2014-01-27 21:10:07"},"1.3.0":{"tag":"1.3.0","author":"urkekg","date":"2014-06-01 12:24:39"},"1.4.0":{"tag":"1.4.0","author":"urkekg","date":"2014-09-13 22:01:05"},"1.4.1":{"tag":"1.4.1","author":"urkekg","date":"2014-09-16 19:23:38"},"1.4.1.1":{"tag":"1.4.1.1","author":"urkekg","date":"2015-03-30 16:36:39"},"1.4.1.2":{"tag":"1.4.1.2","author":"urkekg","date":"2015-09-27 19:11:49"},"1.4.2":{"tag":"1.4.2","author":"urkekg","date":"2020-12-28 08:08:44"},"1.5.0":{"tag":"1.5.0","author":"urkekg","date":"2025-05-12 19:36:47"}},"upgrade_notice":{"1.5.0":"<ul>\n<li>Make backup before upgrade!<\/li>\n<li>Review shortcode\/widget settings after upgrade.<\/li>\n<\/ul>","1.4.0":"<ul>\n<li>Make backup before upgrade!<\/li>\n<li>Install and activate Redux Framework Plugin to motify global Posts-per-Cat settings.<\/li>\n<li>Review shortcode\/widget settings after upgrade.<\/li>\n<li>Do not forget to make website backup before plugin upgrade!<\/li>\n<\/ul>","1.3.0":"<ul>\n<li>General settings page moved to Redux framework. Make backup before you update plugin, so you can go back if something go wrong.<\/li>\n<\/ul>","1.2.0":"<ul>\n<li>We changed options names for number of columns, number of posts and excerpts visibility. We recommend you to update plugin settings after update.<\/li>\n<\/ul>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"8"},"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":989433,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":989453,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.0.10","0.0.11","0.0.12","0.0.13","0.0.14","0.0.7","0.0.8","0.0.9","1.0.0","1.1.0","1.2.0","1.2.1","1.3.0","1.4.0","1.4.1","1.4.1.1","1.4.1.2","1.4.2","1.5.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":989255,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":989255,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":989255,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":989255,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Posts per Cat general settings","2":"Posts per Cat widget","3":"Posts per Cat: custom cats, 3 column, w\/o enabled CSS","4":"Posts per Cat: all cats, 3 column, w\/ enabled CSS"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3621,89,1395,166,1083],"plugin_category":[43,50,57],"plugin_contributors":[194504,79024],"plugin_business_model":[],"class_list":["post-4916","plugin","type-plugin","status-publish","hentry","plugin_tags-archives","plugin_tags-category","plugin_tags-excerpt","plugin_tags-posts","plugin_tags-recent-posts","plugin_category-customization","plugin_category-media","plugin_category-taxonomy","plugin_contributors-techwebux","plugin_contributors-urkekg","plugin_committers-urkekg"],"banners":{"banner":"https:\/\/ps.w.org\/posts-per-cat\/assets\/banner-772x250.png?rev=989453","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/posts-per-cat\/assets\/icon.svg?rev=989433","icon":"https:\/\/ps.w.org\/posts-per-cat\/assets\/icon.svg?rev=989433","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/posts-per-cat\/assets\/screenshot-1.png?rev=989255","caption":"Posts per Cat general settings"},{"src":"https:\/\/ps.w.org\/posts-per-cat\/assets\/screenshot-2.png?rev=989255","caption":"Posts per Cat widget"},{"src":"https:\/\/ps.w.org\/posts-per-cat\/assets\/screenshot-3.png?rev=989255","caption":"Posts per Cat: custom cats, 3 column, w\/o enabled CSS"},{"src":"https:\/\/ps.w.org\/posts-per-cat\/assets\/screenshot-4.png?rev=989255","caption":"Posts per Cat: all cats, 3 column, w\/ enabled CSS"}],"raw_content":"<!--section=description-->\n<p>Posts per Cat is a simple plugin that grab all or only selected categories from blog database, and then list recent N posts from each category, organised in 1-5 columns.<\/p>\n\n<p>If you are interested to acquisition of plugin, please <a href=\"https:\/\/urosevic.net\/wordpress\/contact\/?subject=Posts-per-Cat%20Acquisition\">contact us<\/a>.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>choose how many boxes per row will be displayed (one, two, three, four or five)<\/li>\n<li>define number of post titles to display per category<\/li>\n<li>define category ID's to exclude<\/li>\n<li>define category ID's to include<\/li>\n<li>toggle displaying of child categories<\/li>\n<li>ordering boxes by category ID, title or custom (manually entered category ID's as include list)<\/li>\n<li>toggle displaying sticky posts<\/li>\n<li>toggle usage of custom list CSS<\/li>\n<li>SEO optimized permalink URI's<\/li>\n<li>integrate to template file, use shortcode [ppc] with options or widget<\/li>\n<li>ready for localisation<\/li>\n<li>template system for single post line in box defined by user in plain HTML with macro keywords for post elements<\/li>\n<\/ul>\n\n<h4>Shortcode options<\/h4>\n\n<p>You can use shortcode [ppc], with options below (set option in shortcode to override default settings above):<\/p>\n\n<ul>\n<li><code>columns=2<\/code> - Number of columns (1, 2, 3, 4 or 5)<\/li>\n<li><code>minh=0<\/code> - Minimal height of box (in px, set to 0 for auto)<\/li>\n<li><code>include=category_ID's<\/code> - Include category (comma separated category ID's)<\/li>\n<li><code>exclude=category_ID's<\/code> - Exclude category (comma separated category ID's)<\/li>\n<li><code>parent=0<\/code> - Only top level categories (0 or 1)<\/li>\n<li><code>order=ID<\/code> - Order categories by (ID, name or custom)<\/li>\n<li><code>catonly=0<\/code> - Only from displayed category archive (0 or 1)<\/li>\n<li><code>noctlink=0<\/code> - Do not link category name (0 or 1)<\/li>\n<li><code>more=0<\/code> - Standalone link to archives (0 or 1)<\/li>\n<li><code>moretxt=\"More from\"<\/code> - Archive link prefix<\/li>\n<li><code>posts=5<\/code> - Number of headlines per category block<\/li>\n<li><code>porderby=date<\/code> - Order posts by date, modified, title, name, ID, author<\/li>\n<li><code>porder=DESC<\/code> - Order sorting DESC or ASC<\/li>\n<li><code>titlelen=34<\/code> - Headline length (in characters)<\/li>\n<li><code>shorten=0<\/code> - Shorten headline (0 or 1)<\/li>\n<li><code>commnum=0<\/code> - Display comment number (0 or 1)<\/li>\n<li><code>nosticky=0<\/code> - Hide sticky posts (0 or 1)<\/li>\n<li><code>excerpts=none<\/code> - Show excerpt (none, first or all)<\/li>\n<li><code>content=0<\/code> - Use post content as excerpt (0 or 1)<\/li>\n<li><code>excleng=100<\/code> - Excerpt length<\/li>\n<li><code>thumb=0<\/code> - Show thumbnail with excerpt (0 or 1)<\/li>\n<li><code>tsize=60<\/code> - Thumbnail size, set size in px for thumbnail width (height is same); or set in format WIDTHxHEIGHT (example 220x123); or set predefined custom image size (thumbnail, small, medium, large, full or cusotm defined)<\/li>\n<\/ul>\n\n<p>Since version 1.4.0 you can use template to display custom formatted output (post line element). Example:\n    [ppc]<\/p>\n\n<h3><a href=\"%link%\">%title_short%<\/a><\/h3>\n\n<pre><code>&lt;span class=\"comments-meta\"&gt;(&lt;a href=\"%comments_link%\"&gt;%comments_num% comments&lt;\/a&gt;)&lt;\/span&gt;\n&lt;span class=\"date-meta\"&gt;%date% @ %time%&lt;\/span&gt;\n&lt;span class=\"author-meta\"&gt;&lt;a href=\"%author_posts_url%\"&gt;%author_displayname%&lt;\/a&gt;&lt;\/span&gt;\n%thumbnail%\n%excerpt% &lt;a href=\"%link%\"&gt;[read more]&lt;\/a&gt;\n[\/ppc]\n<\/code><\/pre>\n\n<p>Supported macros:<\/p>\n\n<ul>\n<li><code>%title%<\/code><\/li>\n<li><code>%title_short%<\/code><\/li>\n<li><code>%post_content%<\/code><\/li>\n<li><code>%excerpt%<\/code><\/li>\n<li><code>%thumbnail%<\/code><\/li>\n<li><code>%link%<\/code><\/li>\n<li><code>%comments_num%<\/code><\/li>\n<li><code>%comments_link%<\/code><\/li>\n<li><code>%comments_form_link%<\/code><\/li>\n<li><code>%datetime%<\/code><\/li>\n<li><code>%date%<\/code><\/li>\n<li><code>%time%<\/code><\/li>\n<li><code>%author_displayname%<\/code><\/li>\n<li><code>%author_firstname%<\/code><\/li>\n<li><code>%author_lastname%<\/code><\/li>\n<li><code>%author_posts_url%<\/code><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Login to your WordPress site and go to page <code>Plugins<\/code>--&gt;<code>Add New<\/code><\/li>\n<li>Type <code>posts per cat<\/code> to <code>Search<\/code> field and press <code>Search Plugins<\/code> button<\/li>\n<li>Click on <code>Install Now<\/code> link below <code>Posts per Cat<\/code> name<\/li>\n<li>Click on <code>OK<\/code> as answer to question <code>Are you sure you want to install this plugin?<\/code><\/li>\n<li>Click <code>Activate Plugin<\/code> link after success installation<\/li>\n<li>Go to <code>Settings<\/code>--&gt;<code>Posts per Cat<\/code> page and configure plugin's options<\/li>\n<li>Put code <code>&lt;?php do_action('ppc'); ?&gt;<\/code> in your template file (for example in index.php just before closing <code>&lt;\/div&gt;&lt;!-- #content --&gt;<\/code> tag, or use widget <code>Posts per Cat<\/code> or shortcode <code>[ppc]<\/code>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='i%20would%20like%20to%20get%20a%20list%20of%20posts%20but%20just%20from%20one%20category'><h3>I would like to get a list of posts but just from one category<\/h3><\/dt>\n<dd><p>Enter category ID into <code>Include category<\/code> field, and leave unchecked <code>Only top level categories<\/code> checkbox.<\/p><\/dd>\n<dt id='i%20set%20in%20template%20macro%20to%20display%20excerpt%2C%20but%20no%20excerpt%20displayed'><h3>I set in template macro to display excerpt, but no excerpt displayed<\/h3><\/dt>\n<dd><p>Enable option <code>Use post content as excerpt<\/code> in widget, or provide shortcode parameter <code>content=1<\/code>, because you did not have manually set excerpts for posts, so you must ask PPC to generate excerpt from post content.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.0 (2025-05-12)<\/h4>\n\n<ul>\n<li>Fix vulnerabilities reported by muhammad yudha via WordFence Responsible Disclosure<\/li>\n<li>Update compatibility to WordPress 6.8<\/li>\n<li>Make columns responsive and use modern <code>flexbox<\/code> instead of the legacy <code>floats<\/code><\/li>\n<li>Sassify styles<\/li>\n<li>Partial code cleanup<\/li>\n<li>Reactivate plugin development<\/li>\n<\/ul>\n\n<h4>1.4.2 (2015-11-28)<\/h4>\n\n<ul>\n<li>Change plugin status to Unmaintained<\/li>\n<li>Intorduce acquisition of plugin for interested third parties<\/li>\n<li>Update donation link<\/li>\n<\/ul>\n\n<h4>1.4.1.2 (2015-04-16)<\/h4>\n\n<ul>\n<li>Fix missing mb_strlen and mb_substr that cause Fatal error on servers w\/ PHP installed w\/o --enable-mbstring option<\/li>\n<\/ul>\n\n<h4>1.4.1.1 (2015-03-30)<\/h4>\n\n<ul>\n<li>Fix warnings if no default settings defined<\/li>\n<\/ul>\n\n<h4>1.4.1 (2014-09-16)<\/h4>\n\n<ul>\n<li>Fix settings page initialization issue<\/li>\n<li>Fix output when do_action() is used for integration<\/li>\n<li>Add to Widget settings support for post ordering and sorting (already supported by shortcode since 1.3.0 - undocumented until now)<\/li>\n<\/ul>\n\n<h4>1.4.0 (2014-09-13)<\/h4>\n\n<ul>\n<li>Fix usage of predefined include\/exclude categories in global settings if no include\/exclude categories provided in widget or shortcode<\/li>\n<li>Fix non-working minimal box height set in widget or shortcode<\/li>\n<li>Add support for cusotm template output with post element macros<\/li>\n<li>Add support for non-square thumbnails with WIDTH, WIDTHxHEIGHT or image size name as value<\/li>\n<li>Change - Link to category can be applied to Category title and to \"More\" link for category in same time<\/li>\n<li>Change - Remove embedded Redux from plugin and use Redux Framework Plugin for global PPX settings page<\/li>\n<li>Change - pack PPC to class<\/li>\n<\/ul>\n\n<h4>1.3.0 (2014-06-01)<\/h4>\n\n<ul>\n<li>A lot of fixes made during framework change<\/li>\n<li>Improved basic block layouts<\/li>\n<li>Add 5th column for boxes<\/li>\n<li>Convert settings page to Redux Framework<\/li>\n<li>Update compatibility to 3.9.1<\/li>\n<\/ul>\n\n<h4>1.2.1 (2014-01-27)<\/h4>\n\n<ul>\n<li>Fix widget functionality<\/li>\n<li>Update compatibility to 3.8.1<\/li>\n<\/ul>\n\n<h4>1.2.0 (2013-11-24)<\/h4>\n\n<ul>\n<li>Add shortcode options to override default settings<\/li>\n<li>Add widget with settings<\/li>\n<li>Code optimization<\/li>\n<\/ul>\n\n<h4>1.1.0 (2012-04-05)<\/h4>\n\n<ul>\n<li>Adds option to disable link on category title<\/li>\n<li>Adds shortcode [ppc]<\/li>\n<li>Adds class to headline title and number of comments<\/li>\n<\/ul>\n\n<h4>1.0.0 (2012-01-16)<\/h4>\n\n<ul>\n<li>Adds option to toggle comments number with link<\/li>\n<li>Adds option to use post content in stead of post excerpt<\/li>\n<li>Adds option for custom category ordering (as listed in Include category)<\/li>\n<li>Adds option to display PPC in one, two, three or four columns<\/li>\n<li>Adds available category list in Options page<\/li>\n<li>All coments in code translated to English<\/li>\n<li>Follow WP coding standards<\/li>\n<li>Renamed from Posts-per-Cat to Posts per Cat<\/li>\n<\/ul>\n\n<h4>0.0.14 (2011-04-09)<\/h4>\n\n<ul>\n<li>Fixed debug errors<\/li>\n<li>Fixed (I hope I do) image URI's in CSS<\/li>\n<li>Adapted for WordPress 3.1<\/li>\n<li>Added French localisation thanks to Pepita Pop (2010-06-23)<\/li>\n<\/ul>\n\n<h4>0.0.13 (2010-05-27)<\/h4>\n\n<ul>\n<li>Fixed path to CSS on nonroot WP installations<\/li>\n<\/ul>\n\n<h4>0.0.12 (2010-05-18)<\/h4>\n\n<ul>\n<li>Fixed full width problem in IE6<\/li>\n<\/ul>\n\n<h4>0.0.11 (2010-04-24)<\/h4>\n\n<ul>\n<li>Added dirty hack for seervers w\/o mb_strlen()<\/li>\n<li>Added option to filter categories on category archive<\/li>\n<li>Added option to display thumbnails with excerpts<\/li>\n<li>Added option to display standalone link to category archive<\/li>\n<li>Better terminology<\/li>\n<\/ul>\n\n<h4>0.0.10 (2010-01-07)<\/h4>\n\n<ul>\n<li>Added option to display two or only one column per row (full width)<\/li>\n<\/ul>\n\n<h4>0.0.9 (2009-10-09)<\/h4>\n\n<ul>\n<li>Fixed XHTML validation error for div class<\/li>\n<li>Added full post title as link title<\/li>\n<\/ul>\n\n<h4>0.0.8 (2009-09-26)<\/h4>\n\n<ul>\n<li>Replaced category and post URI with permalink<\/li>\n<li>Added option to display excerpt for first article only, for all articles or not display at all<\/li>\n<li>Added option to shorten excerpts to specified length (in characters)<\/li>\n<li>Added option to shorten post title to specified length (in characters)<\/li>\n<li>Added options for custom categories to include\/exclude<\/li>\n<li>Moved Settings links in plugin actions<\/li>\n<li>Fixed and improved ppc.css and ppc-list.css StyleSheets<\/li>\n<\/ul>\n\n<h4>0.0.7 (2009-03-04)<\/h4>\n\n<ul>\n<li>Posts per Cat added to WordPress plugin repository<\/li>\n<li>Fixed broken category URI on non-index pages<\/li>\n<li>Added ppc action hook<\/li>\n<\/ul>\n\n<h4>0.0.6 (2009-03-03)<\/h4>\n\n<ul>\n<li>Fixed SCC URI on non-index pages<\/li>\n<\/ul>\n\n<h4>0.0.5 (2009-02-20)<\/h4>\n\n<ul>\n<li>Added plugin option to disable usage of CSS StyleSheet for list styles<\/li>\n<\/ul>\n\n<h4>0.0.4 (2009-02-20)<\/h4>\n\n<ul>\n<li>Fixed CSS positioning problem<\/li>\n<\/ul>\n\n<h4>0.0.3 (2009-02-16)<\/h4>\n\n<ul>\n<li>Published first public release<\/li>\n<li>Added Settings page<\/li>\n<li>Gettexturized (enabled localisation)<\/li>\n<\/ul>\n\n<h4>0.0.2 (2009-02-10)<\/h4>\n\n<ul>\n<li>Code packed from functions.php to plugin<\/li>\n<\/ul>\n\n<h4>0.0.1 (2009-02-02)<\/h4>\n\n<ul>\n<li>Project initialized<\/li>\n<\/ul>","raw_excerpt":"Group recent posts by category and show them inside boxes organized to columns.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/4916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=4916"}],"author":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/urkekg"}],"wp:attachment":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=4916"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=4916"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=4916"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=4916"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=4916"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=4916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}