{"id":268234,"date":"2025-12-25T19:05:58","date_gmt":"2025-12-25T19:05:58","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/find-blocks-patterns-shortcodes\/"},"modified":"2026-02-27T17:35:27","modified_gmt":"2026-02-27T17:35:27","slug":"find-blocks-patterns-shortcodes","status":"publish","type":"plugin","link":"https:\/\/sq.wordpress.org\/plugins\/find-blocks-patterns-shortcodes\/","author":23409562,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.0","stable_tag":"1.1.0","tested":"6.9.4","requires":"5.0","requires_php":"7.0","requires_plugins":null,"header_name":"Find Blocks, Patterns & Shortcodes","header_author":"Matthew Cowan","header_description":"A powerful finder tool to audit your site. Locate instances of any Block, Pattern, or Shortcode and export the full usage report to CSV.","assets_banners_color":"4f4c4d","last_updated":"2026-02-27 17:35:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/mnc4.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":471,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"matthewneilcowan","date":"2025-12-25 19:07:04"},"1.0.2":{"tag":"1.0.2","author":"matthewneilcowan","date":"2026-01-16 14:32:38"},"1.0.3":{"tag":"1.0.3","author":"matthewneilcowan","date":"2026-01-16 14:37:10"},"1.1.0":{"tag":"1.1.0","author":"matthewneilcowan","date":"2026-02-27 17:35:27"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128-128.png":{"filename":"icon-128-128.png","revision":3427436,"resolution":"128x128","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":3441062,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544-500.png":{"filename":"banner-1544-500.png","revision":3427439,"resolution":"1544x500","location":"assets","locale":""},"banner-772-250.png":{"filename":"banner-772-250.png","revision":3427439,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.2","1.0.3","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3471265,"resolution":"1","location":"assets","locale":""},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3471265,"resolution":"2","location":"assets","locale":""}},"screenshots":{"1":"Main search interface with block dropdown and post type selection","2":"Search results table with sortable columns and export csv button"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[83,4121,529,148076,944],"plugin_category":[],"plugin_contributors":[252841],"plugin_business_model":[],"class_list":["post-268234","plugin","type-plugin","status-publish","hentry","plugin_tags-admin","plugin_tags-blocks","plugin_tags-content","plugin_tags-gutenberg","plugin_tags-search","plugin_contributors-matthewneilcowan","plugin_committers-matthewneilcowan"],"banners":{"banner":"https:\/\/ps.w.org\/find-blocks-patterns-shortcodes\/assets\/banner-772-250.png?rev=3427439","banner_2x":"https:\/\/ps.w.org\/find-blocks-patterns-shortcodes\/assets\/banner-1544-500.png?rev=3427439","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/find-blocks-patterns-shortcodes\/assets\/icon.svg?rev=3441062","icon":"https:\/\/ps.w.org\/find-blocks-patterns-shortcodes\/assets\/icon.svg?rev=3441062","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/find-blocks-patterns-shortcodes\/assets\/screenshot-1.jpg?rev=3471265","caption":"Main search interface with block dropdown and post type selection"},{"src":"https:\/\/ps.w.org\/find-blocks-patterns-shortcodes\/assets\/screenshot-2.jpg?rev=3471265","caption":"Search results table with sortable columns and export csv button"}],"raw_content":"<!--section=description-->\n<p>Find Blocks, Patterns &amp; Shortcodes locates content containing specific Gutenberg blocks (including options to search by CSS class and HTML anchor attributes), patterns, and shortcodes, with a CSV export feature perfect for audits &amp; analysis.<\/p>\n\n<h4>Core Features<\/h4>\n\n<ul>\n<li><strong>Progressive search<\/strong> with batch processing for large sites<\/li>\n<li><strong>Post type filtering<\/strong> - search across posts, pages, or custom post types to find blocks, patterns, and shortcodes<\/li>\n<li><strong>CSV export<\/strong> - export results for reporting, auditing, and analysis<\/li>\n<li><strong>Block dropdown<\/strong> - select from all registered blocks<\/li>\n<li><strong>Attribute search<\/strong> - find blocks by CSS class and HTML anchor attributes<\/li>\n<li><strong>Synced pattern search<\/strong> - find usage of reusable blocks\/patterns<\/li>\n<li><strong>Sortable results tables<\/strong> for easy analysis<\/li>\n<li><strong>WP-CLI support<\/strong> for automation<\/li>\n<\/ul>\n\n<h4>Performance Optimized<\/h4>\n\n<ul>\n<li>Smart caching with 5-minute TTL<\/li>\n<li>Batch processing (100 posts per batch)<\/li>\n<li>Query optimization (IDs only fetch)<\/li>\n<li>Progress indicators for long operations<\/li>\n<li>Cancellable searches<\/li>\n<li>Hard limit protection (500-1000 posts)<\/li>\n<\/ul>\n\n<h4>Security<\/h4>\n\n<ul>\n<li>Enhanced input validation with blacklisting<\/li>\n<li>Dual-layer rate limiting (user + IP)<\/li>\n<li>Timeout protection (25-second safeguard)<\/li>\n<li>Information disclosure prevention<\/li>\n<li>XSS and injection prevention<\/li>\n<li>Nonce auto-refresh for long sessions<\/li>\n<\/ul>\n\n<h4>Accessibility<\/h4>\n\n<ul>\n<li>Screen reader compatible with ARIA live regions<\/li>\n<li>Full keyboard navigation support<\/li>\n<li>Visible focus indicators<\/li>\n<li>Form labels for all inputs<\/li>\n<li>Results count announcements<\/li>\n<li>Responsive design with 200% zoom support<\/li>\n<\/ul>\n\n<h3>WP-CLI Commands<\/h3>\n\n<p>Search for blocks:\n    wp block-usage search core\/paragraph --post-type=post,page --format=table<\/p>\n\n<p>Clear cache:\n    wp block-usage clear-cache<\/p>\n\n<p>View security logs:\n    wp block-usage logs --limit=100 --format=csv<\/p>\n\n<h3>Filters and Hooks<\/h3>\n\n<h4>Filters<\/h4>\n\n<ul>\n<li><code>fbps_query_limit<\/code> - Adjust search limit (default: 500, max: 1000)<\/li>\n<li><code>fbps_enable_security_logging<\/code> - Toggle security logging (default: true)<\/li>\n<li><code>fbps_allow_editor_access<\/code> - Allow Editor role access (default: false)<\/li>\n<\/ul>\n\n<h4>Actions<\/h4>\n\n<ul>\n<li><code>fbps_security_event<\/code> - Hook into security event logging<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin:\n* Does not collect any user data\n* Does not make external API calls\n* Stores security logs locally (last 1000 events)\n* Logs include: timestamp, user ID, IP address, event type\n* Security logs can be disabled via filter<\/p>\n\n<h3>Support<\/h3>\n\n<p>For support, feature requests, or bug reports, please use the WordPress.org support forums.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Developed by Matthew Cowan<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/find-blocks-patterns-shortcodes\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Navigate to Tools &gt; Find Blocks, Patterns &amp; Shortcodes<\/li>\n<li>Start searching for blocks!<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20block%20name%20format%20should%20i%20use%3F\"><h3>What block name format should I use?<\/h3><\/dt>\n<dd><p>Block names follow the format <code>namespace\/block-name<\/code>. Examples:\n* <code>core\/paragraph<\/code>\n* <code>core\/image<\/code>\n* <code>woocommerce\/product-price<\/code><\/p><\/dd>\n<dt id=\"can%20i%20search%20custom%20blocks%3F\"><h3>Can I search custom blocks?<\/h3><\/dt>\n<dd><p>Yes! The plugin works with any registered Gutenberg block, including custom blocks from themes and plugins.<\/p><\/dd>\n<dt id=\"how%20do%20i%20allow%20editors%20to%20use%20this%20plugin%3F\"><h3>How do I allow Editors to use this plugin?<\/h3><\/dt>\n<dd><p>Add this filter to your theme's functions.php:\n    add_filter('fbps_allow_editor_access', '__return_true');<\/p><\/dd>\n<dt id=\"can%20i%20export%20the%20results%3F\"><h3>Can I export the results?<\/h3><\/dt>\n<dd><p>Yes! Click the \"Export CSV\" button after searching to download results as a spreadsheet.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wp-cli%3F\"><h3>Does it work with WP-CLI?<\/h3><\/dt>\n<dd><p>Yes! Use <code>wp block-usage search core\/paragraph<\/code> for command-line searches.<\/p><\/dd>\n<dt id=\"how%20do%20i%20search%20for%20synced%20patterns%3F\"><h3>How do I search for synced patterns?<\/h3><\/dt>\n<dd><p>Use the \"Search for Synced Pattern Usage\" section to find where reusable blocks\/patterns are used.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added CSS class and HTML anchor search for block attributes<\/li>\n<li>Search by class\/anchor alone or combined with block name<\/li>\n<li>Added configurable result table columns (Title, Type, Date shown by default; CSS Class and HTML Anchor optional)<\/li>\n<li>Column visibility toggles re-render results in real-time<\/li>\n<li>CSV export respects visible column selection<\/li>\n<li>Improved sorting arrow UX with larger Unicode indicators and hover states<\/li>\n<li>Refactored display functions to shared table builder for consistency<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Properly include assets (fixed version number)<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Properly include assets<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Refactored asset loading to use WordPress enqueue standards (wp_enqueue_style\/wp_enqueue_script)<\/li>\n<li>Extracted inline CSS to separate file (assets\/css\/admin.css)<\/li>\n<li>Extracted inline JavaScript to separate file (assets\/js\/admin.js)<\/li>\n<li>Added version constant for consistent cache busting<\/li>\n<li>Improved code maintainability and browser caching<\/li>\n<li>Added translator comments for i18n best practices<\/li>\n<li>WordPress Plugin Review compliant<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Basic block search functionality<\/li>\n<li>Added progressive batch search for large sites<\/li>\n<li>Added post type filtering<\/li>\n<li>Added CSV export functionality<\/li>\n<li>Added synced pattern search<\/li>\n<li>Added WP-CLI support<\/li>\n<li>Added smart caching (5-minute TTL)<\/li>\n<li>Added cancel search functionality<\/li>\n<li>Added sortable results tables<\/li>\n<li>Enhanced security with IP-based rate limiting<\/li>\n<li>Performance optimizations<\/li>\n<\/ul>","raw_excerpt":"Find which posts and pages use specific Gutenberg blocks, patterns, and shortcodes with advanced search and CSV export functionality.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/268234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=268234"}],"author":[{"embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/matthewneilcowan"}],"wp:attachment":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=268234"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=268234"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=268234"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=268234"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=268234"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=268234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}