{"id":398019,"date":"2026-11-08T14:03:31","date_gmt":"2026-11-08T14:03:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/inaikas-posts-widget\/"},"modified":"2026-11-08T14:02:57","modified_gmt":"2026-11-08T14:02:57","slug":"inaikas-posts-widget","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/inaikas-posts-widget\/","author":23244641,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Inaikas Posts Widget","header_author":"inaikas","header_description":"Adds a widget and a shortcode that show the latest posts or the best posts (most viewed or most commented). You can set how many posts appear and how many posts per row.","assets_banners_color":"757c4c","last_updated":"2026-11-08 14:02:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/uxign\/posts-widget","header_author_uri":"https:\/\/www.inaikas.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":56,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"inaikas","date":"2026-11-08 14:02:57","revision":3791077}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3791080,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3791080,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3791080,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3791080,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[20340,1086,166,80,162],"plugin_category":[43],"plugin_contributors":[291509],"plugin_business_model":[],"class_list":["post-398019","plugin","type-plugin","status-publish","hentry","plugin_tags-most-viewed","plugin_tags-popular-posts","plugin_tags-posts","plugin_tags-shortcode","plugin_tags-widget","plugin_category-customization","plugin_contributors-inaikas","plugin_committers-inaikas"],"banners":{"banner":"https:\/\/ps.w.org\/inaikas-posts-widget\/assets\/banner-772x250.png?rev=3791080","banner_2x":"https:\/\/ps.w.org\/inaikas-posts-widget\/assets\/banner-1544x500.png?rev=3791080","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/inaikas-posts-widget\/assets\/icon-128x128.png?rev=3791080","icon_2x":"https:\/\/ps.w.org\/inaikas-posts-widget\/assets\/icon-256x256.png?rev=3791080","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Add a list of posts to a sidebar, or place the same list anywhere with a shortcode.<\/p>\n\n<ul>\n<li>Choose latest posts or best posts.<\/li>\n<li>Rank best posts by views or by comment count.<\/li>\n<li>Set the number of posts (1 to 12) and how many posts fit in one row (1 to 4).<\/li>\n<li>Filter by category.<\/li>\n<li>Show or hide the featured image, date and comment count.<\/li>\n<li>Hide the post that is currently being viewed.<\/li>\n<\/ul>\n\n<p>The widget prints nothing when no posts match, so it never leaves an empty box.<\/p>\n\n<h3>Shortcode<\/h3>\n\n<p>The same list can be placed in a post, a page, or an Elementor shortcode widget.\nThe widget form shows a ready example built from its current settings.<\/p>\n\n<pre><code>[tdd_posts]\n\n[tdd_posts source=\"best\" count=\"6\"]\n\n[tdd_posts source=\"best\" best_by=\"comments\" count=\"6\"]\n\n[tdd_posts source=\"latest\" count=\"8\" columns=\"3\" category=\"recipes\"]\n\n[tdd_posts source=\"best\" count=\"4\" columns=\"2\" title=\"Popular Recipes\" show_comments=\"0\"]\n<\/code><\/pre>\n\n<p>Attributes:<\/p>\n\n<ul>\n<li><code>title<\/code> - optional heading above the list.<\/li>\n<li><code>source<\/code> - <code>latest<\/code> or <code>best<\/code>. Default <code>latest<\/code>.<\/li>\n<li><code>best_by<\/code> - <code>views<\/code> or <code>comments<\/code>. Default <code>views<\/code>. Only used with <code>source=\"best\"<\/code>.<\/li>\n<li><code>count<\/code> - number of posts, 1 to 12. Default <code>6<\/code>.<\/li>\n<li><code>columns<\/code> - posts per row, 1 to 4. Default <code>1<\/code>.<\/li>\n<li><code>category<\/code> - category ID or slug. Empty means all categories.<\/li>\n<li><code>show_thumbnail<\/code> - <code>1<\/code> or <code>0<\/code>. Default <code>1<\/code>.<\/li>\n<li><code>show_date<\/code> - <code>1<\/code> or <code>0<\/code>. Default <code>1<\/code>.<\/li>\n<li><code>show_comments<\/code> - <code>1<\/code> or <code>0<\/code>. Default <code>1<\/code>.<\/li>\n<li><code>exclude_current<\/code> - hide the post being viewed, <code>1<\/code> or <code>0<\/code>. Default <code>1<\/code>.<\/li>\n<li><code>heading_level<\/code> - heading tag for <code>title<\/code>, 2 to 6. Default <code>2<\/code>.<\/li>\n<li><code>class<\/code> - extra CSS class on the shortcode wrapper.<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>When a visitor opens a single post, the plugin adds one to that post's view\ncounter and stores the total number of views for each post.<\/p>\n\n<p>To ignore repeated visits, the plugin keeps a keyed hash of the visitor IP\naddress (not the raw address) for 30 minutes in a temporary option. The hash\ncannot be turned back into an address, and it is removed automatically when the\n30-minute window ends. The plugin does not send data to any external service.<\/p>\n\n<p>View counting can be disabled with the <code>tdd_posts_widget_count_views<\/code> filter.\nSuggested privacy policy text is also available in <strong>Settings \u2192 Privacy \u2192 Policy\nGuide<\/strong>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin in <strong>Plugins<\/strong>.<\/li>\n<li>Go to <strong>Appearance \u2192 Widgets<\/strong> and add <strong>Posts List (Latest \/ Best)<\/strong> to a sidebar.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20the%20view%20counts%20come%20from%3F\"><h3>Where do the view counts come from?<\/h3><\/dt>\n<dd><p>The widget reads the view counter stored in the <code>_benqu_views_count<\/code> post meta.\nViews are counted on single posts. Editors, bots, previews and REST requests are\nnot counted, and a repeat visit from the same address is ignored for 30 minutes.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20a%20large%20site%3F\"><h3>Does it work on a large site?<\/h3><\/dt>\n<dd><p>Yes. Counts are also kept in an indexed table, so ordering by most viewed does\nnot depend on a meta join or a filesort. The table is filled in batches when the\nplugin is activated and stays in sync with the meta counter.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%20it%3F\"><h3>What happens when I uninstall it?<\/h3><\/dt>\n<dd><p>Widget settings, cached lists and the index table are removed. The view counts\nstored in post meta are kept.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release: widget and shortcode with latest, most viewed and most commented lists.<\/li>\n<li>Controls for the number of posts, posts per row, category, featured image, date and comment count.<\/li>\n<li>Indexed view counter table for large sites, with an automatic fallback to post meta.<\/li>\n<li>View throttling, IPv6 grouping and suggested privacy policy text.<\/li>\n<li>Multisite activation and clean uninstall.<\/li>\n<\/ul>","raw_excerpt":"A widget and a shortcode that show the latest posts or the best posts (most viewed or most commented).","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/398019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=398019"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/inaikas"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=398019"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=398019"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=398019"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=398019"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=398019"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=398019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}