{"id":363834,"date":"2026-09-09T15:06:47","date_gmt":"2026-09-09T15:06:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dalmatian-dream-post-views\/"},"modified":"2026-09-14T17:47:32","modified_gmt":"2026-09-14T17:47:32","slug":"dalmatian-dream-post-views","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/dalmatian-dream-post-views\/","author":15344623,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.9.2","stable_tag":"2.9.2","tested":"7.1","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"DD Post Views","header_author":"Marin Horvat","header_description":"Lightweight post view counter with a custom database table, localStorage cooldown, and optimized admin display.","assets_banners_color":"bad7f6","last_updated":"2026-09-14 17:47:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/dalmatiandream.com","header_author_uri":"https:\/\/horvat.info","rating":0,"author_block_rating":0,"active_installs":0,"downloads":85,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.9.1":{"tag":"2.9.1","author":"whitedd","date":"2026-09-09 15:06:23","revision":3688526},"2.9.2":{"tag":"2.9.2","author":"whitedd","date":"2026-09-14 17:47:32","revision":3695689}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3695750,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3695750,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3695723,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3695723,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.9.1","2.9.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[232,869,5990,872],"plugin_category":[36],"plugin_contributors":[275315],"plugin_business_model":[],"class_list":["post-363834","plugin","type-plugin","status-publish","hentry","plugin_tags-analytics","plugin_tags-counter","plugin_tags-post-views","plugin_tags-views","plugin_category-analytics","plugin_contributors-whitedd","plugin_committers-whitedd"],"banners":{"banner":"https:\/\/ps.w.org\/dalmatian-dream-post-views\/assets\/banner-772x250.png?rev=3695723","banner_2x":"https:\/\/ps.w.org\/dalmatian-dream-post-views\/assets\/banner-1544x500.png?rev=3695723","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dalmatian-dream-post-views\/assets\/icon-128x128.png?rev=3695750","icon_2x":"https:\/\/ps.w.org\/dalmatian-dream-post-views\/assets\/icon-256x256.png?rev=3695750","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>DD Post Views counts published post views for guests while preserving compatibility with full-page cache systems. It stores counts in the existing <code>dd_post_views<\/code> table, uses localStorage for a lightweight visitor cooldown, and avoids per-visitor transient records.<\/p>\n\n<p>Logged-in users are not counted. A simple User-Agent bot filter is used for noise reduction. The plugin does not use external services and does not send view data to third parties.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>dalmatian-dream-post-views<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin ZIP through the WordPress Plugins screen.<\/li>\n<li>Activate the plugin through the Plugins screen in WordPress.<\/li>\n<li>View counts appear in the Posts list and in the post editor metabox.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20reset%20existing%20view%20counts%3F\"><h3>Does this reset existing view counts?<\/h3><\/dt>\n<dd><p>No. Version 2.9.1 keeps using the existing <code>{$wpdb-&gt;prefix}dd_post_views<\/code> table with the same <code>id<\/code> and <code>count<\/code> columns.<\/p><\/dd>\n<dt id=\"are%20logged-in%20users%20counted%3F\"><h3>Are logged-in users counted?<\/h3><\/dt>\n<dd><p>No. Logged-in users are intentionally ignored.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20page%20cache%20plugins%3F\"><h3>Does this work with page cache plugins?<\/h3><\/dt>\n<dd><p>Yes. Views are counted with a client-side REST request after the page loads, so cached post pages can still trigger view counting.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20store%20personal%20data%20or%20use%20cookies%3F\"><h3>Does the plugin store personal data or use cookies?<\/h3><\/dt>\n<dd><p>The plugin does not set cookies and does not store IP addresses or other visitor identifiers in WordPress. It uses the visitor's browser localStorage only to remember the timestamp of a view for each post during the cooldown period.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20use%20xml-rpc%20or%20expose%20a%20rest%20api%20endpoint%3F\"><h3>Does the plugin use XML-RPC or expose a REST API endpoint?<\/h3><\/dt>\n<dd><p>The plugin does not register XML-RPC methods. Guest view counting uses a public REST endpoint that accepts only a valid published post ID and performs a minimal atomic database increment.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.9.1<\/h4>\n\n<ul>\n<li>Removed the unsupported <code>Tested up to<\/code> header from the main plugin PHP file.<\/li>\n<li>Replaced short internal <code>dd<\/code> identifiers with a unique <code>ddpostviews<\/code> prefix to reduce conflicts with other plugins and themes.<\/li>\n<li>Preserved the existing <code>{$wpdb-&gt;prefix}dd_post_views<\/code> database table and all historical view counts.<\/li>\n<li>Kept the public cache-friendly REST counting behavior unchanged.<\/li>\n<\/ul>\n\n<h4>2.9.0<\/h4>\n\n<ul>\n<li>Replaced frontend admin-ajax view tracking with a lightweight REST endpoint.<\/li>\n<li>Preserved existing view data and database schema.<\/li>\n<li>Retained client-side localStorage cooldown to avoid duplicate requests.<\/li>\n<li>Reduced WordPress request overhead for frontend view tracking.<\/li>\n<\/ul>\n\n<h4>2.8.2<\/h4>\n\n<ul>\n<li>Changed source-language interface strings to English for WordPress.org internationalization.<\/li>\n<li>Updated custom-table queries to use the WordPress identifier placeholder supported by the declared minimum WordPress version.<\/li>\n<li>Expanded privacy, XML-RPC, REST API, and external-service documentation.<\/li>\n<li>Preserved the existing database table and all historical view counts.<\/li>\n<\/ul>\n\n<h4>2.8.1<\/h4>\n\n<ul>\n<li>Preserved WordPress 5.8 compatibility while documenting unavoidable custom table SQL identifier checks.<\/li>\n<li>Kept the existing <code>dd_post_views<\/code> table and all historical view counts unchanged.<\/li>\n<\/ul>\n\n<h4>2.8.0<\/h4>\n\n<ul>\n<li>Fixed the 30-minute visitor cooldown calculation.<\/li>\n<li>Optimized view counting to avoid an unnecessary database read.<\/li>\n<li>Improved WordPress security and sanitization compliance.<\/li>\n<li>Added internationalization support.<\/li>\n<li>Updated branding to DD Post Views.<\/li>\n<li>Improved WordPress.org and Plugin Check compatibility.<\/li>\n<li>Removed development backup files from the release package.<\/li>\n<li>Preserved all existing historical view counts.<\/li>\n<\/ul>","raw_excerpt":"Lightweight post view counting for WordPress posts using a custom database table and client-side cache-friendly REST counting.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/363834","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=363834"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/whitedd"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=363834"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=363834"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=363834"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=363834"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=363834"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=363834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}