{"id":323429,"date":"2026-06-09T07:41:48","date_gmt":"2026-06-09T07:41:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/levelnetwork-wrt-reading-tools\/"},"modified":"2026-06-23T08:30:11","modified_gmt":"2026-06-23T08:30:11","slug":"levelnetwork-wrt-reading-tools","status":"publish","type":"plugin","link":"https:\/\/de.wordpress.org\/plugins\/levelnetwork-wrt-reading-tools\/","author":23278737,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.4","stable_tag":"1.1.4","tested":"7.0","requires":"5.4","requires_php":"7.4","requires_plugins":null,"header_name":"Reading Tools: Word Count & View Counter with Accessibility Tools","header_author":"LevelNetwork.it","header_description":"Displays word count, reading time, view count, font resizer, and accessibility tools for posts and pages.","assets_banners_color":"395275","last_updated":"2026-06-23 08:30:11","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/donate?hosted_button_id=5MGAYLG6QTUZG","header_plugin_uri":"","header_author_uri":"https:\/\/www.levelnetwork.it","rating":0,"author_block_rating":0,"active_installs":0,"downloads":153,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.3":{"tag":"1.1.3","author":"sonofgod80","date":"2026-06-19 15:18:06"},"1.1.4":{"tag":"1.1.4","author":"sonofgod80","date":"2026-06-23 08:30:11"}},"upgrade_notice":{"1.1.4":"<p>Introduced granular Post and Page ID exclusions to block automatic toolbar rendering where unwanted, and corrected interactive admin preview button events.<\/p>","1.1.3":"<p>Introduced 50 built-in color palettes and a redesigned, professional settings page layout! To comply with WordPress.org security standards, the Custom CSS field has been removed (please use the native WP Customizer instead). JavaScript files have also been reformatted for compliance.<\/p>","1.1.2":"<p>Major update! Full WP.org directory compliance (code refactored to lnwrt_). Added CSS Exclude selectors (ignore ads\/boxes), live admin previews, new contrast icons, and word count target selector. Fixed AJAX and PHP bugs. Use [lnwrt_only_tools] shortcode.<\/p>","1.1.1":"<p>Minor fixes and refinements for styles and JS.<\/p>","1.1.0":"<p>Major feature update! Adds Reset\/Contrast\/Print buttons, advanced View Counter options, and configurable WPM\/Cookie settings. Note: Several shortcodes were removed in v1.1.2. Review new settings under Settings &gt; Reading Tools.<\/p>","1.0.0":"<p>Initial release. Configure options under Settings &gt; Reading Tools. Ensure &quot;Target Selectors&quot; are set correctly.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3565588,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3565588,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3565588,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3565588,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3582859,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/options-general.php?page=lnwrt-reading-tools-settings\",\"preferredVersions\":{\"php\":\"8.1\",\"wp\":\"latest\"},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"importWxr\",\"file\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/plugins.svn.wordpress.org\\\/levelnetwork-wrt-reading-tools\\\/assets\\\/blueprints\\\/articles-demo.xml\"}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"levelnetwork-wrt-reading-tools\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":[],"tagged_versions":["1.1.3","1.1.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3565588,"resolution":"1","location":"assets","locale":"","width":1037,"height":1071},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3565588,"resolution":"2","location":"assets","locale":"","width":1344,"height":1179},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3565588,"resolution":"3","location":"assets","locale":"","width":1337,"height":884},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3565588,"resolution":"4","location":"assets","locale":"","width":1337,"height":1218},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3565588,"resolution":"5","location":"assets","locale":"","width":1334,"height":425},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3565588,"resolution":"6","location":"assets","locale":"","width":325,"height":298}},"screenshots":{"1":"The reading tools bar displayed on a sample post.","2":"Admin Settings: Display and Target Settings.","3":"Admin Settings: Components &amp; Options (showing WPM, View Count options, Cookie Expiry).","4":"Admin Settings: Toolbar Buttons section (showing button toggles and Contrast Icon select).","5":"Admin Settings: Color Palette selection with Live Preview area above.","6":"Admin Settings: Shortcodes (Showing available ones) and Tips &amp; Tricks sections.","7":"The \"WRT View Stats\" metabox in the post editor with Reset button."}},"plugin_section":[],"plugin_tags":[1953,267935,27629,23753,524],"plugin_category":[34],"plugin_contributors":[263723],"plugin_business_model":[],"class_list":["post-323429","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-font-size-resizer","plugin_tags-reading-time","plugin_tags-view-counter","plugin_tags-word-count","plugin_category-accessibility","plugin_contributors-sonofgod80","plugin_committers-sonofgod80"],"banners":{"banner":"https:\/\/ps.w.org\/levelnetwork-wrt-reading-tools\/assets\/banner-772x250.png?rev=3565588","banner_2x":"https:\/\/ps.w.org\/levelnetwork-wrt-reading-tools\/assets\/banner-1544x500.png?rev=3565588","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/levelnetwork-wrt-reading-tools\/assets\/icon-128x128.png?rev=3565588","icon_2x":"https:\/\/ps.w.org\/levelnetwork-wrt-reading-tools\/assets\/icon-256x256.png?rev=3565588","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/levelnetwork-wrt-reading-tools\/assets\/screenshot-1.png?rev=3565588","caption":"The reading tools bar displayed on a sample post."},{"src":"https:\/\/ps.w.org\/levelnetwork-wrt-reading-tools\/assets\/screenshot-2.png?rev=3565588","caption":"Admin Settings: Display and Target Settings."},{"src":"https:\/\/ps.w.org\/levelnetwork-wrt-reading-tools\/assets\/screenshot-3.png?rev=3565588","caption":"Admin Settings: Components &amp; Options (showing WPM, View Count options, Cookie Expiry)."},{"src":"https:\/\/ps.w.org\/levelnetwork-wrt-reading-tools\/assets\/screenshot-4.png?rev=3565588","caption":"Admin Settings: Toolbar Buttons section (showing button toggles and Contrast Icon select)."},{"src":"https:\/\/ps.w.org\/levelnetwork-wrt-reading-tools\/assets\/screenshot-5.png?rev=3565588","caption":"Admin Settings: Color Palette selection with Live Preview area above."},{"src":"https:\/\/ps.w.org\/levelnetwork-wrt-reading-tools\/assets\/screenshot-6.png?rev=3565588","caption":"Admin Settings: Shortcodes (Showing available ones) and Tips &amp; Tricks sections."}],"raw_content":"<!--section=description-->\n<p>Did you know that displaying an <strong>estimated reading time<\/strong> can increase user engagement and significantly lower your bounce rate? Readers love predictability. By giving them clear reading meta insights and powerful accessibility tools, you transform your standard WordPress layout into a premium, reader-friendly environment like Medium or Wikipedia.<\/p>\n\n<p><strong>LevelNetwork WRT Reading Tools<\/strong> is the ultimate all-in-one engagement toolkit for content creators, bloggers, and magazine websites. It effortlessly injects a beautiful, fully customizable utility bar into your posts or pages, combining data transparency with modern accessibility features.<\/p>\n\n<h3>Why Choose WRT Reading Tools?<\/h3>\n\n<ul>\n<li><strong>Drive Higher Engagement:<\/strong> Showing reading stats encourages visitors to stay and complete the article, boosting your site's SEO dwell time.<\/li>\n<li><strong>Flawless Cache-Compatible View Tracking:<\/strong> Unlike other broken statistics plugins, our advanced post view counter bypasses server-side caching (WP Rocket, Cloudflare, LiteSpeed) via dynamic AJAX tracking.<\/li>\n<li><strong>A Visual Match For Any Theme:<\/strong> Choose from <strong>50 built-in professional color palettes<\/strong> with a stunning live admin preview area to mirror your brand perfectly.<\/li>\n<li><strong>100% GDPR Compliant &amp; Lightweight:<\/strong> No external tracking scripts, no heavy dependencies, no cookies storing personal data. Just clean, optimized code.<\/li>\n<\/ul>\n\n\n\n<h3>Core Features Built for Modern Blogs<\/h3>\n\n<ul>\n<li><strong>Dynamic Word Count &amp; Reading Time:<\/strong> Automatically calculates the exact words in your content and reveals the read time based on custom Words Per Minute (WPM) speed.<\/li>\n<li><strong>Exclude Selectors (Anti-Bloat Tech):<\/strong> Uniquely ignore injected ads, related post boxes, or author bios from your word count, print layouts, and font resizing for 100% accurate statistics.<\/li>\n<li><strong>Granular Post\/Page ID Exclusions:<\/strong> Suppress the automatic display of the toolbar on specific individual pieces of content by entering their IDs directly in the display settings.<\/li>\n<li><strong>Advanced Post View Counter:<\/strong> Track page popularity safely with nonces and custom cookie durations. Features a custom 'Start Value' to reflect prior historic traffic.<\/li>\n<li><strong>Interactive Font Size Resizer:<\/strong> Empower readers with user-friendly <code>+<\/code> \/ <code>-<\/code> and Reset buttons. Their text preference is saved seamlessly via LocalStorage.<\/li>\n<li><strong>Instant Contrast \/ Night Mode Toggle:<\/strong> Enhance readability in low-light environments. Select your favorite access icon directly from the backend.<\/li>\n<li><strong>Targeted Clean Print Engine:<\/strong> Prints exclusively the core article body through a hidden background iframe, removing noisy sidebars, headers, and navigation menus.<\/li>\n<\/ul>\n\n\n\n<h3>Clean Admin Interface &amp; Theme Compatibility<\/h3>\n\n<p>Managing your reader experience shouldn't be difficult. The redesigned <strong>two-column settings dashboard<\/strong> provides blockquote explanations for every single field, alongside shortcode references and layout tips.<\/p>\n\n<ul>\n<li>Fully works with custom CSS selectors (<code>.entry-content<\/code>, <code>#main<\/code>, etc.) to hook perfectly into any modern WordPress theme, block editor, or page builder.<\/li>\n<li>Handled automatically: Excluded from homepages and catalog views, with a responsive utility layer to hide the bar on mobile screens if desired.<\/li>\n<li>Dedicated <strong>Shortcode<\/strong> <code>[lnwrt_only_tools]<\/code> for flexible manual widget placement or structural sidebars.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Go to your WordPress Dashboard, navigate to <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Click <strong>Upload Plugin<\/strong> and select the <code>levelnetwork-wrt-reading-tools.zip<\/code> file.<\/li>\n<li>Install and <strong>Activate<\/strong> the plugin.<\/li>\n<li>Navigate to <strong>Settings &gt; Reading Tools<\/strong> to configure your core Target Selectors.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20prevent%20the%20plugin%20from%20counting%20or%20resizing%20ads%2C%20related%20posts%2C%20or%20author%20boxes%3F\"><h3>How do I prevent the plugin from counting or resizing ads, related posts, or author boxes?<\/h3><\/dt>\n<dd><p>Go to <code>Settings &gt; Reading Tools &gt; Target Selectors<\/code> and use the \"Exclude Selector CSS\" field. Enter the CSS classes or IDs (separated by commas, e.g., <code>.ad-banner, .related-posts, #author-box<\/code>) of the elements you want the plugin to completely ignore.<\/p><\/dd>\n<dt id=\"how%20do%20i%20hide%20the%20toolbar%20on%20specific%20posts%20or%20pages%3F\"><h3>How do I hide the toolbar on specific posts or pages?<\/h3><\/dt>\n<dd><p>Go to <code>Settings &gt; Reading Tools &gt; Display Settings<\/code> and locate the \"Exclude IDs\" field. Enter the numeric IDs separated by commas (e.g., <code>12, 45, 102<\/code>). This option is automatically disabled if you set \"Show On\" to \"Manual Placement Only\".<\/p><\/dd>\n<dt id=\"the%20font%20resizer%20%28%2B%2F-%20buttons%29%20doesn%27t%20work.\"><h3>The Font Resizer (+\/- buttons) doesn't work.<\/h3><\/dt>\n<dd><p>Go to <code>Settings &gt; Reading Tools &gt; Target Selectors<\/code>. Ensure the \"Font Resizer Target\" field contains the correct CSS selector for your theme's main text container (e.g., <code>.entry-content<\/code>).<\/p><\/dd>\n<dt id=\"the%20print%20button%20prints%20the%20wrong%20content%20or%20the%20whole%20page.\"><h3>The Print button prints the wrong content or the whole page.<\/h3><\/dt>\n<dd><p>Go to <code>Settings &gt; Reading Tools &gt; Target Selectors<\/code>. Ensure the \"Clean Print Target\" field contains the correct CSS selector for the <em>specific<\/em> content block you want to print.<\/p><\/dd>\n<dt id=\"the%20bar%20appears%20in%20unwanted%20places%20%28widgets%2C%20etc.%29.\"><h3>The bar appears in unwanted places (widgets, etc.).<\/h3><\/dt>\n<dd><p>Go to Appearance &gt; Customize &gt; Additional CSS in your WordPress dashboard to hide the bar in specific locations using standard CSS. Use browser \"Inspect Element\" to find a unique parent selector for the unwanted area (e.g., <code>#sidebar .widget .lnwrt-reading-tools-bar { display: none; }<\/code>).<\/p><\/dd>\n<dt id=\"view%20counter%20shows%200%20or%20doesn%27t%20update%3F\"><h3>View Counter shows 0 or doesn't update?<\/h3><\/dt>\n<dd><ol>\n<li><strong>Enable It:<\/strong> Check \"View Count\" under <code>Settings &gt; Reading Tools &gt; Components &amp; Options<\/code>.<\/li>\n<li><strong>Clear Caches:<\/strong> Crucial! Clear all caches (plugin, server, CDN, browser) and test in an Incognito window.<\/li>\n<li><strong>Admins Ignored:<\/strong> Logged-in admins are not counted. Test logged out.<\/li>\n<li><strong>Cookie Expiry:<\/strong> Wait for the cookie (check setting) or use Incognito.<\/li>\n<li><strong>Check Console:<\/strong> Look for JS errors or failed AJAX requests (F12 &gt; Console \/ Network).<\/li>\n<\/ol><\/dd>\n<dt id=\"how%20do%20i%20reset%20the%20view%20count%3F\"><h3>How do I reset the View Count?<\/h3><\/dt>\n<dd><p>Edit the post\/page, find the \"WRT View Stats\" metabox, click \"Reset\". The count updates after refresh.<\/p><\/dd>\n<dt id=\"how%20does%20the%20%22start%20value%22%20for%20views%20work%3F\"><h3>How does the \"Start Value\" for views work?<\/h3><\/dt>\n<dd><p>Sets the base number <em>before<\/em> the first view is counted. Example: Start Value 100 -&gt; first visitor makes count 101. A per-post override (set via metabox <em>before<\/em> first view) takes precedence.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20reading%20speed%20%28wpm%29%20%2F%20view%20count%20cookie%20duration%3F\"><h3>Can I change the Reading Speed (WPM) \/ View Count Cookie Duration?<\/h3><\/dt>\n<dd><p>Yes, under <code>Settings &gt; Reading Tools &gt; Components &amp; Options<\/code>.<\/p><\/dd>\n<dt id=\"why%20might%20the%20word%20count%2Fread%20time%20seem%20slightly%20off%20compared%20to%20other%20tools%3F\"><h3>Why might the Word Count\/Read Time seem slightly off compared to other tools?<\/h3><\/dt>\n<dd><p>By default, the calculation is based on the text content after WordPress filters have run. For perfect accuracy, use the \"Word Count Target\" and \"Exclude Selector CSS\" settings to define exactly which areas should and shouldn't be counted.<\/p><\/dd>\n<dt id=\"what%20shortcodes%20are%20available%3F\"><h3>What shortcodes are available?<\/h3><\/dt>\n<dd><ul>\n<li><code>[lnwrt_only_tools]<\/code>: Displays only the interactive buttons (Resizer, Reset, Contrast, Print) based on enabled settings. Useful for manual placement. Requires plugin assets (JS\/CSS) to be loaded on the page.<\/li>\n<\/ul><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Feature: Added \"Exclude IDs\" option to skip automatic toolbar injection on specified individual post\/page IDs.<\/li>\n<li>UX: Implemented real-time jQuery toggles to natively disable and fade the \"Exclude IDs\" input container when \"Manual Placement Only\" is selected.<\/li>\n<li>Performance: Optimized frontend script handling to avoid asset loading entirely on excluded content IDs.<\/li>\n<li>Fix: Adjusted form button attributes in the administration page to prevent accidental backend form submission when interacting with the live layout preview.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Feature: Added new Color Palettes, bringing the total to 50 beautifully crafted options!<\/li>\n<li>Refinement: Redesigned the settings page with a professional two-column layout and a sidebar for support and resources.<\/li>\n<li>Compliance\/Security: Removed the Custom CSS field to comply with strict WordPress.org security guidelines (users should now use the native Appearance &gt; Customize &gt; Additional CSS).<\/li>\n<li>Fix: Fully un-minified and formatted frontend JavaScript to meet WordPress.org human-readable source code requirements.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Refinement: Complete codebase refactoring (prefixes, text domain, styles updated to <code>lnwrt_<\/code> and <code>LevelNetwork<\/code>) to comply with strict WordPress.org guidelines.<\/li>\n<li>Feature: Added powerful \"Exclude Selector CSS\" to perfectly ignore specific elements (ads, related posts) from word count, resizing, and printing.<\/li>\n<li>Feature: Added Contrast Button Icon selection.<\/li>\n<li>Feature: Added Live Preview for Palettes\/Icons in settings.<\/li>\n<li>Feature: Added specific CSS Selector setting for Word Count calculation.<\/li>\n<li>Fix: Resolved AJAX, JS initialization, and PHP Deprecated errors.<\/li>\n<li>Refinement: Shortcodes updated; removed unstable single-data ones, kept <code>[lnwrt_only_tools]<\/code>.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix: Corrected CSS variable usage for button backgrounds with dark palettes.<\/li>\n<li>Fix: Ensured JS initializes correctly regardless of enabled components.<\/li>\n<li>Fix: Resolved PHP warnings\/notices (duplicate constants, deprecated functions).<\/li>\n<li>Refinement: Centralized constant definitions.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Feature: Added Font Size Reset button.<\/li>\n<li>Feature: Added Contrast\/Night Mode toggle button.<\/li>\n<li>Feature: Added Clean Print button.<\/li>\n<li>Feature: Added Configurable Print Area CSS Selector setting.<\/li>\n<li>Feature: Added Configurable Words Per Minute (WPM) setting.<\/li>\n<li>Feature: Added Configurable Cookie Expiry setting for view counter.<\/li>\n<li>Feature: Added View Count Reset button in Post Editor Metabox.<\/li>\n<li>Feature: Added Global and Per-Post Start Value options for View Counter.<\/li>\n<li>Update: View Counter calculation now respects start values.<\/li>\n<li>Fix: Improved context checking to prevent bar display in widgets.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Boost engagement with a reading progress bar, automatic reading time estimation, live word count, accurate post view counter for your WordPress site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/323429","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=323429"}],"author":[{"embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sonofgod80"}],"wp:attachment":[{"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=323429"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=323429"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=323429"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=323429"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=323429"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/de.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=323429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}