{"id":238895,"date":"2026-01-30T23:23:28","date_gmt":"2026-01-30T23:23:28","guid":{"rendered":"https:\/\/es.wordpress.org\/plugins\/read-more-universal\/"},"modified":"2026-01-30T23:25:00","modified_gmt":"2026-01-30T23:25:00","slug":"read-more-universal","status":"publish","type":"plugin","link":"https:\/\/dv.wordpress.org\/plugins\/read-more-universal\/","author":49251,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3.5","stable_tag":"1.3.5","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Read More Universal","header_author":"David Carrero Fern\u00e1ndez-Baillo","header_description":"Universal \"Read More\" system that automatically adapts to Twenty Twenty-Five, Astra, Elementor and other popular themes.","assets_banners_color":"fafaf7","last_updated":"2026-01-30 23:25:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/dcarrero\/read-more-universal","header_author_uri":"https:\/\/carrero.es","rating":0,"author_block_rating":0,"active_installs":0,"downloads":124,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.5":{"tag":"1.3.5","author":"dcarrero","date":"2026-01-30 23:25:00"}},"upgrade_notice":{"1.3.5":"<p>Maintenance release for WordPress.org directory submission. No breaking changes.<\/p>","1.3.0":"<p>Prefix changed from <code>rmu<\/code> to <code>colorvivo_read_more_universal<\/code>. Legacy <code>rmu_*<\/code> support has been removed. Update custom code and overrides to new filters\/options\/meta.<\/p>","1.2.1":"<p>This update fixes security warnings related to input sanitization for the <code>rmu_apply_to<\/code> setting. Update to ensure compliance with WordPress coding standards. Back up your settings before upgrading.<\/p>","1.2.0":"<p>This update adds per-post\/page control, support for pages and archives, Divi\/WPBakery compatibility, accessibility improvements, developer filters, and a smoother user experience. Update <code>read-more-universal.php<\/code> to fix a syntax error from previous versions. Back up your settings before upgrading.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3450742,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3450742,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3450742,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3450742,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.3.5"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1953,232,254978,2447,158779],"plugin_category":[34,36],"plugin_contributors":[254979],"plugin_business_model":[],"class_list":["post-238895","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-analytics","plugin_tags-content-truncation","plugin_tags-read-more","plugin_tags-theme-compatibility","plugin_category-accessibility","plugin_category-analytics","plugin_contributors-dcarrero","plugin_committers-dcarrero"],"banners":{"banner":"https:\/\/ps.w.org\/read-more-universal\/assets\/banner-772x250.png?rev=3450742","banner_2x":"https:\/\/ps.w.org\/read-more-universal\/assets\/banner-1544x500.png?rev=3450742","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/read-more-universal\/assets\/icon-128x128.png?rev=3450742","icon_2x":"https:\/\/ps.w.org\/read-more-universal\/assets\/icon-256x256.png?rev=3450742","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Read More Universal is a lightweight (~4KB) WordPress plugin that automatically adds a \"Read More\" button to long content, enhancing user engagement and site performance. It intelligently detects your theme (e.g., Twenty Twenty-Five, Astra, Elementor, Divi, WPBakery) and applies the appropriate CSS selectors for seamless integration. No database queries are used, ensuring optimal performance.<\/p>\n\n<p>Key features include:\n- <strong>Automatic Theme Detection<\/strong>: Supports 20+ popular themes, including Twenty series, Astra, GeneratePress, OceanWP, Elementor, Divi, WPBakery, and more.\n- <strong>Customizable Settings<\/strong>: Adjust minimum character count, content height, button text, colors, and border radius.\n- <strong>Per-Post\/Page Control<\/strong>: Enable or disable the \"Read More\" feature on individual posts or pages via a metabox.\n- <strong>Multi-Context Support<\/strong>: Apply the \"Read More\" button to posts, pages, and archives (home, categories, tags).\n- <strong>Accessibility Compliance<\/strong>: Includes ARIA attributes and keyboard navigation support (Enter\/Space keys).\n- <strong>Analytics Integration<\/strong>: Tracks \"Read More\" clicks with Google Analytics (GA4 and Universal) and Facebook Pixel.\n- <strong>Smooth Animations<\/strong>: Enhanced content expansion with CSS transitions for a better user experience.\n- <strong>Multilingual Support<\/strong>: Available in English, Spanish, French, German, Italian, and Portuguese.\n- <strong>Debug Mode<\/strong>: Detailed console logging for troubleshooting theme compatibility.\n- <strong>Developer-Friendly<\/strong>: Includes filters (<code>colorvivo_read_more_universal_min_characters<\/code>, <code>colorvivo_read_more_universal_button_text<\/code>, <code>colorvivo_read_more_universal_theme_selectors<\/code>) for customization.\n- <strong>SEO-Friendly<\/strong>: Full content remains in the HTML for search engine indexing.<\/p>\n\n<p>The plugin is designed to be plug-and-play, requiring zero configuration for most themes, with advanced options for power users.<\/p>\n\n<h3>Additional Notes<\/h3>\n\n<ul>\n<li>The plugin is SEO-friendly, keeping full content in the HTML.<\/li>\n<li>No database queries ensure high performance.<\/li>\n<li>Compatible with WordPress 5.0+ and PHP 7.4+.<\/li>\n<li>For support, visit https:\/\/github.com\/dcarrero\/read-more-universal.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>read-more-universal<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>(Optional) Configure settings under <strong>Settings &gt; Read More Universal<\/strong> to customize the button appearance, content length, and application scope.<\/li>\n<li>(Optional) Use the metabox in the post\/page editor to enable\/disable the \"Read More\" feature for specific content.<\/li>\n<li>Enable debug mode in settings to troubleshoot theme compatibility if needed.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20themes%20are%20supported%3F\"><h3>Which themes are supported?<\/h3><\/dt>\n<dd><p>The plugin automatically detects and supports popular themes including Twenty Twenty-Five, Twenty Twenty-Four, Twenty Twenty-Three, Astra, GeneratePress, OceanWP, Elementor Hello, Divi, WPBakery, and more. It includes a generic fallback for other themes.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20button%20appearance%3F\"><h3>Can I customize the button appearance?<\/h3><\/dt>\n<dd><p>Yes! You can customize the button text, background color, text color, and border radius in the settings panel. A live preview is available to see changes in real-time.<\/p><\/dd>\n<dt id=\"can%20i%20control%20where%20the%20%22read%20more%22%20button%20appears%3F\"><h3>Can I control where the \"Read More\" button appears?<\/h3><\/dt>\n<dd><p>Yes, you can choose to apply the button to posts, pages, and\/or archives (home, categories, tags) via the settings. Additionally, a metabox in the post\/page editor allows you to enable or disable it for specific content.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20accessible%3F\"><h3>Is the plugin accessible?<\/h3><\/dt>\n<dd><p>Yes, the plugin includes ARIA attributes (<code>aria-expanded<\/code>) and supports keyboard navigation (Enter and Space keys) for accessibility compliance.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20dynamic%20content%3F\"><h3>Does it work with dynamic content?<\/h3><\/dt>\n<dd><p>Yes, the plugin uses <code>MutationObserver<\/code> to handle dynamically loaded content, ensuring compatibility with themes like Astra that load content asynchronously.<\/p><\/dd>\n<dt id=\"how%20do%20i%20troubleshoot%20compatibility%20issues%3F\"><h3>How do I troubleshoot compatibility issues?<\/h3><\/dt>\n<dd><p>Enable debug mode in the settings to log detailed information in the browser console, including detected theme and CSS selectors used.<\/p><\/dd>\n<dt id=\"does%20it%20support%20analytics%3F\"><h3>Does it support analytics?<\/h3><\/dt>\n<dd><p>Yes, it integrates with Google Analytics (GA4 and Universal) and Facebook Pixel to track \"Read More\" button clicks.<\/p><\/dd>\n<dt id=\"can%20developers%20extend%20the%20plugin%3F\"><h3>Can developers extend the plugin?<\/h3><\/dt>\n<dd><p>Yes, the plugin includes filters (<code>colorvivo_read_more_universal_min_characters<\/code>, <code>colorvivo_read_more_universal_button_text<\/code>, <code>colorvivo_read_more_universal_theme_selectors<\/code>).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.5 - 2026-01-22<\/h4>\n\n<ul>\n<li>Prepared plugin for WordPress.org directory submission.<\/li>\n<li>Removed development files from distribution.<\/li>\n<\/ul>\n\n<h4>1.3.0 - 2025-09-16<\/h4>\n\n<ul>\n<li>Breaking: Removed all legacy <code>rmu_*<\/code> prefixes (filters, options, meta). Use <code>colorvivo_read_more_universal_*<\/code>.<\/li>\n<li>Changed: Renamed public prefixes to <code>colorvivo_read_more_universal<\/code> and bumped version to 1.3.0.<\/li>\n<\/ul>\n\n<h4>1.2.1 - 2025-07-15<\/h4>\n\n<ul>\n<li>Fixed: Resolved security warnings for <code>$_POST['rmu_apply_to']<\/code> by adding <code>wp_unslash()<\/code> and explicit sanitization.<\/li>\n<li>Fixed: Improved sanitization in <code>sanitize_array()<\/code> to include <code>wp_unslash()<\/code>.<\/li>\n<\/ul>\n\n<h4>1.2.0 - 2025-07-15<\/h4>\n\n<ul>\n<li>Added: Metabox to enable\/disable Read More per post\/page.<\/li>\n<li>Added: Option to apply Read More to posts, pages, and archives.<\/li>\n<li>Added: Support for Divi and WPBakery themes.<\/li>\n<li>Added: Filters (<code>rmu_min_characters<\/code>, <code>rmu_button_text<\/code>, <code>rmu_theme_selectors<\/code>) for developer customization.<\/li>\n<li>Added: Accessibility improvements with ARIA attributes and keyboard navigation.<\/li>\n<li>Added: Real-time button preview in admin panel.<\/li>\n<li>Added: <code>MutationObserver<\/code> for better dynamic content detection.<\/li>\n<li>Added: Smoother content expansion animation with CSS transitions.<\/li>\n<li>Changed: Optimized JavaScript by replacing multiple <code>setTimeout<\/code> with <code>MutationObserver<\/code>.<\/li>\n<li>Changed: Improved admin interface with better organization and preview.<\/li>\n<li>Fixed: Resolved syntax error in <code>read-more-universal.php<\/code>.<\/li>\n<\/ul>\n\n<h4>1.1.1 - 2025-01-16<\/h4>\n\n<ul>\n<li>Security: Fixed all WordPress coding standard violations.<\/li>\n<li>Security: Added proper output escaping for all dynamic content.<\/li>\n<li>Security: Implemented nonce verification for admin form submissions.<\/li>\n<li>Security: Added sanitization callbacks for all settings.<\/li>\n<li>Security: Fixed input validation and unslashing for POST data.<\/li>\n<li>Changed: Replaced <code>strip_tags()<\/code> with <code>wp_strip_all_tags()<\/code> for better security.<\/li>\n<li>Changed: Used <code>wp_json_encode()<\/code> instead of <code>json_encode()<\/code>.<\/li>\n<li>Changed: Added proper escaping functions (<code>esc_html_e<\/code>, <code>esc_attr<\/code>, <code>esc_js<\/code>).<\/li>\n<li>Technical: Improved code compliance with WordPress-Extra and WordPress-VIP standards.<\/li>\n<\/ul>\n\n<h4>1.1.0 - 2025-01-16<\/h4>\n\n<ul>\n<li>Added: Portuguese (pt_PT) and Italian (it_IT) translation support.<\/li>\n<li>Added: Enhanced debug mode with detailed theme detection information.<\/li>\n<li>Added: Support for dynamically loaded content with multiple initialization attempts.<\/li>\n<li>Added: CSS selector logging in debug mode.<\/li>\n<li>Changed: Optimized theme detection algorithm for better performance.<\/li>\n<li>Changed: Improved gradient overlay rendering on mobile devices.<\/li>\n<li>Changed: Enhanced button hover effects for better UX.<\/li>\n<li>Fixed: Content detection issues with Astra theme.<\/li>\n<li>Fixed: Gradient overlay display on iOS Safari.<\/li>\n<li>Fixed: Button text color inheritance issues.<\/li>\n<li>Fixed: Character counting for UTF-8 content.<\/li>\n<\/ul>\n\n<h4>1.0.0 - 2025-01-01<\/h4>\n\n<ul>\n<li>Initial release with support for 20+ themes, multilingual support, analytics integration, and customizable settings.<\/li>\n<\/ul>","raw_excerpt":"Lightweight &quot;Read More&quot; plugin with theme detection, customizable settings, accessibility, and analytics.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/238895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=238895"}],"author":[{"embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dcarrero"}],"wp:attachment":[{"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=238895"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=238895"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=238895"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=238895"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=238895"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/dv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=238895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}