{"id":306474,"date":"2026-05-17T02:29:45","date_gmt":"2026-05-17T02:29:45","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/mostify-trending-widgets\/"},"modified":"2026-05-22T00:24:32","modified_gmt":"2026-05-22T00:24:32","slug":"mostify","status":"publish","type":"plugin","link":"https:\/\/eo.wordpress.org\/plugins\/mostify\/","author":23489785,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Mostify","header_author":"Ducntnz","header_description":"Lightweight popular-posts engine. Track page views and comments, then display top posts by today \/ this week \/ this month \/ all-time via shortcode, widget, or Gutenberg block.","assets_banners_color":"132034","last_updated":"2026-05-22 00:24:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/wpmostify.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":78,"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":"ducntnz","date":"2026-05-22 00:24:32"},"1.1.0":{"tag":"1.1.0","author":"ducntnz","date":"2026-05-22 00:24:32"}},"upgrade_notice":{"1.1.0":"<p>Adds multi-tab layouts and one-click views migration from popular counter plugins (WordPress Popular Posts, Post Views Counter, WP-PostViews, WP Statistics, Top 10, Jetpack Stats). No database changes \u2014 existing rankings and shortcodes are unaffected.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3534174,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3534174,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":{"mostify\/ranking":{"name":"mostify\/ranking","title":"Mostify Ranking"}},"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings \u2192 Mostify \u2014 General tab with shortcode builder.","2":"Counter tab listing the active Views and Comments counters.","3":"Frontend ranking output rendered with the Bars list style.","4":"Frontend ranking output rendered with the Cards list style.","5":"Post editor meta box showing the per-post chart.","6":"Multi-tab ranking switching between Today \/ This Week \/ All Time on the frontend.","7":"Views migration banner on the Counter tab importing data from an existing counter plugin."}},"plugin_section":[],"plugin_tags":[3280,59298,5990,53163,23753],"plugin_category":[],"plugin_contributors":[263193],"plugin_business_model":[],"class_list":["post-306474","plugin","type-plugin","status-publish","hentry","plugin_tags-page-views","plugin_tags-popular-widget","plugin_tags-post-views","plugin_tags-trending-posts","plugin_tags-view-counter","plugin_contributors-ducntnz","plugin_committers-ducntnz"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mostify\/assets\/icon-256x256.png?rev=3534174","icon_2x":"https:\/\/ps.w.org\/mostify\/assets\/icon-256x256.png?rev=3534174","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Mostify is a fast, no-bloat popular-posts plugin that turns your WordPress views and comments into ranked lists you can drop anywhere via shortcode, widget, or Gutenberg block.<\/p>\n\n<p>It uses a pre-aggregated bucket schema (one row per post per time bucket) so ranking queries stay snappy even on sites with millions of pageviews \u2014 no on-the-fly aggregation, no JOIN fan-out, no slow <code>wp_postmeta<\/code> scans.<\/p>\n\n<h4>Highlights<\/h4>\n\n<ul>\n<li><strong>Page-views counter<\/strong> \u2014 AJAX tracking with bot detection, per-visitor cookie deduplication, and a <code>mostify_should_track_view<\/code> filter for custom rules.<\/li>\n<li><strong>Comments counter<\/strong> \u2014 counts approved comments (auto-approved + admin-approved transitions).<\/li>\n<li><strong>Time-period rankings<\/strong> \u2014 <code>today<\/code>, <code>yesterday<\/code>, <code>past_24_hours<\/code>, <code>this_week<\/code>, <code>last_week<\/code>, <code>past_7_days<\/code>, <code>this_month<\/code>, <code>last_month<\/code>, <code>past_30_days<\/code>, <code>this_year<\/code>, <code>last_year<\/code>, <code>past_12_months<\/code>, <code>all_time<\/code>.<\/li>\n<li><strong>Custom periods<\/strong> \u2014 build any window via <code>custom_hours_N<\/code>, <code>custom_days_N<\/code>, <code>custom_months_N<\/code>.<\/li>\n<li><strong>4 list styles<\/strong> \u2014 simple, bars, cards, medal (top-3 medal emoji).<\/li>\n<li><strong>Multi-tab layouts<\/strong> \u2014 show several time periods side by side in one block, each tab with its own period and sort order. Choose from 4 tab styles: horizontal tabs, vertical tabs, horizontal accordion, vertical accordion. Leave tabs empty to render a single period exactly as before.<\/li>\n<li><strong>10 color presets<\/strong> \u2014 ocean, sunset, forest, berry, fire, midnight, coral, arctic, earth, neon \u2014 plus theme inheritance and custom CSS.<\/li>\n<li><strong>Views migration<\/strong> \u2014 one-click import of lifetime view counts from popular counter plugins so you can switch to Mostify without resetting your rankings to zero. Supports WordPress Popular Posts, Post Views Counter, WP-PostViews, WP Statistics, Top 10 \u2014 Popular Posts, and Jetpack Stats. Runs as a batched background job with live progress.<\/li>\n<li><strong>Display surfaces<\/strong> \u2014 shortcode <code>[mostify]<\/code>, classic widget, server-rendered Gutenberg block, post-editor meta box, auto-insert into the_content.<\/li>\n<li><strong>Admin chart<\/strong> \u2014 per-post hourly \/ daily \/ monthly histogram with period switcher.<\/li>\n<li><strong>Performance<\/strong> \u2014 3-tier cache (request memo + object cache + transient), optional batch-write buffer for high-traffic sites.<\/li>\n<li><strong>Capabilities<\/strong> \u2014 role-based access via the <code>mostify_edit<\/code> and <code>mostify_view<\/code> capabilities.<\/li>\n<li><strong>Privacy<\/strong> \u2014 no third-party tracking. View tracking happens entirely on your own server.<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>Mostify stores anonymous, per-post view counts on your own database. No personal data, no IP addresses, and no third-party services are involved. The view-tracking AJAX endpoint sets a single first-party cookie (<code>mostify_v_&lt;post_id&gt;<\/code>, default 3-hour TTL) used solely for deduplication; cookie name and TTL are filterable. The plugin makes no outbound HTTP calls.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>mostify<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, <strong>or<\/strong> install directly from the WordPress admin via <em>Plugins \u2192 Add New \u2192 Search \"Mostify\"<\/em>.<\/li>\n<li>Activate through the <em>Plugins<\/em> screen.<\/li>\n<li>Visit <em>Settings \u2192 Mostify<\/em> to configure tracking and view the shortcode builder.<\/li>\n<li><p>Drop the shortcode anywhere:<\/p>\n\n<p>[mostify counter=\"views\" limit=\"10\" period=\"this_week\"]<\/p>\n\n<p>\u2026or build a multi-tab ranking that switches between several periods:<\/p>\n\n<p>[mostify counter=\"views\" limit=\"5\" tabs=\"Today:today:DESC,This Week:this_week:DESC,All Time:all_time:DESC\" tab_style=\"tabs-horizontal\"]<\/p>\n\n<p>\u2026or use <em>Appearance \u2192 Widgets<\/em> to drop the <strong>Mostify \u2014 Popular Posts<\/strong> widget into a sidebar, or insert the <strong>Mostify Ranking<\/strong> block in the Gutenberg editor.<\/p><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20call%20any%20external%20service%3F\"><h3>Does the plugin call any external service?<\/h3><\/dt>\n<dd><p>No. View tracking, ranking queries, and chart rendering all happen on your own server. The plugin makes no outbound HTTP calls.<\/p><\/dd>\n<dt id=\"how%20are%20page%20views%20counted%3F\"><h3>How are page views counted?<\/h3><\/dt>\n<dd><p>A small JavaScript snippet sends a one-shot AJAX request after the page loads. The server checks a per-visitor cookie (3-hour window by default, filterable) and a User-Agent allowlist before incrementing the counter. Admins can be excluded via <em>Settings \u2192 Mostify \u2192 Exclude admins from tracking<\/em>.<\/p><\/dd>\n<dt id=\"is%20bot%20traffic%20excluded%3F\"><h3>Is bot traffic excluded?<\/h3><\/dt>\n<dd><p>Yes \u2014 there's a built-in User-Agent allowlist covering the long tail of search-engine crawlers, AI scrapers, social link-preview fetchers, and CLI\/programmatic clients. You can extend it with the <code>mostify_bot_patterns<\/code> filter.<\/p><\/dd>\n<dt id=\"i%20already%20use%20another%20view-counter%20plugin.%20can%20i%20keep%20my%20existing%20counts%3F\"><h3>I already use another view-counter plugin. Can I keep my existing counts?<\/h3><\/dt>\n<dd><p>Yes. When Mostify detects a supported counter plugin \u2014 WordPress Popular Posts, Post Views Counter, WP-PostViews, WP Statistics, Top 10 \u2014 Popular Posts, or Jetpack Stats \u2014 a migration banner appears at the top of <em>Settings \u2192 Mostify \u2192 Counter<\/em>. Click <strong>Import<\/strong> to copy each post's lifetime view total into Mostify. The import runs in the background in batches with a live progress bar, so you can leave the page and come back. When it finishes, Mostify reminds you to deactivate the old plugin to avoid double-counting. You can also register your own source via the <code>mostify_views_migration_adapters<\/code> filter.<\/p><\/dd>\n<dt id=\"can%20i%20show%20more%20than%20one%20time%20period%20at%20once%3F\"><h3>Can I show more than one time period at once?<\/h3><\/dt>\n<dd><p>Yes \u2014 that's what multi-tab layouts are for. Add tabs in the widget form, the block's <em>Tabs<\/em> panel, or the shortcode's <code>tabs<\/code> attribute (<code>Name:period:Sort<\/code> pairs separated by commas). Each tab gets its own period and sort order. Pick a <code>tab_style<\/code> of <code>tabs-horizontal<\/code>, <code>tabs-vertical<\/code>, <code>accordion-horizontal<\/code>, or <code>accordion-vertical<\/code>. Leave tabs empty and Mostify renders a single period exactly as before.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20rendered%20html%3F\"><h3>Can I customize the rendered HTML?<\/h3><\/dt>\n<dd><p>Yes. The renderer exposes <code>mostify_render_html<\/code>, <code>mostify_list_html<\/code>, and <code>mostify_list_item_html<\/code> filters so themes can swap markup, inject columns, or override empty-state output.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>The view-tracking AJAX call happens after the page is delivered, so static-cached HTML still triggers a fresh tracking call per visitor. Ranking queries use a 5-minute transient + object-cache layer that any cache plugin can extend.<\/p><\/dd>\n<dt id=\"how%20do%20i%20report%20a%20bug%3F\"><h3>How do I report a bug?<\/h3><\/dt>\n<dd><p>Use the <em>Support<\/em> tab on the <a href=\"https:\/\/wordpress.org\/plugins\/mostify\/\">Mostify plugin directory page<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Multi-tab layouts \u2014 show several time periods side by side in one block, each tab with its own period and sort order. Choose from 4 tab styles: horizontal tabs, vertical tabs, horizontal accordion, vertical accordion. Available in the shortcode (<code>tabs<\/code> \/ <code>tab_style<\/code> attributes), classic widget, and Gutenberg block. Existing single-period shortcodes, widgets, and blocks render unchanged.<\/li>\n<li>New: Views migration \u2014 one-click background import of lifetime view counts from WordPress Popular Posts, Post Views Counter, WP-PostViews, WP Statistics, Top 10 \u2014 Popular Posts, and Jetpack Stats, with a detection banner on the Counter tab, live progress, and a post-import deactivation reminder. Extensible via the <code>mostify_views_migration_adapters<\/code> filter.<\/li>\n<li>New: Pro tab under Settings \u2192 Mostify \u2014 a Free vs Pro feature comparison with a single \"Get Pro\" button. The outbound link is filterable via <code>mostify_pro_url<\/code>.<\/li>\n<li>New: One-time welcome notice after a fresh install, linking to the Pro comparison tab. Dismissible and shown only once \u2014 it never appears on updates or reactivation.<\/li>\n<li>New: \"Upgrade to Pro\" action link under the plugin name on the Plugins screen.<\/li>\n<li>No database schema changes \u2014 safe to update.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release on the WordPress Plugin Directory.<\/li>\n<li>Page-views counter with bot detection and per-visitor dedup cookie.<\/li>\n<li>Comments counter (auto-approved + admin-approved transitions).<\/li>\n<li>List rendering with 4 list styles and 10 color presets.<\/li>\n<li>13 built-in time-period presets plus a custom-period builder (<code>custom_hours_N<\/code>, <code>custom_days_N<\/code>, <code>custom_months_N<\/code>).<\/li>\n<li>Shortcode, classic widget, Gutenberg block, post-editor meta box, and auto-insert display surfaces.<\/li>\n<li>Per-post chart with hourly \/ daily \/ monthly granularity in the admin meta box.<\/li>\n<li>Optional batch-write buffer for high-traffic sites.<\/li>\n<li>Role-based access via the <code>mostify_edit<\/code> \/ <code>mostify_view<\/code> capabilities.<\/li>\n<\/ul>","raw_excerpt":"Lightweight popular-posts engine. Track page views and comments, display top posts by today, this week, this month, or all-time.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/306474","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=306474"}],"author":[{"embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ducntnz"}],"wp:attachment":[{"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=306474"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=306474"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=306474"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=306474"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=306474"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/eo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=306474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}