{"id":265807,"date":"2025-12-02T00:01:28","date_gmt":"2025-12-02T00:01:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/post-formats-for-block-themes\/"},"modified":"2025-12-19T12:47:35","modified_gmt":"2025-12-19T12:47:35","slug":"post-formats-for-block-themes","status":"publish","type":"plugin","link":"https:\/\/pt.wordpress.org\/plugins\/post-formats-for-block-themes\/","author":2451432,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.4","stable_tag":"1.1.4","tested":"6.9.4","requires":"6.8","requires_php":"7.4","requires_plugins":null,"header_name":"Post Formats for Block Themes","header_author":"Courtney Robertson","header_description":"Modernizes WordPress post formats for block themes with format-specific patterns, auto-detection, and enhanced editor experience.","assets_banners_color":"374855","last_updated":"2025-12-19 12:47:35","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/github.com\/sponsors\/courtneyr-dev","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/post-formats-for-block-themes\/","header_author_uri":"https:\/\/profiles.wordpress.org\/courane01\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":375,"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":"courane01","date":"2025-12-02 00:00:55"},"1.1.0":{"tag":"1.1.0","author":"courane01","date":"2025-12-07 22:01:57"},"1.1.2":{"tag":"1.1.2","author":"courane01","date":"2025-12-11 03:39:13"},"1.1.3":{"tag":"1.1.3","author":"courane01","date":"2025-12-19 02:42:32"},"1.1.4":{"tag":"1.1.4","author":"courane01","date":"2025-12-19 12:47:35"}},"upgrade_notice":{"1.1.4":"<p>Critical fix: Resolves issue where plugin&#039;s theme.json was overriding theme layout settings and causing blank templates. All users should upgrade immediately.<\/p>","1.1.3":"<p>Critical performance fix: Resolves database performance issue with revision queries. Also fixes duplicate pattern insertion, character counter appearing twice, and JavaScript errors. Simplified patterns for cleaner editing. All users should upgrade.<\/p>","1.1.2":"<p>Editor UI improvements: Simplified format selection, better template chooser, fixed standard posts incorrectly showing format templates.<\/p>","1.1.1":"<p>Critical fix: Format templates no longer appear in Template dropdown, fixing template selection issues.<\/p>","1.1.0":"<p>Major update: Adds Post Format Block for frontend display, post format admin column with filtering, template improvements with category\/tag\/format display, and critical bug fixes for template assignment. All users should upgrade.<\/p>","1.0.0":"<p>Initial release of Post Formats for Block Themes. Requires WordPress 6.8+ and a block theme. Includes integrated Chat Log block\u2014no separate plugin needed. Full WCAG 2.2 AA accessibility compliance.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3407391,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3407391,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3407391,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3423668,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/edit.php\",\"preferredVersions\":{\"php\":\"8.0\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"post-formats-for-block-themes\"},\"options\":{\"activate\":true}},{\"step\":\"installTheme\",\"themeData\":{\"resource\":\"wordpress.org\\\/themes\",\"slug\":\"twentytwentyfive\"},\"options\":{\"activate\":true}},{\"step\":\"importWxr\",\"file\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/WPTT\\\/theme-unit-test\\\/master\\\/themeunittestdata.wordpress.xml\"}},{\"step\":\"runPHP\",\"code\":\"<?php require '\\\/wordpress\\\/wp-load.php'; wp_cache_flush(); ?>\"},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/create-format-posts.php\",\"data\":\"<?php\\nrequire '\\\/wordpress\\\/wp-load.php';\\n\\n$formats = array(\\n  array('title' => 'Standard Post Example', 'content' => '<!-- wp:paragraph --><p>This is a standard blog post with no specific format assigned. It represents the default post type and can contain any type of content.<\\\/p><!-- \\\/wp:paragraph -->', 'format' => ''),\\n  array('title' => 'Quick Thought', 'content' => '<!-- wp:paragraph --><p>Just discovered an amazing new coffee shop downtown. Highly recommend checking it out!<\\\/p><!-- \\\/wp:paragraph -->', 'format' => 'aside'),\\n  array('title' => 'Photo Gallery: Summer', 'content' => '<!-- wp:paragraph --><p>A collection of my favorite moments from summer.<\\\/p><!-- \\\/wp:paragraph -->', 'format' => 'gallery'),\\n  array('title' => 'Interesting Article', 'content' => '<!-- wp:paragraph --><p><a href=\\\"https:\\\/\\\/wordpress.org\\\/news\\\/\\\">WordPress News<\\\/a><\\\/p><!-- \\\/wp:paragraph -->', 'format' => 'link'),\\n  array('title' => 'Golden Hour Beach', 'content' => '<!-- wp:paragraph --><p>Captured this stunning sunset during my evening walk.<\\\/p><!-- \\\/wp:paragraph -->', 'format' => 'image'),\\n  array('title' => 'Inspirational Quote', 'content' => '<!-- wp:quote --><blockquote class=\\\"wp-block-quote\\\"><p>The only way to do great work is to love what you do.<\\\/p><cite>Steve Jobs<\\\/cite><\\\/blockquote><!-- \\\/wp:quote -->', 'format' => 'quote'),\\n  array('title' => 'Status Update', 'content' => '<!-- wp:paragraph --><p>Working on an exciting new WordPress project today!<\\\/p><!-- \\\/wp:paragraph -->', 'format' => 'status'),\\n  array('title' => 'WordPress Tutorial', 'content' => '<!-- wp:paragraph --><p>Check out this comprehensive WordPress tutorial for beginners.<\\\/p><!-- \\\/wp:paragraph -->', 'format' => 'video'),\\n  array('title' => 'Podcast Episode', 'content' => '<!-- wp:paragraph --><p>In this episode, we discuss the future of WordPress.<\\\/p><!-- \\\/wp:paragraph -->', 'format' => 'audio'),\\n  array('title' => 'Team Discussion', 'content' => '<!-- wp:paragraph --><p><strong>Sarah:<\\\/strong> Are we ready for launch?<\\\/p><!-- \\\/wp:paragraph --><!-- wp:paragraph --><p><strong>Mike:<\\\/strong> Yes! All testing is complete.<\\\/p><!-- \\\/wp:paragraph -->', 'format' => 'chat')\\n);\\n\\nforeach ($formats as $post_data) {\\n  $post_id = wp_insert_post(array(\\n    'post_title' => $post_data['title'],\\n    'post_content' => $post_data['content'],\\n    'post_status' => 'publish',\\n    'post_type' => 'post'\\n  ));\\n  if ($post_id && !empty($post_data['format'])) {\\n    set_post_format($post_id, $post_data['format']);\\n  }\\n}\\n?>\"},{\"step\":\"runPHP\",\"code\":\"<?php require '\\\/wordpress\\\/create-format-posts.php'; ?>\"}]}"}},"all_blocks":{"chatlog\/conversation":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"chatlog\/conversation","version":"1.0.0","title":"Chat Log","category":"text","icon":"format-chat","description":"Display chat transcripts from Slack, Discord, Teams, Telegram, WhatsApp, or Signal with accessible, threaded formatting.","keywords":["chat","conversation","transcript","slack","discord","messaging"],"textdomain":"post-formats-for-block-themes","attributes":{"rawTranscript":{"type":"string","default":""},"source":{"type":"string","enum":["auto","slack","discord","teams","telegram","whatsapp","signal"],"default":"auto"},"displayStyle":{"type":"string","enum":["bubbles","irc","transcript","timeline"],"default":"bubbles"},"showAvatars":{"type":"boolean","default":true},"showTimestamps":{"type":"boolean","default":true},"timestampFormat":{"type":"string","enum":["relative","absolute","time-only"],"default":"time-only"},"collapseThreads":{"type":"boolean","default":false},"maxVisibleMessages":{"type":"number","default":0},"showParticipantList":{"type":"boolean","default":false},"highlightCurrentUser":{"type":"string","default":""},"deviceFrame":{"type":"string","enum":["none","phone","desktop","slack-app","discord-app"],"default":"none"}},"supports":{"html":false,"align":["left","center","wide","full"],"anchor":true,"className":true,"color":{"background":true,"text":true,"link":true},"spacing":{"margin":true,"padding":true},"typography":{"fontSize":true,"lineHeight":true},"__experimentalBorder":{"color":true,"radius":true,"width":true}},"editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css"},"post-formats-for-block-themes\/post-format":{"apiVersion":2,"name":"post-formats-for-block-themes\/post-format","version":"1.0.0","title":"Post Format","category":"theme","description":"Display a post's format","attributes":{"term":{"type":"string"},"textAlign":{"type":"string"},"separator":{"type":"string","default":", "}},"usesContext":["postId","postType"],"supports":{"html":false,"color":{"gradients":true,"link":true,"__experimentalDefaultControls":{"background":true,"text":true,"link":true}},"typography":{"lineHeight":true,"fontSize":true,"__experimentalFontFamily":true,"__experimentalFontWeight":true,"__experimentalFontStyle":true,"__experimentalTextTransform":true,"__experimentalTextDecoration":true,"__experimentalLetterSpacing":true,"__experimentalDefaultControls":{"fontSize":true}},"spacing":{"margin":true,"padding":true}},"textdomain":"post-formats-for-block-themes","style":"wp-block-post-terms","editorScript":"file:.\/index.min.js"}},"tagged_versions":["1.0.0","1.1.0","1.1.2","1.1.3","1.1.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3407391,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3407391,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3407391,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3407391,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3407391,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3407391,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"Format selection modal displaying all 10 post formats with descriptive icons and labels when creating a new post","2":"Format Switcher sidebar panel showing current format, auto-detection status, and dropdown to switch formats mid-edit","3":"Quote format pattern with locked pullquote block, attribution field, and enhanced typography adapting to theme","4":"Chat Log block displaying Slack conversation with avatars, usernames, timestamps, and bubble-style formatting","5":"Post Format Repair tool showing scan results, detected mismatches, suggested format changes, and one-click repair","6":"Status format editor with real-time 280-character counter, validation, and visual feedback like social media","7":"Automatic format detection notification suggesting Quote format after inserting pullquote block","8":"Gallery format pattern with locked gallery block displaying responsive grid layout adapting to theme columns"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[148857,211323,251492,18850,6985],"plugin_category":[],"plugin_contributors":[251493],"plugin_business_model":[],"class_list":["post-265807","plugin","type-plugin","status-publish","hentry","plugin_tags-block-editor","plugin_tags-block-theme","plugin_tags-chat-log","plugin_tags-patterns","plugin_tags-post-formats","plugin_contributors-courane01","plugin_committers-courane01"],"banners":{"banner":"https:\/\/ps.w.org\/post-formats-for-block-themes\/assets\/banner-772x250.png?rev=3407391","banner_2x":"https:\/\/ps.w.org\/post-formats-for-block-themes\/assets\/banner-1544x500.png?rev=3407391","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/post-formats-for-block-themes\/assets\/icon-256x256.png?rev=3407391","icon_2x":"https:\/\/ps.w.org\/post-formats-for-block-themes\/assets\/icon-256x256.png?rev=3407391","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/post-formats-for-block-themes\/assets\/screenshot-1.png?rev=3407391","caption":"Format selection modal displaying all 10 post formats with descriptive icons and labels when creating a new post"},{"src":"https:\/\/ps.w.org\/post-formats-for-block-themes\/assets\/screenshot-2.png?rev=3407391","caption":"Format Switcher sidebar panel showing current format, auto-detection status, and dropdown to switch formats mid-edit"},{"src":"https:\/\/ps.w.org\/post-formats-for-block-themes\/assets\/screenshot-3.png?rev=3407391","caption":"Quote format pattern with locked pullquote block, attribution field, and enhanced typography adapting to theme"},{"src":"https:\/\/ps.w.org\/post-formats-for-block-themes\/assets\/screenshot-4.png?rev=3407391","caption":"Chat Log block displaying Slack conversation with avatars, usernames, timestamps, and bubble-style formatting"},{"src":"https:\/\/ps.w.org\/post-formats-for-block-themes\/assets\/screenshot-5.png?rev=3407391","caption":"Post Format Repair tool showing scan results, detected mismatches, suggested format changes, and one-click repair"},{"src":"https:\/\/ps.w.org\/post-formats-for-block-themes\/assets\/screenshot-6.png?rev=3407391","caption":"Status format editor with real-time 280-character counter, validation, and visual feedback like social media"}],"raw_content":"<!--section=description-->\n<p><strong>Post Formats for Block Themes<\/strong> brings the beloved post format functionality from classic WordPress themes to modern block themes, with intelligent pattern insertion, automatic format detection, and a streamlined editing experience that makes creating formatted content effortless.<\/p>\n\n<h4>Why Post Formats Matter for Block Themes<\/h4>\n\n<p>WordPress post formats have been a powerful feature since WordPress 3.1, allowing content creators to style different types of posts distinctively\u2014quotes appear with enhanced typography, galleries showcase images prominently, status updates feel like social media, and chat transcripts display conversations beautifully. However, with the shift to block themes and Full Site Editing, this functionality was left behind.<\/p>\n\n<p><strong>Post Formats for Block Themes solves this problem<\/strong>. This plugin brings post formats into the block editor era with format-specific block patterns, automatic content detection, and accessibility-first design. Whether you're building a personal blog, portfolio, news site, or creative magazine, post formats help your content stand out.<\/p>\n\n<h4>Who This Plugin Is For<\/h4>\n\n<ul>\n<li><strong>Bloggers<\/strong> who want variety in their post presentations without creating custom templates<\/li>\n<li><strong>Content creators<\/strong> who publish different types of content (articles, quotes, galleries, status updates)<\/li>\n<li><strong>News sites<\/strong> migrating from classic themes and want to preserve post format functionality<\/li>\n<li><strong>Designers and developers<\/strong> building block themes who need format support built-in<\/li>\n<li><strong>Accessibility advocates<\/strong> who require WCAG 2.2 AA compliant content tools<\/li>\n<li><strong>Anyone moving from classic themes<\/strong> who misses the post format features they relied on<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<p><strong>10 Format-Specific Block Patterns<\/strong><\/p>\n\n<p>Each WordPress post format gets a professionally-designed block pattern optimized for its content type. Patterns include locked first blocks to maintain format consistency while giving you complete creative freedom for additional content:<\/p>\n\n<ul>\n<li><strong>Standard<\/strong> \u2013 Traditional blog post with full title, featured image, and content blocks<\/li>\n<li><strong>Aside<\/strong> \u2013 Short note or update displayed in a styled bubble container without title requirement<\/li>\n<li><strong>Status<\/strong> \u2013 Twitter-style status update with 280-character validation and real-time counter<\/li>\n<li><strong>Link<\/strong> \u2013 Link sharing with automatic <a href=\"https:\/\/wordpress.org\/plugins\/bookmark-card\/\">Bookmark Card<\/a> integration when available, with graceful fallback to standard linked paragraphs<\/li>\n<li><strong>Gallery<\/strong> \u2013 Photo gallery starting with a locked gallery block for image collections<\/li>\n<li><strong>Image<\/strong> \u2013 Single image post with prominent image display and caption support<\/li>\n<li><strong>Quote<\/strong> \u2013 Quotation or citation with enhanced pullquote styling and attribution<\/li>\n<li><strong>Video<\/strong> \u2013 Video content using native video blocks or popular embed services. Integrates with <a href=\"https:\/\/wordpress.org\/plugins\/ableplayer\/\">Able Player<\/a> for enhanced accessible playback when available.<\/li>\n<li><strong>Audio<\/strong> \u2013 Audio file or podcast embed with native player styling. Integrates with <a href=\"https:\/\/wordpress.org\/plugins\/podlove-podcasting-plugin-for-wordpress\/\">Podlove Podcasting Plugin<\/a> for podcasts and <a href=\"https:\/\/wordpress.org\/plugins\/ableplayer\/\">Able Player<\/a> for accessible playback when available.<\/li>\n<li><strong>Chat<\/strong> \u2013 Conversation transcript using the integrated Chat Log block<\/li>\n<\/ul>\n\n<p><strong>Integrated Chat Log Block<\/strong><\/p>\n\n<p><strong>No separate plugin needed!<\/strong> Post Formats for Block Themes includes a full-featured Chat Log block for displaying conversation transcripts. Perfect for interviews, customer support examples, team discussions, or any dialogue format.<\/p>\n\n<p>Supported platforms: Slack, Discord, Microsoft Teams, WhatsApp, Telegram, Signal, and generic chat transcripts. Additional text format support: SRT subtitles, VTT captions, and plain text exports from any chat application.<\/p>\n\n<p>Chat Log features: automatic platform detection, avatar display, timestamp formatting (relative, absolute, time-only), multiple display styles (bubbles, IRC, transcript, timeline), thread collapsing, participant lists, device frames, full accessibility, and RTL support.<\/p>\n\n<p><strong>Automatic Format Detection<\/strong><\/p>\n\n<p>Save time with intelligent format detection. The plugin analyzes your post's first block and automatically assigns the appropriate format. Gallery block becomes Gallery format, video block becomes Video format, quote block becomes Quote format, and so on. Detection runs on post save and respects manual format selections.<\/p>\n\n<p><strong>Format Selection Modal<\/strong><\/p>\n\n<p>When creating a new post, a visual format selection modal appears with all 10 formats displayed as cards showing icons, names, descriptions, and use cases. Fully keyboard accessible and screen reader friendly.<\/p>\n\n<p><strong>Format Switcher Sidebar Panel<\/strong><\/p>\n\n<p>Change formats mid-edit with the Format Switcher in the post sidebar. View current format, see auto-detection suggestions, choose to replace content or keep existing blocks. Perfect for when you change your mind about post type.<\/p>\n\n<p><strong>Status Format Validation<\/strong><\/p>\n\n<p>The Status format includes Twitter-style character validation with real-time counter, 280-character soft limit, visual feedback, accessibility announcements, and mobile-friendly composition.<\/p>\n\n<p><strong>Post Format Repair Tool<\/strong><\/p>\n\n<p>Scan existing posts and fix format mismatches with the built-in repair tool (Tools \u2192 Post Format Repair). Detects content\/format mismatches, bulk or individual repairs, preview suggestions, one-click fixes. Perfect for migrating from classic themes.<\/p>\n\n<p><strong>Theme-Agnostic Styling<\/strong><\/p>\n\n<p>Format styles integrate seamlessly with any block theme using CSS custom properties from your theme.json. Respects your theme's colors, typography, spacing. No styling conflicts. Works with Global Styles.<\/p>\n\n<h4>How to Use Post Formats in Block Themes<\/h4>\n\n<p><strong>Creating Your First Formatted Post:<\/strong>\n1. Navigate to Posts \u2192 Add New\n2. Format selection modal appears automatically\n3. Click your desired format (e.g., \"Quote\")\n4. Pattern is inserted with locked first block\n5. Add content within the pattern\n6. Publish your formatted post<\/p>\n\n<p><strong>Mid-Edit Format Switching:<\/strong>\n1. Open the right sidebar while editing\n2. Find the \"Format Switcher\" panel\n3. Choose a new format from dropdown\n4. Decide to replace or keep content\n5. Format updates instantly<\/p>\n\n<p><strong>Using Auto-Detection:<\/strong>\n1. Start a new post without selecting a format\n2. Add content (e.g., insert a gallery block)\n3. Save as draft or publish\n4. Plugin automatically detects Gallery format\n5. Format is assigned without manual action<\/p>\n\n<h4>How to Create a Quote Post<\/h4>\n\n<p>Showcase quotations and citations beautifully:<\/p>\n\n<ol>\n<li>Select Quote format from the modal<\/li>\n<li>The pullquote pattern loads with locked Quote block<\/li>\n<li>Type or paste your quote<\/li>\n<li>Add attribution in citation field<\/li>\n<li>Optional: Add commentary below the quote<\/li>\n<li>Customize styling via Global Styles<\/li>\n<li>Publish your enhanced quote post<\/li>\n<\/ol>\n\n<p>The locked pullquote maintains format integrity while allowing unlimited additional content blocks.<\/p>\n\n<h4>How to Display Chat Conversations<\/h4>\n\n<p>Turn conversation transcripts into readable, attractive content:<\/p>\n\n<ol>\n<li>Select Chat format when creating new post<\/li>\n<li>Chat Log block inserts automatically<\/li>\n<li>Copy conversation text from Slack, Discord, Teams, WhatsApp, etc.<\/li>\n<li>Paste into Chat Log block\u2014platform detection is automatic<\/li>\n<li>Configure display options: style, avatars, timestamps, threads, device frame<\/li>\n<li>Preview the formatted conversation<\/li>\n<li>Publish your beautiful chat transcript<\/li>\n<\/ol>\n\n<p>Platform-specific features: Slack preserves channels, threads, reactions; Discord maintains server structure and roles; Teams retains meeting context; WhatsApp shows message status and reply chains; Telegram preserves stickers; Signal maintains message indicators.<\/p>\n\n<h4>How to Automatically Detect Post Formats<\/h4>\n\n<p>Let the plugin handle format assignment:<\/p>\n\n<ol>\n<li>Create new post without selecting format<\/li>\n<li>Add content normally (gallery, video, quote, etc.)<\/li>\n<li>Save draft or publish\u2014detection runs on save<\/li>\n<li>Check Format Switcher panel for detected format<\/li>\n<li>Accept or manually override<\/li>\n<\/ol>\n\n<p>Detection rules: first block determines format. Gallery block = Gallery format, Video block = Video format, Quote block = Quote format, and so on. Detection only runs on posts without manual format selection.<\/p>\n\n<h4>How to Repair Mismatched Formats<\/h4>\n\n<p>Fix format assignments across your entire site:<\/p>\n\n<ol>\n<li>Navigate to Tools \u2192 Post Format Repair<\/li>\n<li>Click \"Scan All Posts\"\u2014analyzes content vs. formats<\/li>\n<li>Review mismatch report<\/li>\n<li>Preview suggestions for each post<\/li>\n<li>Bulk repair all or fix individually<\/li>\n<li>Verify changes<\/li>\n<\/ol>\n\n<p>Common scenarios: migrating from classic themes, imported content, incorrect manual assignments, exploring your format distribution. The repair tool is safe\u2014changes only format meta, never modifies post content.<\/p>\n\n<h4>Migrating from Classic Theme Post Formats<\/h4>\n\n<p>Preserve post format styling when switching to block themes:<\/p>\n\n<p><strong>Before Migration:<\/strong>\n1. Install plugin on classic theme site\n2. Leave classic theme active\n3. Test repair tool with scan (don't apply yet)\n4. Review the report<\/p>\n\n<p><strong>During Migration:<\/strong>\n1. Switch to block theme\n2. Activate Post Formats for Block Themes\n3. Visit Tools \u2192 Post Format Repair\n4. Run full scan\n5. Review suggestions\n6. Apply bulk repair<\/p>\n\n<p><strong>After Migration:<\/strong>\n1. Check frontend display\n2. Customize styling in theme.json\n3. Create new posts with format patterns\n4. Optional: update old posts to use patterns<\/p>\n\n<p>What transfers: format assignments, post content, featured images, post meta. What changes: theme template styling becomes pattern styling, classic PHP templates become block templates. Tips: test on staging first, take database backup, check one post per format, customize theme.json colors, use patterns for new content.<\/p>\n\n<h4>Block Theme Compatibility Guide<\/h4>\n\n<p><strong>What Makes a \"Block Theme\":<\/strong>\nBlock themes use block templates (.html files) and theme.json instead of PHP templates. Key characteristics: templates\/ folder with .html files, theme.json file, Full Site Editing support, activated via Appearance \u2192 Themes. Learn more in the <a href=\"https:\/\/developer.wordpress.org\/themes\/block-themes\/\">WordPress Block Theme documentation<\/a>.<\/p>\n\n<p><strong>Why Classic Themes Aren't Supported:<\/strong>\nClassic themes use PHP template files which conflict with block-based patterns. This plugin requires block pattern support, block templates, theme.json styling, and block editor integration. If you prefer using a classic theme with post format support, consider using the <a href=\"https:\/\/wordpress.org\/themes\/twentythirteen\/\">Twenty Thirteen theme<\/a> which includes excellent built-in post format styling.<\/p>\n\n<p><strong>Recommended Compatible Block Themes:<\/strong>\nTwenty Twenty-Five, Twenty Twenty-Four, Twenty Twenty-Three, Block themes from Automattic (Blank Canvas, Pendant), most modern block themes on WordPress.org.<\/p>\n\n<p><strong>Theme.json Integration:<\/strong>\nThe plugin reads color palette, typography, spacing, and border styles from your theme.json. Format styles automatically adapt. To customize, edit your theme.json color and typography settings.<\/p>\n\n<h4>Developer Guide: Extending Post Formats<\/h4>\n\n<p><strong>Add Custom Format:<\/strong>\n    <code>php\nadd_filter( 'pfbt_registered_formats', function( $formats ) {\n    $formats['review'] = [\n        'name'         =&gt; 'Review',\n        'description'  =&gt; 'Product review',\n        'icon'         =&gt; 'star-filled',\n        'pattern_slug' =&gt; 'my-theme\/review-pattern',\n    ];\n    return $formats;\n} );<\/code><\/p>\n\n<p><strong>Custom Detection Logic:<\/strong>\n    <code>php\nadd_filter( 'pfbt_detected_format', function( $format, $first_block, $all_blocks ) {\n    if ( $first_block['blockName'] === 'my-plugin\/custom-block' ) {\n        return 'gallery';\n    }\n    return $format;\n}, 10, 3 );<\/code><\/p>\n\n<p><strong>Run Code After Detection:<\/strong>\n    <code>php\nadd_action( 'pfbt_format_detected', function( $post_id, $format, $post ) {\n    error_log( \"Post {$post_id} detected as {$format}\" );\n}, 10, 3 );<\/code><\/p>\n\n<p><strong>Track Format Changes:<\/strong>\n    <code>php\nadd_action( 'pfbt_format_changed', function( $post_id, $old_format, $new_format ) {\n    \/\/ Analytics tracking\n}, 10, 3 );<\/code><\/p>\n\n<p>More filters and actions available for pattern content modification, post-repair actions, and format definition customization.<\/p>\n\n<h3>Additional Information<\/h3>\n\n<h4>Performance<\/h4>\n\n<p>Post Formats for Block Themes is built for performance: JavaScript loads only in block editor (never on frontend), CSS uses minimal native custom properties, auto-detection runs only on save, no frontend database queries, properly enqueued versioned assets for browser caching, no external dependencies or CDN requests.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin respects user privacy: does not collect or store user data, does not make external API calls, does not set cookies, does not track users, does not share data with third parties. Format selections and post meta stored only in your WordPress database using standard functions.<\/p>\n\n<h4>Browser Compatibility<\/h4>\n\n<p>Tested and fully functional in: Chrome 90+, Firefox 88+, Safari 14+, iOS Safari 14+, Chrome for Android 90+. Uses modern JavaScript (ES6+) with polyfills for wider compatibility.<\/p>\n\n<h4>Support<\/h4>\n\n<p>For support: check FAQ section, read format descriptions, visit <a href=\"https:\/\/wordpress.org\/support\/plugin\/post-formats-for-block-themes\/\">WordPress.org support forums<\/a>, search existing threads, create new topic with details (WordPress version, PHP version, theme name, active plugins, issue description, reproduction steps, screenshots).<\/p>\n\n<p>For bug reports and feature requests: visit <a href=\"https:\/\/github.com\/courtneyr-dev\/post-formats-for-block-themes\">GitHub repository<\/a>.<\/p>\n\n<h4>Contributing<\/h4>\n\n<p>Contributions welcome! Report bugs on GitHub, submit pull requests, translate via WordPress.org, write tutorials, answer support questions, share with others. Development: follows WordPress Coding Standards, includes comprehensive test suite (PHPUnit + Playwright), CI\/CD pipeline with automated testing, accessibility tested with axe-core.<\/p>\n\n<h4>Credits<\/h4>\n\n<p>Inspired by WordPress Twenty Thirteen theme's post format treatments. Built with WordPress Gutenberg components. Icons by Dashicons. Developed by Courtney Robertson. License: GPL v2 or later.<\/p>\n\n<h4>External Services<\/h4>\n\n<p>This plugin does not connect to or rely on any external services. All functionality runs entirely on your WordPress installation using core WordPress APIs. The Chat Log block specifically: does NOT send conversation data to external services, does NOT make API calls, processes all transcript text locally using JavaScript, stores formatted conversations in post content only. Your conversations never leave your server.<\/p>\n\n<!--section=installation-->\n<h4>Minimum Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.8 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>A block theme (Classic themes not supported)<\/li>\n<li>JavaScript enabled in browser<\/li>\n<\/ul>\n\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Log in to WordPress admin<\/li>\n<li>Navigate to <strong>Plugins \u2192 Add New<\/strong><\/li>\n<li>Search for <strong>\"Post Formats for Block Themes\"<\/strong><\/li>\n<li>Click <strong>\"Install Now\"<\/strong> then <strong>\"Activate\"<\/strong><\/li>\n<li>Create a new post\u2014format selection modal will appear<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download plugin ZIP from WordPress.org<\/li>\n<li>Go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong><\/li>\n<li>Choose ZIP file and click <strong>\"Install Now\"<\/strong><\/li>\n<li>Click <strong>\"Activate Plugin\"<\/strong><\/li>\n<li>Create a new post to start using formats<\/li>\n<\/ol>\n\n<h4>After Activation<\/h4>\n\n<ol>\n<li>Create test post (Posts \u2192 Add New)<\/li>\n<li>See format modal with all 10 formats<\/li>\n<li>Choose a format to insert its pattern<\/li>\n<li>Add content within pattern structure<\/li>\n<li>Publish your formatted post<\/li>\n<li>Optional: Run repair tool (Tools \u2192 Post Format Repair)<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='does%20this%20work%20with%20classic%20themes%3F'><h3>Does this work with classic themes?<\/h3><\/dt>\n<dd><p>No, this plugin requires block themes with Full Site Editing. Classic themes use PHP templates incompatible with block patterns. This plugin requires block theme with theme.json, block templates in templates\/ folder, and WordPress 6.8+. Consider migrating to a modern block theme like Twenty Twenty-Five.<\/p><\/dd>\n<dt id='will%20this%20work%20with%20my%20existing%20posts%3F'><h3>Will this work with my existing posts?<\/h3><\/dt>\n<dd><p>Yes! Use <strong>Post Format Repair Tool<\/strong> (Tools \u2192 Post Format Repair) to scan existing posts and automatically detect appropriate formats based on content. Tool analyzes first block and suggests matching format. Review before applying repairs. Tool only changes format assignments\u2014never modifies actual content.<\/p><\/dd>\n<dt id='what%20happens%20if%20i%20deactivate%20the%20plugin%3F'><h3>What happens if I deactivate the plugin?<\/h3><\/dt>\n<dd><p>Content remains safe: format assignments stay in database, pattern blocks remain as standard blocks, Chat Log blocks show as \"unsupported block\" (content preserved), no data lost. If you reactivate, all functionality returns immediately.<\/p><\/dd>\n<dt id='can%20i%20customize%20the%20format%20patterns%3F'><h3>Can I customize the format patterns?<\/h3><\/dt>\n<dd><p>Yes, multiple ways:\n- Use filters in functions.php to modify pattern HTML\n- Register custom patterns to override defaults\n- Edit blocks after insertion (locked first block maintains consistency)\n- Use Global Styles to change colors, typography, spacing<\/p><\/dd>\n<dt id='does%20the%20status%20format%20prevent%20publishing%20over%20280%20characters%3F'><h3>Does the Status format prevent publishing over 280 characters?<\/h3><\/dt>\n<dd><p>No, 280-character limit is a soft suggestion, not a hard block. Shows real-time counter, visual warning when approaching limit, accessibility announcements, but you CAN publish longer status updates if needed.<\/p><\/dd>\n<dt id='what%20is%20the%20bookmark%20card%20integration%3F'><h3>What is the Bookmark Card integration?<\/h3><\/dt>\n<dd><p>Link format checks if the <a href=\"https:\/\/wordpress.org\/plugins\/bookmark-card\/\">Bookmark Card plugin<\/a> is installed. If active, uses bookmark-card blocks with rich previews, images, descriptions, automatic metadata fetching. If not installed, uses standard linked paragraphs. Both work perfectly\u2014integration just enhances experience.<\/p><\/dd>\n<dt id='does%20this%20work%20with%20podcasting%20plugins%3F'><h3>Does this work with podcasting plugins?<\/h3><\/dt>\n<dd><p>Yes! The Audio format integrates with the <a href=\"https:\/\/wordpress.org\/plugins\/podlove-podcasting-plugin-for-wordpress\/\">Podlove Podcasting Plugin for WordPress<\/a> when installed. If Podlove is active, Audio format patterns can utilize Podlove's enhanced audio player and podcast metadata. Without Podlove, the plugin uses WordPress core audio blocks which work perfectly for standard audio content.<\/p><\/dd>\n<dt id='what%20about%20accessible%20media%20players%3F'><h3>What about accessible media players?<\/h3><\/dt>\n<dd><p>The Video and Audio formats integrate with <a href=\"https:\/\/wordpress.org\/plugins\/ableplayer\/\">Able Player<\/a> when installed. Able Player provides an accessible HTML5 media player with captions, audio descriptions, interactive transcripts, and full keyboard support. When Able Player is active, format patterns can utilize its enhanced accessible playback features. Without Able Player, the plugin uses WordPress core media blocks.<\/p><\/dd>\n<dt id='how%20do%20i%20use%20the%20chat%20format%3F'><h3>How do I use the Chat format?<\/h3><\/dt>\n<dd><p><strong>You don't need a separate plugin!<\/strong> Post Formats for Block Themes includes integrated Chat Log block (chatlog\/conversation). Chat format works out of the box, no additional plugins required. Just select Chat format and paste conversation transcripts from Slack, Discord, Teams, WhatsApp, Signal, or Telegram.<\/p><\/dd>\n<dt id='can%20i%20change%20formats%20after%20creating%20a%20post%3F'><h3>Can I change formats after creating a post?<\/h3><\/dt>\n<dd><p>Absolutely! Use <strong>Format Switcher<\/strong> in post sidebar. Open post in block editor, find Format Switcher panel in right sidebar, click format dropdown, choose new format, decide to replace or keep content, click Switch Format. Format updates immediately.<\/p><\/dd>\n<dt id='how%20does%20auto-detection%20know%20when%20not%20to%20change%20my%20format%3F'><h3>How does auto-detection know when NOT to change my format?<\/h3><\/dt>\n<dd><p>Auto-detection respects manual choices. Detection WILL run on: new posts without format selection, posts never explicitly formatted, programmatically created posts. Detection WON'T run on: manually selected formats, Format Switcher changes, posts with internal user-selected flag, Quick Edit manual formats. Once you choose manually, auto-detection defers to you.<\/p><\/dd>\n<dt id='can%20i%20use%20this%20with%20woocommerce%20or%20custom%20post%20types%3F'><h3>Can I use this with WooCommerce or custom post types?<\/h3><\/dt>\n<dd><p>Yes! Register post format support for custom post types:\n    <code>php\nadd_post_type_support( 'product', 'post-formats' );  \/\/ WooCommerce\nadd_post_type_support( 'portfolio', 'post-formats' );  \/\/ Custom type<\/code>\nThen formats and plugin features work for those types. Patterns and modal only appear in block editor.<\/p><\/dd>\n<dt id='does%20this%20work%20with%20multisite%3F'><h3>Does this work with multisite?<\/h3><\/dt>\n<dd><p>Yes! Fully multisite compatible. Install network-wide or per-site, each site has independent format settings, repair tool scans only current site's posts, no database conflicts, pattern registration respects site context. For large networks, consider network activation.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.4 - 2025-12-19<\/h4>\n\n<p><strong>Bug Fixes<\/strong><\/p>\n\n<ul>\n<li><strong>Fixed:<\/strong> Critical issue where plugin's theme.json was overriding theme layout settings (contentSize, wideSize), causing blank templates<\/li>\n<li><strong>Fixed:<\/strong> Plugin no longer overrides theme spacing settings (spacingSizes)<\/li>\n<li><strong>Fixed:<\/strong> Removed appearanceTools setting that could conflict with theme settings<\/li>\n<\/ul>\n\n<p><strong>Changes<\/strong><\/p>\n\n<ul>\n<li><strong>Changed:<\/strong> Simplified theme.json to only include format-specific color palette additions<\/li>\n<li><strong>Changed:<\/strong> Plugin now respects all theme layout and spacing settings<\/li>\n<\/ul>\n\n<h4>1.1.3 - 2025-12-18<\/h4>\n\n<p><strong>Performance<\/strong><\/p>\n\n<ul>\n<li><strong>Fixed:<\/strong> Critical performance issue with revision queries on sites with many synced patterns<\/li>\n<li><strong>Added:<\/strong> Transient-based caching for pattern registration to avoid unnecessary database operations<\/li>\n<li><strong>Added:<\/strong> Pattern registration now skipped entirely on front-end for better performance<\/li>\n<li><strong>Added:<\/strong> Pattern updates only occur when content has actually changed<\/li>\n<li><strong>Added:<\/strong> Revision limiter for wp_block post type (limits to 3 revisions to prevent database bloat)<\/li>\n<\/ul>\n\n<p><strong>New Features<\/strong><\/p>\n\n<ul>\n<li><strong>Added:<\/strong> \"Settings\" link on Plugins page that links to Post Format Repair tool for easy access<\/li>\n<\/ul>\n\n<p><strong>Bug Fixes<\/strong><\/p>\n\n<ul>\n<li><strong>Fixed:<\/strong> Duplicate pattern insertion when selecting format from modal (patterns were being inserted twice)<\/li>\n<li><strong>Fixed:<\/strong> Status format character counter appearing twice in editor<\/li>\n<li><strong>Fixed:<\/strong> Aside format icon not displaying in Posts admin list (changed from <code>dashicons-aside<\/code> to <code>dashicons-format-aside<\/code>)<\/li>\n<li><strong>Fixed:<\/strong> JavaScript error \"Cannot read properties of undefined (reading 'postCategories')\" in block editor<\/li>\n<li><strong>Fixed:<\/strong> Pattern transient now cleared on plugin deactivation to ensure fresh patterns on reactivation<\/li>\n<\/ul>\n\n<p><strong>Improvements<\/strong><\/p>\n\n<ul>\n<li><strong>Changed:<\/strong> Simplified all format patterns by removing unnecessary wrapper Group blocks<\/li>\n<li><strong>Changed:<\/strong> Status pattern now uses single paragraph with <code>status-paragraph<\/code> class<\/li>\n<li><strong>Changed:<\/strong> Aside pattern now uses single paragraph (no wrapper)<\/li>\n<li><strong>Changed:<\/strong> All other format patterns now use primary block + paragraph structure for cleaner editing<\/li>\n<\/ul>\n\n<p><strong>Security<\/strong><\/p>\n\n<ul>\n<li><strong>Added:<\/strong> <code>domReady<\/code> wrapper for Post Format Block to prevent race conditions<\/li>\n<li><strong>Added:<\/strong> Null check with fallback icon for safer script initialization<\/li>\n<li><strong>Added:<\/strong> Asset file for Post Format Block script dependencies<\/li>\n<\/ul>\n\n<h4>1.1.2 - 2025-12-11<\/h4>\n\n<p><strong>New Features<\/strong><\/p>\n\n<ul>\n<li><strong>Added:<\/strong> \"Default\" template option in template chooser that explicitly clears template assignment and uses default template hierarchy<\/li>\n<li><strong>Added:<\/strong> Comprehensive logging system for tracking template assignment and REST API behavior for easier debugging<\/li>\n<\/ul>\n\n<p><strong>Improvements<\/strong><\/p>\n\n<ul>\n<li><strong>Improved:<\/strong> Simplified editor UI by removing duplicate \"Post Format\" dropdown from sidebar - now uses WordPress's built-in format selector in Status &amp; visibility panel<\/li>\n<li><strong>Improved:<\/strong> Status format character counter moved from sidebar panel to editor notice for cleaner UI<\/li>\n<li><strong>Improved:<\/strong> Format selection modal now clearly shows \"Standard (Single Template)\" option with descriptive text<\/li>\n<li><strong>Improved:<\/strong> \"Single\" template from theme now properly appears in template chooser for posts<\/li>\n<li><strong>Improved:<\/strong> REST API now correctly returns 'default' template value when no template is assigned, fixing display issues<\/li>\n<\/ul>\n\n<p><strong>Bug Fixes<\/strong><\/p>\n\n<ul>\n<li><strong>Fixed:<\/strong> Standard format posts no longer incorrectly show format templates (like \"Aside Format\") when no template should be assigned<\/li>\n<li><strong>Fixed:<\/strong> Template chooser modal now correctly displays all available templates including theme's default \"Single\" template<\/li>\n<li><strong>Fixed:<\/strong> Editor now properly reflects actual database state for template assignments instead of showing cached\/stale values<\/li>\n<\/ul>\n\n<p><strong>Technical Changes<\/strong><\/p>\n\n<ul>\n<li><strong>Changed:<\/strong> Removed <code>FormatSwitcherPanel<\/code> component to eliminate duplicate UI controls<\/li>\n<li><strong>Changed:<\/strong> Removed <code>PluginDocumentSettingPanel<\/code> wrapper for cleaner sidebar<\/li>\n<li><strong>Changed:<\/strong> \"Default\" template now added to all template queries for consistent availability<\/li>\n<li><strong>Changed:<\/strong> Added <code>rest_prepare_post<\/code> filter to ensure correct template values in editor<\/li>\n<li><strong>Changed:<\/strong> Template assignment logic now properly handles \"default\" template selection<\/li>\n<\/ul>\n\n<h4>1.1.1 - 2025-12-09<\/h4>\n\n<p><strong>Bug Fixes<\/strong><\/p>\n\n<ul>\n<li><strong>Fixed:<\/strong> Critical issue where format templates (Chat Format, Gallery Format, etc.) were appearing in the Template dropdown and hiding\/replacing theme templates. Format templates now apply automatically via template hierarchy but don't show as selectable options in the editor.<\/li>\n<\/ul>\n\n<h4>1.1.0 - 2025-12-08<\/h4>\n\n<p><strong>New Features<\/strong><\/p>\n\n<ul>\n<li><strong>Added:<\/strong> Post Format Block - Display block for showing post formats on the frontend (forked from Post Format Block by Aaron Jorbin)<\/li>\n<li><strong>Added:<\/strong> Post format column in Posts admin list with clickable filtering (similar to categories\/tags display)<\/li>\n<li><strong>Added:<\/strong> Screen Options toggle for post format column visibility in admin<\/li>\n<li><strong>Added:<\/strong> Post format taxonomy display in all 9 format templates (categories, tags, and format shown together)<\/li>\n<li><strong>Added:<\/strong> Sortable post format column in admin list for easy organization<\/li>\n<li><strong>Added:<\/strong> Dashicons for each post format in admin column for visual identification<\/li>\n<\/ul>\n\n<p><strong>Improvements<\/strong><\/p>\n\n<ul>\n<li><strong>Improved:<\/strong> Template assignment system now uses slug-only format (not full theme ID) for better compatibility<\/li>\n<li><strong>Improved:<\/strong> All 9 format templates now display categories, tags, and post format in a horizontal flex group<\/li>\n<li><strong>Improved:<\/strong> Consistent spacing added before taxonomy display across all templates<\/li>\n<li><strong>Improved:<\/strong> Post format taxonomy now available in REST API for block editor integration<\/li>\n<li><strong>Improved:<\/strong> Template dropdown now correctly displays format-specific template names<\/li>\n<li><strong>Improved:<\/strong> Post format support now properly merges with theme's existing format support (no override)<\/li>\n<\/ul>\n\n<p><strong>Bug Fixes<\/strong><\/p>\n\n<ul>\n<li><strong>Fixed:<\/strong> Template assignment dropdown showing \"Aside Format\" for all post types<\/li>\n<li><strong>Fixed:<\/strong> Post format support conflicting with theme-defined formats (now merges safely)<\/li>\n<li><strong>Fixed:<\/strong> Duplicate post format registration from Chat Log block<\/li>\n<li><strong>Fixed:<\/strong> Template storage format causing UI mismatch in editor sidebar<\/li>\n<li><strong>Fixed:<\/strong> Plugin check errors for WordPress.org submission compliance<\/li>\n<\/ul>\n\n<p><strong>Code Quality<\/strong><\/p>\n\n<ul>\n<li><strong>Removed:<\/strong> All debug error_log() statements from production code<\/li>\n<li><strong>Removed:<\/strong> Development files, test scripts, and backup files<\/li>\n<li><strong>Improved:<\/strong> Variable naming to follow WordPress coding standards (all prefixed with pfbt_)<\/li>\n<li><strong>Improved:<\/strong> Output escaping in admin columns for security compliance<\/li>\n<li><strong>Improved:<\/strong> File naming (removed spaces from image filenames)<\/li>\n<\/ul>\n\n<p><strong>Developer<\/strong><\/p>\n\n<ul>\n<li><strong>Added:<\/strong> Comprehensive test suite with 15 validation categories<\/li>\n<li><strong>Added:<\/strong> PHPCS, PHPStan, and PHPUnit configuration files<\/li>\n<li><strong>Added:<\/strong> Security scanning (SAST) and vulnerability checking<\/li>\n<li><strong>Added:<\/strong> PHP compatibility checks (7.4 - 8.4)<\/li>\n<li><strong>Added:<\/strong> Accessibility testing infrastructure<\/li>\n<li><strong>Added:<\/strong> Complete testing documentation (TESTING.md, TEST-REPORT.md)<\/li>\n<\/ul>\n\n<h4>1.0.0 - 2025-01-XX<\/h4>\n\n<p><strong>Initial Release<\/strong><\/p>\n\n<ul>\n<li><strong>Added:<\/strong> Format selection modal on new post creation with visual cards for all 10 post formats<\/li>\n<li><strong>Added:<\/strong> 10 format-specific block patterns optimized for each post type (Standard, Aside, Status, Link, Gallery, Image, Quote, Video, Audio, Chat)<\/li>\n<li><strong>Added:<\/strong> Locked first blocks in patterns to maintain format consistency while allowing full content freedom<\/li>\n<li><strong>Added:<\/strong> Automatic post format detection on save analyzing first block content structure<\/li>\n<li><strong>Added:<\/strong> Format Switcher sidebar panel for mid-edit format changes with content preservation options<\/li>\n<li><strong>Added:<\/strong> Status format 280-character validation with real-time counter and visual feedback<\/li>\n<li><strong>Added:<\/strong> Post format repair tool (Tools \u2192 Post Format Repair) for scanning and fixing format mismatches<\/li>\n<li><strong>Added:<\/strong> Integrated Chat Log block (chatlog\/conversation) for conversation transcripts\u2014no separate plugin needed<\/li>\n<li><strong>Added:<\/strong> Chat Log platform support: Slack, Discord, Teams, Telegram, WhatsApp, Signal with automatic detection<\/li>\n<li><strong>Added:<\/strong> Chat Log display styles: bubbles, IRC, transcript, timeline with full customization options<\/li>\n<li><strong>Added:<\/strong> Bookmark Card plugin integration for Link format with graceful fallback to standard linked paragraphs<\/li>\n<li><strong>Added:<\/strong> Theme-agnostic styling using CSS custom properties from theme.json for seamless integration<\/li>\n<li><strong>Added:<\/strong> Complete keyboard navigation for all interactive elements (modals, switcher, patterns)<\/li>\n<li><strong>Added:<\/strong> Screen reader support with ARIA labels, live regions, and semantic HTML structure<\/li>\n<li><strong>Added:<\/strong> RTL language support for international WordPress sites<\/li>\n<li><strong>Added:<\/strong> Complete internationalization with translation-ready strings and JavaScript translation support<\/li>\n<li><strong>Added:<\/strong> Developer filters: <code>pfbt_registered_formats<\/code>, <code>pfbt_detected_format<\/code>, <code>pfbt_pattern_content<\/code><\/li>\n<li><strong>Added:<\/strong> Developer actions: <code>pfbt_format_detected<\/code>, <code>pfbt_format_repaired<\/code>, <code>pfbt_format_changed<\/code><\/li>\n<li><strong>Added:<\/strong> Comprehensive format detection rules for gallery, image, video, audio, quote, link, chat blocks<\/li>\n<li><strong>Added:<\/strong> Block theme requirement validation on activation with helpful error messages<\/li>\n<li><strong>Security:<\/strong> All user input escaped and sanitized following WordPress security standards<\/li>\n<li><strong>Performance:<\/strong> JavaScript only loads in block editor, not on frontend for optimal site speed<\/li>\n<li><strong>Performance:<\/strong> CSS uses native custom properties, no JavaScript-generated styles for better performance<\/li>\n<li><strong>Performance:<\/strong> Auto-detection runs only on post save, not on every page load to prevent overhead<\/li>\n<li><strong>Privacy:<\/strong> No data collection, external API calls, cookies, or user tracking<\/li>\n<\/ul>","raw_excerpt":"Bring post formats to block themes with auto-detection, format-specific patterns, and Chat Log block for displaying conversation transcripts.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/265807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=265807"}],"author":[{"embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/courane01"}],"wp:attachment":[{"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=265807"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=265807"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=265807"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=265807"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=265807"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=265807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}