[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f9LiZjgGK29ndh18HWLEUmoJ_9eWWGUjweaDFAiq-0dk":3,"$f0lCiOv518xt5UhTgNh1UDnbCtN3k33vvdQJHjFpEcvk":208,"$fIvimViXDszDfwQ3bePi40AbA9drGWfDUofD3Pv_TrH8":212},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"discovery_status":31,"vulnerabilities":32,"developer":33,"crawl_stats":29,"alternatives":39,"analysis":132,"fingerprints":194},"easy-post-view-counter","Easy Post View Counter","1.2.3","Michael Gertz","https:\u002F\u002Fprofiles.wordpress.org\u002Fmgertz\u002F","\u003Cp>With this plugin you can see how many views a single post has.\u003Cbr \u002F>\nJust link on the All Post link in the left menu\u003Cbr \u002F>\nNo need for adding codes anywhere, just plug’n’play\u003C\u002Fp>\n","With this plugin you can see how many views a single post has.",100,11035,80,3,"2015-04-07T06:59:00.000Z","4.1.42","2.7","",[20,21,22,23,24],"post-counter","post-hits","post-views","postviews","view-counter","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Feasy-post-views-counter\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-post-view-counter.1.2.3.zip",85,0,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":34,"display_name":7,"profile_url":8,"plugin_count":35,"total_installs":11,"avg_security_score":27,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},"mgertz",1,30,84,"2026-05-19T16:32:31.141Z",[40,57,79,99,116],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":48,"downloaded":49,"rating":28,"num_ratings":28,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":18,"tags":53,"homepage":18,"download_link":56,"security_score":11,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"simple-post-view-counter","Simple Post View Counter – Clean and Fast Post View Analytics","1.0.1","Sadhan Pal","https:\u002F\u002Fprofiles.wordpress.org\u002Fsadhanpal\u002F","\u003Cp>\u003Cstrong>Simple Post View Counter\u003C\u002Fstrong> is a lightweight yet powerful plugin to track how many times your WordPress posts are viewed.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>✅ Automatic post view tracking (AJAX-based, works even in incognito mode)\u003C\u002Fli>\n\u003Cli>✅ Prevents double-counting on refresh\u003C\u002Fli>\n\u003Cli>✅ Built-in bot detection\u003C\u002Fli>\n\u003Cli>✅ Display views before content, after content, beside meta, or manually\u003C\u002Fli>\n\u003Cli>✅ “Most Viewed Posts” widget with customizable display\u003C\u002Fli>\n\u003Cli>✅ Shortcodes for displaying most viewed posts and individual post views\u003C\u002Fli>\n\u003Cli>✅ Admin settings page with statistics (total views, average views, top posts, etc.)\u003C\u002Fli>\n\u003Cli>✅ Views column in admin post list (sortable by views)\u003C\u002Fli>\n\u003Cli>✅ Exclude admin views from tracking\u003C\u002Fli>\n\u003Cli>✅ Works with caching plugins\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Shortcodes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ccode>[post_views]\u003C\u002Fcode> \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Display view count for current post\u003Cbr \u002F>\nOptions: \u003Ccode>post_id\u003C\u002Fcode>, \u003Ccode>format=\"%s views\"\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>[most_viewed_posts]\u003C\u002Fcode> \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Display a list of most viewed posts\u003Cbr \u002F>\nOptions: \u003Ccode>limit=\"5\"\u003C\u002Fcode>, \u003Ccode>show_count=\"yes\"\u003C\u002Fcode>, \u003Ccode>show_excerpt=\"no\"\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Example Usage\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ccode>[most_viewed_posts]\u003C\u002Fcode> \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Show top 5 posts\u003C\u002Fli>\n\u003Cli>\u003Ccode>[most_viewed_posts limit=\"10\" show_count=\"yes\"]\u003C\u002Fcode> \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Show 10 posts with view counts\u003C\u002Fli>\n\u003Cli>\u003Ccode>[post_views]\u003C\u002Fcode> \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Show current post’s view count\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Widgets\u003C\u002Fh3>\n\u003Cp>Go to \u003Cstrong>Appearance \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Widgets\u003C\u002Fstrong> and add the \u003Cstrong>Most Viewed Posts\u003C\u002Fstrong> widget to your sidebar.\u003C\u002Fp>\n\u003Ch3>Video Tutorial\u003C\u002Fh3>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F10d_wyQn-Lk?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch3>Theme Function\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>`php\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Developed by Sadhan Pal\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is free software: you can redistribute it and\u002For modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.\u003C\u002Fp>\n","Lightweight post view counter with a widget and shortcodes. Track post views automatically, stop double-counting, and display popular content easily.",20,1009,"2025-09-14T09:25:00.000Z","6.8.5","6.7",[54,55,20,22,24],"most-viewed-posts","popular-posts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-post-view-counter.1.0.0.zip",{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":65,"downloaded":66,"rating":67,"num_ratings":68,"last_updated":69,"tested_up_to":70,"requires_at_least":71,"requires_php":72,"tags":73,"homepage":77,"download_link":78,"security_score":11,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"wp-post-views","Wp Post Views – WordPress Post views counter","1.22","Ronak J Vanpariya","https:\u002F\u002Fprofiles.wordpress.org\u002Fvanpariyar\u002F","\u003Cp>WordPress post views counter counts the view of your Built in post type and Custom post type.\u003C\u002Fp>\n\u003Ch3>Features And Options:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Simple, and easy to understand.\u003C\u002Fli>\n\u003Cli>Option to filter views on IP address to get accurate post count.\u003C\u002Fli>\n\u003Cli>Option to select the custom post type.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How to Get Post Count in Frontend\u003C\u002Fh3>\n\u003Cp>Use this shortcode.\u003C\u002Fp>\n\u003Cp>[WPPV-TOTAL-VIEWS]\u003C\u002Fp>\n\u003Cp>TO get site wide count of your post type ( Refresh Hourly due to performance reason ).\u003Cbr \u002F>\n[WPPV-TOTAL-VIEWS-PER-POST-TYPE post_type=”post”]\u003Cbr \u002F>\nThe total view shortcode not working well with large sites.\u003C\u002Fp>\n\u003Ch3>Tutorial\u003C\u002Fh3>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F11NH5xOBs68?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch3>Development\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Development happening on GitHub :- \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvanpariyar\u002Fwp-post-views\" rel=\"nofollow ugc\">WP Post Views Github\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Create issue on the GitHub OR Pull request for new feature when new tag added it will automatically deployed.\u003C\u002Fli>\n\u003C\u002Ful>\n","Wordpress Post views counter",4000,64709,86,6,"2025-12-15T11:59:00.000Z","6.9.4","5.4","7.4",[74,75,22,76,58],"count-wordpress-site-views","post-view-counter","show-post-views","https:\u002F\u002Fgithub.com\u002Fvanpariyar\u002Fwp-post-views","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-post-views.1.22.zip",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":87,"downloaded":88,"rating":13,"num_ratings":89,"last_updated":90,"tested_up_to":91,"requires_at_least":92,"requires_php":18,"tags":93,"homepage":97,"download_link":98,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"post-views-stats-counter","Post Views Stats Counter","1.1.7","Kazuki Yanamoto","https:\u002F\u002Fprofiles.wordpress.org\u002Fkazukiyanamoto\u002F","\u003Cp>This plugin will display how many times post and page viewed.\u003C\u002Fp>\n\u003Cp>It`s a simple stat analytics that also shows total view per day, week, month and all days. Those view are showed with titles and permalink.\u003Cbr \u002F>\nSelect only by title to see particular pages.\u003C\u002Fp>\n\u003Cp>You can exclude admin user and login users + you can ignore bots and useragents.\u003C\u002Fp>\n\u003Cp>The another merit is that “Most Popular articles” section can be added on to your widget.\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>Display how many times post and page viewed\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>View total access per day, week, month, and all days\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Show titles and permalinks as well\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Change view order by date and title\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>You can ignore bots and UserAgents\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Exclude admin user and login users\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>“Most Popular articles” section can be added on to your widget\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n","This plugin will display how many times post and page viewed. It shows total view of access per day, week, month, and all days.",700,22382,4,"2023-04-12T05:51:00.000Z","6.2.9","4.6",[94,95,22,96,23],"counter","hits","posts","https:\u002F\u002Fglobal-s-h.com\u002Fpvs\u002Fen\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-views-stats-counter.1.1.7.zip",{"slug":100,"name":101,"version":102,"author":103,"author_profile":104,"description":105,"short_description":106,"active_installs":11,"downloaded":107,"rating":11,"num_ratings":14,"last_updated":108,"tested_up_to":70,"requires_at_least":109,"requires_php":72,"tags":110,"homepage":114,"download_link":115,"security_score":11,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"init-view-count","Init View Count – AI-Powered, Trending, REST API","1.19.3","Init HTML","https:\u002F\u002Fprofiles.wordpress.org\u002Fbrokensmile2103-1\u002F","\u003Cp>\u003Cstrong>Init View Count\u003C\u002Fstrong> is a fast, clean plugin to track post views without clutter. It:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Uses REST API and JS to count real views\u003C\u002Fli>\n\u003Cli>Prevents duplicate counts with session\u002Flocal storage\u003C\u002Fli>\n\u003Cli>Stores counts in meta keys like \u003Ccode>_init_view_count\u003C\u002Fcode>, \u003Ccode>_init_view_day_count\u003C\u002Fcode>, etc.\u003C\u002Fli>\n\u003Cli>Provides \u003Ccode>[init_view_count]\u003C\u002Fcode> and \u003Ccode>[init_view_list]\u003C\u002Fcode> shortcodes\u003C\u002Fli>\n\u003Cli>Includes \u003Ccode>[init_view_ranking]\u003C\u002Fcode> shortcode with tabbed ranking by time range\u003C\u002Fli>\n\u003Cli>Supports template overrides (like WooCommerce)\u003C\u002Fli>\n\u003Cli>Lightweight. No tracking, no admin bloat.\u003C\u002Fli>\n\u003Cli>Includes REST API to query most viewed posts\u003C\u002Fli>\n\u003Cli>Supports pagination in \u003Ccode>[init_view_list]\u003C\u002Fcode> via the \u003Ccode>page\u003C\u002Fcode> attribute\u003C\u002Fli>\n\u003Cli>Batch view tracking support to reduce REST requests on busy sites\u003C\u002Fli>\n\u003Cli>Optional strict IP-based filtering to block fake view requests posted directly to the REST endpoint\u003C\u002Fli>\n\u003Cli>Includes a Dashboard widget to monitor top viewed posts directly in wp-admin\u003C\u002Fli>\n\u003Cli>Learns site-wide traffic shape (hourly & weekday) via AI-powered smoothing\u003C\u002Fli>\n\u003Cli>Shapes cached and updated efficiently with minimal overhead\u003C\u002Fli>\n\u003Cli>Safe reset action to rebuild patterns automatically\u003C\u002Fli>\n\u003Cli>Fully integrated with Trending Engine v3 for uplift-based scoring\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin is part of the \u003Ca href=\"https:\u002F\u002Fen.inithtml.com\u002Finit-plugin-suite-minimalist-powerful-and-free-wordpress-plugins\u002F\" rel=\"nofollow ugc\">Init Plugin Suite\u003C\u002Fa> — a collection of minimalist, fast, and developer-focused tools for WordPress.\u003C\u002Fp>\n\u003Cp>GitHub repository: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbrokensmile2103\u002Finit-view-count\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fbrokensmile2103\u002Finit-view-count\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Highlights\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>REST-first design — no jQuery or legacy Ajax\u003C\u002Fli>\n\u003Cli>View tracking powered by time + scroll detection\u003C\u002Fli>\n\u003Cli>Realtime display with optional animated counters\u003C\u002Fli>\n\u003Cli>Fully theme-compatible with overrideable templates\u003C\u002Fli>\n\u003Cli>Developer-friendly with rich filter support\u003C\u002Fli>\n\u003Cli>Optional \u003Ccode>[init_view_ranking]\u003C\u002Fcode> shortcode for tabbed view by day\u002Fweek\u002Fmonth\u002Ftotal\u003C\u002Fli>\n\u003Cli>Assets are only loaded when needed – perfect for performance-conscious themes\u003C\u002Fli>\n\u003Cli>Fully compatible with headless and SPA frameworks (REST-first + lazy)\u003C\u002Fli>\n\u003Cli>Supports batch mode: delay view requests and send in groups (configurable in settings)\u003C\u002Fli>\n\u003Cli>Includes optional Dashboard widget for quick admin overview of top viewed posts\u003C\u002Fli>\n\u003Cli>AI-powered Traffic Shape Learner – understands your site’s hourly & weekly rhythm\u003C\u002Fli>\n\u003Cli>Auto-integrated with Trending Engine v3 for seasonality-aware uplift detection\u003C\u002Fli>\n\u003Cli>Smart fallbacks (day \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> week \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> month \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> total) ensure rankings never run empty\u003C\u002Fli>\n\u003Cli>Ultra-light: only 1 write per increment + 1 rollup per day, cache-first design\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Shortcodes\u003C\u002Fh3>\n\u003Ch3>[init_view_count]\u003C\u002Fh3>\n\u003Cp>Shows current view count for a post. Only works inside a post loop.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Attributes:\u003C\u002Fstrong>\u003Cbr \u002F>\n– \u003Ccode>field\u003C\u002Fcode>: \u003Ccode>total\u003C\u002Fcode> (default), \u003Ccode>day\u003C\u002Fcode>, \u003Ccode>week\u003C\u002Fcode>, \u003Ccode>month\u003C\u002Fcode> – which counter to display\u003Cbr \u002F>\n– \u003Ccode>format\u003C\u002Fcode>: \u003Ccode>formatted\u003C\u002Fcode> (default), \u003Ccode>raw\u003C\u002Fcode>, or \u003Ccode>short\u003C\u002Fcode> – controls number formatting\u003Cbr \u002F>\n– \u003Ccode>time\u003C\u002Fcode>: \u003Ccode>true\u003C\u002Fcode> to show time diff from post date (e.g. “3 days ago”)\u003Cbr \u002F>\n– \u003Ccode>icon\u003C\u002Fcode>: \u003Ccode>true\u003C\u002Fcode> to display a small SVG icon before the count\u003Cbr \u002F>\n– \u003Ccode>schema\u003C\u002Fcode>: \u003Ccode>true\u003C\u002Fcode> to output schema.org microdata (InteractionCounter)\u003Cbr \u002F>\n– \u003Ccode>class\u003C\u002Fcode>: add a custom CSS class to the outer wrapper\u003C\u002Fp>\n\u003Ch3>[init_view_list]\u003C\u002Fh3>\n\u003Cp>Show list of most viewed posts.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Attributes:\u003C\u002Fstrong>\u003Cbr \u002F>\n– \u003Ccode>number\u003C\u002Fcode>: Number of posts to show (default: 5)\u003Cbr \u002F>\n– \u003Ccode>page\u003C\u002Fcode>: Show a specific page of results (default: 1)\u003Cbr \u002F>\n– \u003Ccode>post_type\u003C\u002Fcode>: Type of post (default: post)\u003Cbr \u002F>\n– \u003Ccode>template\u003C\u002Fcode>: \u003Ccode>sidebar\u003C\u002Fcode> (default), \u003Ccode>full\u003C\u002Fcode>, \u003Ccode>grid\u003C\u002Fcode>, \u003Ccode>details\u003C\u002Fcode> (can be overridden)\u003Cbr \u002F>\n– \u003Ccode>title\u003C\u002Fcode>: Title above list. Set to empty (\u003Ccode>title=\"\"\u003C\u002Fcode>) to hide\u003Cbr \u002F>\n– \u003Ccode>class\u003C\u002Fcode>: Custom class added to wrapper\u003Cbr \u002F>\n– \u003Ccode>orderby\u003C\u002Fcode>: Sort field (default: meta_value_num)\u003Cbr \u002F>\n– \u003Ccode>order\u003C\u002Fcode>: ASC or DESC (default: DESC)\u003Cbr \u002F>\n– \u003Ccode>range\u003C\u002Fcode>: \u003Ccode>total\u003C\u002Fcode>, \u003Ccode>day\u003C\u002Fcode>, \u003Ccode>week\u003C\u002Fcode>, \u003Ccode>month\u003C\u002Fcode>, \u003Ccode>trending\u003C\u002Fcode>\u003Cbr \u002F>\n– \u003Ccode>category\u003C\u002Fcode>: Filter by category slug\u003Cbr \u002F>\n– \u003Ccode>tag\u003C\u002Fcode>: Filter by tag slug\u003Cbr \u002F>\n– \u003Ccode>empty\u003C\u002Fcode>: Message to show if no posts found\u003C\u002Fp>\n\u003Ch3>[init_view_ranking]\u003C\u002Fh3>\n\u003Cp>Show tabbed ranking of most viewed posts. Uses REST API and JavaScript for dynamic loading. Optimized for SPA\u002Fheadless usage.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Attributes:\u003C\u002Fstrong>\u003Cbr \u002F>\n– \u003Ccode>tabs\u003C\u002Fcode>: Comma-separated list of ranges. Available: \u003Ccode>total\u003C\u002Fcode>, \u003Ccode>day\u003C\u002Fcode>, \u003Ccode>week\u003C\u002Fcode>, \u003Ccode>month\u003C\u002Fcode> (default: all)\u003Cbr \u002F>\n– \u003Ccode>number\u003C\u002Fcode>: Number of posts per tab (default: 5)\u003Cbr \u002F>\n– \u003Ccode>class\u003C\u002Fcode>: Custom class for outer wrapper\u003C\u002Fp>\n\u003Cp>This shortcode automatically enqueues required JS and uses skeleton loaders while fetching data.\u003C\u002Fp>\n\u003Ch3>REST API\u003C\u002Fh3>\n\u003Cp>This plugin exposes two REST endpoints to interact with view counts: one for recording views and another for retrieving top posts.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>POST \u002Fwp-json\u002Finitvico\u002Fv1\u002Fcount\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nRecord one or more views. Accepts a single post ID or an array of post IDs.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Parameters:\u003C\u002Fstrong>\u003Cbr \u002F>\n– \u003Ccode>post_id\u003C\u002Fcode> — \u003Cem>(int|array)\u003C\u002Fem> Required. One or more post IDs to increment view count for.\u003C\u002Fp>\n\u003Cp>This endpoint checks if the post is published, belongs to a supported post type, and applies delay\u002Fscroll config (via JavaScript). It updates total and optionally day\u002Fweek\u002Fmonth view counters.\u003C\u002Fp>\n\u003Cp>Note: The number of post IDs processed per request is limited based on the batch setting in plugin options.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>GET \u002Fwp-json\u002Finitvico\u002Fv1\u002Ftop\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nRetrieve the most viewed posts, ranked by view count.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Parameters:\u003C\u002Fstrong>\u003Cbr \u002F>\n– \u003Ccode>range\u003C\u002Fcode> — \u003Cem>(string)\u003C\u002Fem> \u003Ccode>total\u003C\u002Fcode>, \u003Ccode>day\u003C\u002Fcode>, \u003Ccode>week\u003C\u002Fcode>, \u003Ccode>month\u003C\u002Fcode>. Defaults to \u003Ccode>total\u003C\u002Fcode>.\u003Cbr \u002F>\n– \u003Ccode>post_type\u003C\u002Fcode> — \u003Cem>(string)\u003C\u002Fem> Post type to query. Defaults to \u003Ccode>post\u003C\u002Fcode>.\u003Cbr \u002F>\n– \u003Ccode>number\u003C\u002Fcode> — \u003Cem>(int)\u003C\u002Fem> Number of posts to return. Default: \u003Ccode>5\u003C\u002Fcode>.\u003Cbr \u002F>\n– \u003Ccode>page\u003C\u002Fcode> — \u003Cem>(int)\u003C\u002Fem> Pagination offset. Default: \u003Ccode>1\u003C\u002Fcode>.\u003Cbr \u002F>\n– \u003Ccode>fields\u003C\u002Fcode> — \u003Cem>(string)\u003C\u002Fem> \u003Ccode>minimal\u003C\u002Fcode> (id, title, link) or \u003Ccode>full\u003C\u002Fcode> (includes excerpt, thumbnail, type, date, etc.)\u003Cbr \u002F>\n– \u003Ccode>tax\u003C\u002Fcode> — \u003Cem>(string)\u003C\u002Fem> Optional. Taxonomy slug (e.g. \u003Ccode>category\u003C\u002Fcode>).\u003Cbr \u002F>\n– \u003Ccode>terms\u003C\u002Fcode> — \u003Cem>(string)\u003C\u002Fem> Comma-separated term slugs or IDs.\u003Cbr \u002F>\n– \u003Ccode>no_cache\u003C\u002Fcode> — \u003Cem>(bool)\u003C\u002Fem> If \u003Ccode>1\u003C\u002Fcode>, disables transient caching.\u003C\u002Fp>\n\u003Cp>This endpoint supports filtering and caching, and can be extended to support custom output formats.\u003C\u002Fp>\n\u003Ch3>Filters for Developers\u003C\u002Fh3>\n\u003Cp>This plugin provides multiple filters to help developers customize behavior and output in both REST API and shortcode use cases.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_should_count\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nAllow or prevent counting views for a specific post.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> REST \u003Ccode>\u002Fcount\u003C\u002Fcode>\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>bool $should_count\u003C\u002Fcode>, \u003Ccode>int $post_id\u003C\u002Fcode>, \u003Ccode>WP_REST_Request $request\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_meta_key\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nChange the meta key used to read or write view counts.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> REST & Shortcodes\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>string $meta_key\u003C\u002Fcode>, \u003Ccode>int|null $post_id\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_after_counted\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nRun custom logic after view count has been incremented.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> REST \u003Ccode>\u002Fcount\u003C\u002Fcode>\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>int $post_id\u003C\u002Fcode>, \u003Ccode>array $updated\u003C\u002Fcode>, \u003Ccode>WP_REST_Request $request\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_api_top_args\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nCustomize WP_Query arguments used for \u003Ccode>\u002Ftop\u003C\u002Fcode> endpoint.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> REST \u003Ccode>\u002Ftop\u003C\u002Fcode>\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>array $args\u003C\u002Fcode>, \u003Ccode>WP_REST_Request $request\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_api_top_item\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nModify each item before it’s returned in the \u003Ccode>\u002Ftop\u003C\u002Fcode> response.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> REST \u003Ccode>\u002Ftop\u003C\u002Fcode>\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>array $item\u003C\u002Fcode>, \u003Ccode>WP_Post $post\u003C\u002Fcode>, \u003Ccode>WP_REST_Request $request\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_api_top_cache_time\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nAdjust cache time (in seconds) for \u003Ccode>\u002Ftop\u003C\u002Fcode> results.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> REST \u003Ccode>\u002Ftop\u003C\u002Fcode>\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>int $ttl\u003C\u002Fcode>, \u003Ccode>WP_REST_Request $request\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_top_post_types\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nCustomize the list of post types returned by the \u003Ccode>\u002Ftop\u003C\u002Fcode> endpoint.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> REST \u003Ccode>\u002Ftop\u003C\u002Fcode>\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>array $post_types\u003C\u002Fcode>, \u003Ccode>WP_REST_Request $request\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_query_args\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nFilter WP_Query args for \u003Ccode>[init_view_list]\u003C\u002Fcode> shortcode.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> \u003Ccode>[init_view_list]\u003C\u002Fcode>\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>array $args\u003C\u002Fcode>, \u003Ccode>array $atts\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_empty_output\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nCustomize the HTML output when no posts are found.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> \u003Ccode>[init_view_list]\u003C\u002Fcode>\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>string $output\u003C\u002Fcode>, \u003Ccode>array $atts\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_view_list_atts\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nModify shortcode attributes before WP_Query is run.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> \u003Ccode>[init_view_list]\u003C\u002Fcode>\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>array $atts\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_default_shortcode\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nCustomize the default shortcode used when auto-inserting view count into post content.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> \u003Ccode>[init_view_count]\u003C\u002Fcode> auto-insert\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>string $shortcode\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_auto_insert_enabled\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nControl whether auto-insert is enabled for a given context.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> \u003Ccode>[init_view_count]\u003C\u002Fcode> auto-insert\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>bool $enabled\u003C\u002Fcode>, \u003Ccode>string $position\u003C\u002Fcode>, \u003Ccode>string $post_type\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_engagement_meta_keys\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nChange the meta keys used to retrieve \u003Ccode>like\u003C\u002Fcode> and \u003Ccode>share\u003C\u002Fcode> counts when calculating engagement quality.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> Engagement algorithm\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>array $meta_keys\u003C\u002Fcode> (\u003Ccode>likes\u003C\u002Fcode>, \u003Ccode>shares\u003C\u002Fcode>), \u003Ccode>int $post_id\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_trending_post_types\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nOverride the list of post types used by the Trending cron calculation.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> Cron Trending\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>array $post_types\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>\u003Ccode>init_plugin_suite_view_count_trending_component_weights\u003C\u002Fcode>\u003C\u002Fstrong>\u003Cbr \u002F>\nAdjust weights for Trending score components.\u003Cbr \u002F>\n\u003Cstrong>Applies to:\u003C\u002Fstrong> Trending algorithm\u003Cbr \u002F>\n\u003Cstrong>Params:\u003C\u002Fstrong> \u003Ccode>array $weights\u003C\u002Fcode> (\u003Ccode>velocity\u003C\u002Fcode>, \u003Ccode>engagement\u003C\u002Fcode>, \u003Ccode>freshness\u003C\u002Fcode>, \u003Ccode>momentum\u003C\u002Fcode>)\u003C\u002Fp>\n\u003Ch3>Template Override\u003C\u002Fh3>\n\u003Cp>To customize output layout, copy any template file into your theme:\u003C\u002Fp>\n\u003Cp>Example: \u003Ccode>your-theme\u002Finit-view-count\u002Fview-list-grid.php\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPLv2 or later.\u003Cbr \u002F>\nYou are free to use, modify, and distribute it under the same license.\u003C\u002Fp>\n","Count post views accurately via REST API with customizable display. Lightweight, fast, and extensible. Includes shortcode with multiple layouts.",1933,"2026-03-04T15:27:00.000Z","5.5",[22,111,112,113,24],"rest-api","shortcode","trending-posts","https:\u002F\u002Finithtml.com\u002Fplugin\u002Finit-view-count\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Finit-view-count.1.19.3.zip",{"slug":117,"name":118,"version":119,"author":120,"author_profile":121,"description":122,"short_description":123,"active_installs":124,"downloaded":125,"rating":28,"num_ratings":28,"last_updated":126,"tested_up_to":127,"requires_at_least":18,"requires_php":18,"tags":128,"homepage":130,"download_link":131,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"views-counter","Views Counter – Pages\u002FPosts","1.0","Akhtarujjaman Shuvo","https:\u002F\u002Fprofiles.wordpress.org\u002Fmdshuvo\u002F","\u003Cp>Simple Plugin for showing the post or page view on Admin Column.no need to add code to theme file.just activate the plugin and enjoy.\u003C\u002Fp>\n\u003Cp>Frequently Ask Question:\u003C\u002Fp>\n\u003Ch4>Do i need to add code in template file\u003C\u002Fh4>\n\u003Cp>No. just install activate.\u003C\u002Fp>\n\u003Ch4>Which post type it will works?\u003C\u002Fh4>\n\u003Cp>It will work for page and post only for now. we will include custom post future\u003C\u002Fp>\n\u003Ch4>Is there any security issues to use?\u003C\u002Fh4>\n\u003Cp>No. You can use it without any security tension\u003C\u002Fp>\n\u003Cp>will it slow down my site?\u003Cbr \u002F>\nNo. it is a very lightweight plugin. size only 1kb\u003C\u002Fp>\n","Simple Plugin for showing the post or page view on Admin Column.no need to add code to theme file.just activate the plugin and enjoy.",40,1351,"2017-12-15T08:14:00.000Z","4.9.29",[129,94,95,20,22],"admin-column-post-counter","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fview-count","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fviews-counter.zip",{"attackSurface":133,"codeSignals":158,"taintFlows":168,"riskAssessment":187,"analyzedAt":193},{"hooks":134,"ajaxHandlers":154,"restRoutes":155,"shortcodes":156,"cronEvents":157,"entryPointCount":28,"unprotectedCount":28},[135,140,145,149],{"type":136,"name":137,"callback":138,"file":139,"line":36},"action","init","myinit","EasyPostViewCounter.php",{"type":141,"name":142,"callback":143,"file":139,"line":144},"filter","the_content","EPVC_content",58,{"type":141,"name":146,"callback":147,"file":139,"line":148},"manage_posts_columns","EPVC_column_head",66,{"type":136,"name":150,"callback":151,"priority":152,"file":139,"line":153},"manage_posts_custom_column","EPVC_colums_content",10,81,[],[],[],[],{"dangerousFunctions":159,"sqlUsage":160,"outputEscaping":162,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":35,"bundledLibraries":167},[],{"prepared":28,"raw":28,"locations":161},[],{"escaped":28,"rawEcho":35,"locations":163},[164],{"file":139,"line":165,"context":166},77,"raw output",[],[169],{"entryPoint":170,"graph":171,"unsanitizedCount":28,"severity":186},"\u003CEasyPostViewCounter> (EasyPostViewCounter.php:0)",{"nodes":172,"edges":183},[173,178],{"id":174,"type":175,"label":176,"file":139,"line":177},"n0","source","$_SERVER",16,{"id":179,"type":180,"label":181,"file":139,"line":165,"wp_function":182},"n1","sink","echo() [XSS]","echo",[184],{"from":174,"to":179,"sanitized":185},true,"low",{"summary":188,"deductions":189},"The \"easy-post-view-counter\" plugin v1.2.3 exhibits a generally strong security posture based on the provided static analysis. There are no identified AJAX handlers, REST API routes, shortcodes, or cron events, significantly limiting the potential attack surface. The absence of dangerous functions and file operations, along with the use of prepared statements for all SQL queries and no external HTTP requests, are excellent security practices. The vulnerability history being completely clean further reinforces this positive outlook.\n\nHowever, a critical concern arises from the output escaping analysis. With 100% of outputs not being properly escaped, this presents a significant risk of Cross-Site Scripting (XSS) vulnerabilities. Any user-controlled input that is displayed on the front-end or back-end without proper sanitization could be exploited by an attacker to inject malicious scripts. While the taint analysis shows no unsanitized paths, the lack of output escaping means that even benign flows could become vulnerable if they inadvertently contain user-supplied data.\n\nIn conclusion, while the plugin has a very small attack surface and robust practices in areas like SQL handling and external requests, the complete lack of output escaping is a major weakness that could lead to serious security issues. This oversight needs immediate attention to ensure user data is protected and the plugin is secure against XSS attacks.",[190],{"reason":191,"points":192},"Output escaping not implemented",7,"2026-03-16T21:06:01.174Z",{"wat":195,"direct":200},{"assetPaths":196,"generatorPatterns":197,"scriptPaths":198,"versionParams":199},[],[],[],[],{"cssClasses":201,"htmlComments":202,"htmlAttributes":203,"restEndpoints":204,"jsGlobals":205,"shortcodeOutput":206},[],[],[],[],[],[207],"Views",{"error":185,"url":209,"statusCode":210,"statusMessage":211,"message":211},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Feasy-post-view-counter\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":213,"versions":214},5,[215,221,228,235,242],{"version":6,"download_url":26,"svn_tag_url":216,"released_at":29,"has_diff":217,"diff_files_changed":218,"diff_lines":29,"trac_diff_url":219,"vulnerabilities":220,"is_current":185},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Feasy-post-view-counter\u002Ftags\u002F1.2.3\u002F",false,[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feasy-post-view-counter%2Ftags%2F1.2.2&new_path=%2Feasy-post-view-counter%2Ftags%2F1.2.3",[],{"version":222,"download_url":223,"svn_tag_url":224,"released_at":29,"has_diff":217,"diff_files_changed":225,"diff_lines":29,"trac_diff_url":226,"vulnerabilities":227,"is_current":217},"1.2.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-post-view-counter.1.2.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feasy-post-view-counter\u002Ftags\u002F1.2.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feasy-post-view-counter%2Ftags%2F1.2.1&new_path=%2Feasy-post-view-counter%2Ftags%2F1.2.2",[],{"version":229,"download_url":230,"svn_tag_url":231,"released_at":29,"has_diff":217,"diff_files_changed":232,"diff_lines":29,"trac_diff_url":233,"vulnerabilities":234,"is_current":217},"1.2.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-post-view-counter.1.2.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feasy-post-view-counter\u002Ftags\u002F1.2.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feasy-post-view-counter%2Ftags%2F1.2&new_path=%2Feasy-post-view-counter%2Ftags%2F1.2.1",[],{"version":236,"download_url":237,"svn_tag_url":238,"released_at":29,"has_diff":217,"diff_files_changed":239,"diff_lines":29,"trac_diff_url":240,"vulnerabilities":241,"is_current":217},"1.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-post-view-counter.1.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feasy-post-view-counter\u002Ftags\u002F1.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Feasy-post-view-counter%2Ftags%2F1.1&new_path=%2Feasy-post-view-counter%2Ftags%2F1.2",[],{"version":243,"download_url":244,"svn_tag_url":245,"released_at":29,"has_diff":217,"diff_files_changed":246,"diff_lines":29,"trac_diff_url":29,"vulnerabilities":247,"is_current":217},"1.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-post-view-counter.1.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Feasy-post-view-counter\u002Ftags\u002F1.1\u002F",[],[]]