[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fFhVn7djHCpN_a9QYu06zQAkqHjwObZX11M43NuDPa6I":3},{"slug":4,"display_name":5,"profile_url":6,"plugin_count":7,"total_installs":8,"avg_security_score":9,"avg_patch_time_days":10,"trust_score":11,"computed_at":12,"plugins":13},"courane01","Courtney Robertson","https:\u002F\u002Fprofiles.wordpress.org\u002Fcourane01\u002F",2,0,100,30,94,"2026-04-04T02:13:16.317Z",[14,35],{"slug":15,"name":16,"version":17,"author":5,"author_profile":6,"description":18,"short_description":19,"active_installs":8,"downloaded":20,"rating":8,"num_ratings":8,"last_updated":21,"tested_up_to":22,"requires_at_least":23,"requires_php":24,"tags":25,"homepage":31,"download_link":32,"security_score":9,"vuln_count":8,"unpatched_count":8,"last_vuln_date":33,"fetched_at":34},"link-extension-for-xfn","Link Extension for XFN","1.0.3","\u003Cp>The XFN Relationship Link Extension seamlessly integrates XFN (XHTML Friends Network) relationship options into WordPress’s native link interface. This plugin enhances every block that supports links—including Paragraph, Button, Navigation, List, and more—with comprehensive relationship tagging capabilities through an intuitive collapsible interface.\u003C\u002Fp>\n\u003Cp>XFN is a simple way to represent human relationships using hyperlinks. By adding XFN relationships to your links, you can indicate how you’re connected to the people and organizations you link to, creating a more semantic and meaningful web.\u003C\u002Fp>\n\u003Ch3>Key Features\u003C\u002Fh3>\n\u003Ch3>Complete XFN 1.1 Specification Support\u003C\u002Fh3>\n\u003Cp>This plugin implements the full XFN 1.1 specification with all relationship categories:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Friendship relationships\u003C\u002Fstrong>: contact, acquaintance, friend\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Physical relationships\u003C\u002Fstrong>: met (have you met this person?)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Professional relationships\u003C\u002Fstrong>: co-worker, colleague\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Geographical relationships\u003C\u002Fstrong>: co-resident, neighbor\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Family relationships\u003C\u002Fstrong>: child, parent, sibling, spouse, kin\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Romantic relationships\u003C\u002Fstrong>: muse, crush, date, sweetheart\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Identity relationships\u003C\u002Fstrong>: me (link to yourself)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Dual Interface Integration with Collapsible Design\u003C\u002Fh3>\n\u003Cp>The plugin provides XFN controls in two convenient locations, both featuring a clean collapsible interface:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Link Advanced Panel\u003C\u002Fstrong> (Always enabled): Collapsible XFN section in link popovers for inline links – works immediately after installation\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Inspector Controls\u003C\u002Fstrong> (Optional): Panel in the block sidebar for Button, Image, Navigation, and Embed blocks – enable in Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Link Extension for XFN\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Seamless Integration with WordPress\u003C\u002Fh3>\n\u003Cp>The plugin extends the existing link interfaces without disrupting your workflow:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Works with Paragraph, Button, Navigation, List, Embed, and all other link-supporting blocks\u003C\u002Fli>\n\u003Cli>Compatible with both Post Editor and Site Editor\u003C\u002Fli>\n\u003Cli>Preserves existing rel attributes (nofollow, noopener, noreferrer)\u003C\u002Fli>\n\u003Cli>No configuration required – works immediately after activation\u003C\u002Fli>\n\u003Cli>Clean collapsible interface matches WordPress design patterns\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Advanced User Interface with Collapsible Sections\u003C\u002Fh3>\n\u003Cp>The relationship selection interface is designed for optimal usability with modern collapsible design:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Collapsible XFN sections\u003C\u002Fstrong>: Clean toggle buttons with expand\u002Fcollapse animation\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Visual relationship pills\u003C\u002Fstrong>: Color-coded indicators show active relationships at a glance\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Count badges\u003C\u002Fstrong>: Quickly see how many relationships are active without expanding\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Intelligent grouping\u003C\u002Fstrong>: Related options are logically organized by category within sections\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Button groups\u003C\u002Fstrong>: Modern toggle-style buttons for easy relationship selection\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mutual exclusivity\u003C\u002Fstrong>: Button groups prevent conflicting relationships (e.g., can’t be both “friend” and “acquaintance”)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multi-selection support\u003C\u002Fstrong>: Checkbox-style groups allow multiple compatible relationships\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Real-time validation\u003C\u002Fstrong>: Prevents invalid relationship combinations\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Smooth animations\u003C\u002Fstrong>: Fluid expand\u002Fcollapse transitions\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How to Add XFN Relationships to Links\u003C\u002Fh3>\n\u003Ch3>Quick Start\u003C\u002Fh3>\n\u003Cp>After installation, XFN options are immediately available for inline links (links within paragraphs, headings, lists).\u003C\u002Fp>\n\u003Cp>To use XFN with Button, Image, Navigation, and Embed blocks, go to \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Link Extension for XFN\u003C\u002Fstrong> and enable \u003Cstrong>Inspector Controls\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch3>Method 1: Using Link Advanced Panel (Always Available)\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Create or edit an inline link in any block (Paragraph, List, etc.)\u003C\u002Fli>\n\u003Cli>In the link popover, click “Advanced” to expand additional options\u003C\u002Fli>\n\u003Cli>Find the “XFN” collapsible section and click to expand\u003C\u002Fli>\n\u003Cli>Select relationships using the organized button groups\u003C\u002Fli>\n\u003Cli>See your active relationships in the summary pills\u003C\u002Fli>\n\u003Cli>Click “Apply” to save your XFN relationships\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Method 2: Using Inspector Controls (Enable in Settings)\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Go to Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Link Extension for XFN and enable Inspector Controls\u003C\u002Fli>\n\u003Cli>Select a Button, Image, Navigation, or Embed block\u003C\u002Fli>\n\u003Cli>Look in the right sidebar – “XFN Relationships” panel opens by default\u003C\u002Fli>\n\u003Cli>Select relationships using radio buttons and checkboxes organized by category\u003C\u002Fli>\n\u003Cli>Relationships save automatically as you select them\u003C\u002Fli>\n\u003Cli>View active relationships in the summary section with color-coded pills\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Understanding XFN Relationship Categories\u003C\u002Fh3>\n\u003Ch3>Friendship Relationships (Choose One)\u003C\u002Fh3>\n\u003Cp>These are mutually exclusive – you can only select one friendship level per person:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>contact\u003C\u002Fstrong>: Someone you know how to get in touch with\u003C\u002Fli>\n\u003Cli>\u003Cstrong>acquaintance\u003C\u002Fstrong>: Someone you’ve met but don’t know well\u003C\u002Fli>\n\u003Cli>\u003Cstrong>friend\u003C\u002Fstrong>: Someone you consider a friend\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Physical Meeting\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>met\u003C\u002Fstrong>: Check this if you’ve met this person face-to-face\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Professional Relationships (Multiple Allowed)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>co-worker\u003C\u002Fstrong>: Someone you work with at the same company\u003C\u002Fli>\n\u003Cli>\u003Cstrong>colleague\u003C\u002Fstrong>: Someone in your professional field or industry\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Geographical Relationships (Choose One)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>co-resident\u003C\u002Fstrong>: Someone who lives in the same residence\u003C\u002Fli>\n\u003Cli>\u003Cstrong>neighbor\u003C\u002Fstrong>: Someone who lives nearby\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Family Relationships (Choose One)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>child\u003C\u002Fstrong>: Your child\u003C\u002Fli>\n\u003Cli>\u003Cstrong>parent\u003C\u002Fstrong>: Your parent\u003C\u002Fli>\n\u003Cli>\u003Cstrong>sibling\u003C\u002Fstrong>: Your brother or sister\u003C\u002Fli>\n\u003Cli>\u003Cstrong>spouse\u003C\u002Fstrong>: Your husband, wife, or domestic partner\u003C\u002Fli>\n\u003Cli>\u003Cstrong>kin\u003C\u002Fstrong>: Other family relation\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Romantic Relationships (Multiple Allowed)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>muse\u003C\u002Fstrong>: Someone who inspires you\u003C\u002Fli>\n\u003Cli>\u003Cstrong>crush\u003C\u002Fstrong>: Someone you have romantic feelings for\u003C\u002Fli>\n\u003Cli>\u003Cstrong>date\u003C\u002Fstrong>: Someone you’re dating\u003C\u002Fli>\n\u003Cli>\u003Cstrong>sweetheart\u003C\u002Fstrong>: Someone you have a romantic relationship with\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Identity\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>me\u003C\u002Fstrong>: A link to your own content or profiles\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Integration with Popular Blocks\u003C\u002Fh3>\n\u003Ch3>Button Block\u003C\u002Fh3>\n\u003Cp>Use the Inspector Controls for quick relationship assignment. The XFN Relationships panel opens by default, letting you select relationships that save automatically.\u003C\u002Fp>\n\u003Ch3>Navigation Block\u003C\u002Fh3>\n\u003Cp>Enhance your site navigation with relationship context using the Inspector Controls. Mark links to your social profiles, partner sites, or affiliated organizations with the organized collapsible interface.\u003C\u002Fp>\n\u003Ch3>Embed Block\u003C\u002Fh3>\n\u003Cp>Add semantic meaning to embedded content from YouTube, Twitter, and other platforms. Use the Inspector Controls to indicate relationships with embedded content creators, marking videos from colleagues, friends, or your own channels. Perfect for blogrolls, resource pages, and content aggregation.\u003C\u002Fp>\n\u003Ch3>Paragraph Block (Inline Links)\u003C\u002Fh3>\n\u003Cp>For inline links within paragraph content, use the collapsible XFN section in the link popover’s Advanced area to add relationship context without overwhelming the interface.\u003C\u002Fp>\n\u003Ch3>List Block\u003C\u002Fh3>\n\u003Cp>Build relationship-rich link lists using the Link Advanced Panel for inline links or Inspector Controls for block-level links. The collapsible sections make it easy to manage multiple relationships across list items.\u003C\u002Fp>\n\u003Ch3>Cover Block and Media & Text Block\u003C\u002Fh3>\n\u003Cp>Add relationship context to overlay links and media-associated links using the Link Advanced Panel for inline links or Inspector Controls for block-level elements.\u003C\u002Fp>\n\u003Ch3>Technical Implementation\u003C\u002Fh3>\n\u003Ch3>Source Code & Build Tools\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>This plugin uses build tools to compile and optimize code for production.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>All uncompiled, human-readable source code is included in the plugin’s \u003Ccode>src\u002F\u003C\u002Fcode> directory and is publicly available on GitHub.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Source files (uncompiled):\u003C\u002Fstrong>\u003Cbr \u002F>\n* JavaScript: \u003Ccode>src\u002Findex.js\u003C\u002Fcode> (main plugin logic)\u003Cbr \u002F>\n* Styles: \u003Ccode>src\u002Feditor.scss\u003C\u002Fcode> (editor styles)\u003Cbr \u002F>\n* Additional: \u003Ccode>src\u002Fview.js\u003C\u002Fcode>, \u003Ccode>src\u002Fedit.js\u003C\u002Fcode>, \u003Ccode>src\u002Fsave.js\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Compiled files (production):\u003C\u002Fstrong>\u003Cbr \u002F>\n* JavaScript: \u003Ccode>build\u002Findex.js\u003C\u002Fcode>, \u003Ccode>build\u002Fview.js\u003C\u002Fcode>\u003Cbr \u002F>\n* Styles: \u003Ccode>build\u002Findex.css\u003C\u002Fcode>, \u003Ccode>build\u002Findex-rtl.css\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Build tools:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Build system: WordPress Scripts (webpack-based)\u003Cbr \u002F>\n* Required: Node.js 14+ and npm\u003Cbr \u002F>\n* Build command: \u003Ccode>npm run build\u003C\u002Fcode>\u003Cbr \u002F>\n* Development mode: \u003Ccode>npm start\u003C\u002Fcode> (watches for file changes)\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How to rebuild from source:\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Clone or download from GitHub: https:\u002F\u002Fgithub.com\u002Fcourtneyr-dev\u002Fxfn-link-extension\u003Cbr \u002F>\n2. Install dependencies: \u003Ccode>npm install\u003C\u002Fcode>\u003Cbr \u002F>\n3. Build production files: \u003Ccode>npm run build\u003C\u002Fcode>\u003Cbr \u002F>\n4. Output will be in the \u003Ccode>build\u002F\u003C\u002Fcode> directory\u003C\u002Fp>\n\u003Cp>\u003Cstrong>GitHub repository (complete source):\u003C\u002Fstrong> https:\u002F\u002Fgithub.com\u002Fcourtneyr-dev\u002Fxfn-link-extension\u003C\u002Fp>\n\u003Ch3>Rel Attribute Management\u003C\u002Fh3>\n\u003Cp>The plugin intelligently manages the HTML rel attribute:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Combines XFN relationships with existing rel values\u003C\u002Fli>\n\u003Cli>Preserves SEO-important attributes like nofollow\u003C\u002Fli>\n\u003Cli>Maintains security attributes like noopener and noreferrer\u003C\u002Fli>\n\u003Cli>Uses space-separated format per HTML specification\u003C\u002Fli>\n\u003Cli>Validates relationship combinations to prevent conflicts\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Data Persistence\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Relationships are stored in the standard HTML rel attribute\u003C\u002Fli>\n\u003Cli>No custom database tables or meta fields required\u003C\u002Fli>\n\u003Cli>Compatible with all WordPress import\u002Fexport tools\u003C\u002Fli>\n\u003Cli>Relationships survive theme changes and plugin deactivation\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Performance Optimized\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Lightweight JavaScript bundle under 12KB gzipped\u003C\u002Fli>\n\u003Cli>Lazy-loaded collapsible sections only when accessed\u003C\u002Fli>\n\u003Cli>No impact on frontend performance\u003C\u002Fli>\n\u003Cli>Uses WordPress core components for consistency\u003C\u002Fli>\n\u003Cli>Smooth animations without performance penalties\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Migration from Other XFN Plugins\u003C\u002Fh3>\n\u003Cp>If you’re migrating from another XFN plugin:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Classic Editor plugins\u003C\u002Fstrong>: Existing XFN data in post meta will be preserved\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom rel attributes\u003C\u002Fstrong>: Any existing rel values are maintained\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Manual XFN\u003C\u002Fstrong>: Manually entered XFN relationships in rel attributes work immediately\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Troubleshooting\u003C\u002Fh3>\n\u003Ch3>XFN options don’t appear in floating toolbar\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>Check block type\u003C\u002Fstrong>: Only blocks that are entirely links (Button, Navigation Link, etc.) show the XFN toolbar button\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Verify WordPress version\u003C\u002Fstrong>: Requires WordPress 6.4 or later\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clear browser cache\u003C\u002Fstrong>: Try refreshing the page or clearing browser cache\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Check for block selection\u003C\u002Fstrong>: Ensure the block is properly selected\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>XFN section won’t expand in link popover\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>Check Advanced section\u003C\u002Fstrong>: XFN options appear when you click “Advanced” in the link popover, then look for the “XFN” toggle\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Try clicking the toggle\u003C\u002Fstrong>: The XFN section requires an additional click to expand\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Verify in block editor\u003C\u002Fstrong>: Plugin only works with Gutenberg blocks, not Classic Editor\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Check browser console\u003C\u002Fstrong>: Look for JavaScript errors that might prevent interaction\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Collapsible sections not animating smoothly\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>Check browser compatibility\u003C\u002Fstrong>: Ensure you’re using a modern, supported browser\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Verify CSS loading\u003C\u002Fstrong>: Check that plugin stylesheets are loading properly\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Test in incognito mode\u003C\u002Fstrong>: Rule out browser extension interference\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Disable other plugins\u003C\u002Fstrong>: Test for plugin conflicts by temporarily disabling other plugins\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Count badges not updating\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>Try refreshing\u003C\u002Fstrong>: Sometimes a page refresh resolves display issues\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Check JavaScript console\u003C\u002Fstrong>: Look for errors that might prevent updates\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Test relationship changes\u003C\u002Fstrong>: Make sure you’re actually changing relationships\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Verify plugin activation\u003C\u002Fstrong>: Ensure the plugin is properly activated\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Relationships not saving properly\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>Check browser console\u003C\u002Fstrong>: Look for JavaScript errors that might prevent saving\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Verify user permissions\u003C\u002Fstrong>: Ensure you have permission to edit the content\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Test with default theme\u003C\u002Fstrong>: Temporarily switch to a default WordPress theme\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Disable other plugins\u003C\u002Fstrong>: Test for plugin conflicts by temporarily disabling other plugins\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Keyboard navigation issues with collapsible sections\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>Test tab order\u003C\u002Fstrong>: Use Tab key to navigate to toggle buttons\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Try space\u002Fenter\u003C\u002Fstrong>: Space or Enter should expand\u002Fcollapse sections\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Use arrow keys\u003C\u002Fstrong>: Arrow keys work within expanded button groups\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Check browser settings\u003C\u002Fstrong>: Ensure keyboard navigation is enabled in browser settings\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Screen reader compatibility with collapsible interface\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>Test with multiple screen readers\u003C\u002Fstrong>: NVDA, JAWS, and VoiceOver are all supported\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Check expansion announcements\u003C\u002Fstrong>: Section state changes should be announced\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Verify ARIA states\u003C\u002Fstrong>: All collapsible elements should have proper ARIA attributes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Update screen reader\u003C\u002Fstrong>: Ensure you’re using a current version of your screen reader\u003C\u002Fli>\n\u003C\u002Fol>\n","Add XFN (XHTML Friends Network) relationship metadata to WordPress links. Semantic social connections for the block editor.",156,"2025-12-09T18:39:00.000Z","6.9.4","6.4","7.4",[26,27,28,29,30],"accessibility","gutenberg","links","relationships","xfn","https:\u002F\u002Fgithub.com\u002Fcourtneyr-dev\u002Fxfn-link-extension","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flink-extension-for-xfn.1.0.3.zip",null,"2026-03-15T15:16:48.613Z",{"slug":36,"name":37,"version":38,"author":5,"author_profile":6,"description":39,"short_description":40,"active_installs":8,"downloaded":41,"rating":8,"num_ratings":8,"last_updated":42,"tested_up_to":22,"requires_at_least":43,"requires_php":24,"tags":44,"homepage":50,"download_link":51,"security_score":9,"vuln_count":8,"unpatched_count":8,"last_vuln_date":33,"fetched_at":52},"post-formats-for-block-themes","Post Formats for Block Themes","1.1.4","\u003Cp>\u003Cstrong>Post Formats for Block Themes\u003C\u002Fstrong> 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.\u003C\u002Fp>\n\u003Ch4>Why Post Formats Matter for Block Themes\u003C\u002Fh4>\n\u003Cp>WordPress post formats have been a powerful feature since WordPress 3.1, allowing content creators to style different types of posts distinctively—quotes 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.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Post Formats for Block Themes solves this problem\u003C\u002Fstrong>. 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.\u003C\u002Fp>\n\u003Ch4>Who This Plugin Is For\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Bloggers\u003C\u002Fstrong> who want variety in their post presentations without creating custom templates\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Content creators\u003C\u002Fstrong> who publish different types of content (articles, quotes, galleries, status updates)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>News sites\u003C\u002Fstrong> migrating from classic themes and want to preserve post format functionality\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Designers and developers\u003C\u002Fstrong> building block themes who need format support built-in\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Accessibility advocates\u003C\u002Fstrong> who require WCAG 2.2 AA compliant content tools\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Anyone moving from classic themes\u003C\u002Fstrong> who misses the post format features they relied on\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Key Features\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>10 Format-Specific Block Patterns\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>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:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Standard\u003C\u002Fstrong> – Traditional blog post with full title, featured image, and content blocks\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Aside\u003C\u002Fstrong> – Short note or update displayed in a styled bubble container without title requirement\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Status\u003C\u002Fstrong> – Twitter-style status update with 280-character validation and real-time counter\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Link\u003C\u002Fstrong> – Link sharing with automatic \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fbookmark-card\u002F\" rel=\"ugc\">Bookmark Card\u003C\u002Fa> integration when available, with graceful fallback to standard linked paragraphs\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Gallery\u003C\u002Fstrong> – Photo gallery starting with a locked gallery block for image collections\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Image\u003C\u002Fstrong> – Single image post with prominent image display and caption support\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Quote\u003C\u002Fstrong> – Quotation or citation with enhanced pullquote styling and attribution\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Video\u003C\u002Fstrong> – Video content using native video blocks or popular embed services. Integrates with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fableplayer\u002F\" rel=\"ugc\">Able Player\u003C\u002Fa> for enhanced accessible playback when available.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Audio\u003C\u002Fstrong> – Audio file or podcast embed with native player styling. Integrates with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpodlove-podcasting-plugin-for-wordpress\u002F\" rel=\"ugc\">Podlove Podcasting Plugin\u003C\u002Fa> for podcasts and \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fableplayer\u002F\" rel=\"ugc\">Able Player\u003C\u002Fa> for accessible playback when available.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Chat\u003C\u002Fstrong> – Conversation transcript using the integrated Chat Log block\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Integrated Chat Log Block\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>No separate plugin needed!\u003C\u002Fstrong> 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.\u003C\u002Fp>\n\u003Cp>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.\u003C\u002Fp>\n\u003Cp>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.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Automatic Format Detection\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>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.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Format Selection Modal\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>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.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Format Switcher Sidebar Panel\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>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.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Status Format Validation\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The Status format includes Twitter-style character validation with real-time counter, 280-character soft limit, visual feedback, accessibility announcements, and mobile-friendly composition.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Post Format Repair Tool\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Scan existing posts and fix format mismatches with the built-in repair tool (Tools \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Post Format Repair). Detects content\u002Fformat mismatches, bulk or individual repairs, preview suggestions, one-click fixes. Perfect for migrating from classic themes.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Theme-Agnostic Styling\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch4>How to Use Post Formats in Block Themes\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Creating Your First Formatted Post:\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Navigate to Posts \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Add New\u003Cbr \u002F>\n2. Format selection modal appears automatically\u003Cbr \u002F>\n3. Click your desired format (e.g., “Quote”)\u003Cbr \u002F>\n4. Pattern is inserted with locked first block\u003Cbr \u002F>\n5. Add content within the pattern\u003Cbr \u002F>\n6. Publish your formatted post\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Mid-Edit Format Switching:\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Open the right sidebar while editing\u003Cbr \u002F>\n2. Find the “Format Switcher” panel\u003Cbr \u002F>\n3. Choose a new format from dropdown\u003Cbr \u002F>\n4. Decide to replace or keep content\u003Cbr \u002F>\n5. Format updates instantly\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Using Auto-Detection:\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Start a new post without selecting a format\u003Cbr \u002F>\n2. Add content (e.g., insert a gallery block)\u003Cbr \u002F>\n3. Save as draft or publish\u003Cbr \u002F>\n4. Plugin automatically detects Gallery format\u003Cbr \u002F>\n5. Format is assigned without manual action\u003C\u002Fp>\n\u003Ch4>How to Create a Quote Post\u003C\u002Fh4>\n\u003Cp>Showcase quotations and citations beautifully:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Select Quote format from the modal\u003C\u002Fli>\n\u003Cli>The pullquote pattern loads with locked Quote block\u003C\u002Fli>\n\u003Cli>Type or paste your quote\u003C\u002Fli>\n\u003Cli>Add attribution in citation field\u003C\u002Fli>\n\u003Cli>Optional: Add commentary below the quote\u003C\u002Fli>\n\u003Cli>Customize styling via Global Styles\u003C\u002Fli>\n\u003Cli>Publish your enhanced quote post\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>The locked pullquote maintains format integrity while allowing unlimited additional content blocks.\u003C\u002Fp>\n\u003Ch4>How to Display Chat Conversations\u003C\u002Fh4>\n\u003Cp>Turn conversation transcripts into readable, attractive content:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Select Chat format when creating new post\u003C\u002Fli>\n\u003Cli>Chat Log block inserts automatically\u003C\u002Fli>\n\u003Cli>Copy conversation text from Slack, Discord, Teams, WhatsApp, etc.\u003C\u002Fli>\n\u003Cli>Paste into Chat Log block—platform detection is automatic\u003C\u002Fli>\n\u003Cli>Configure display options: style, avatars, timestamps, threads, device frame\u003C\u002Fli>\n\u003Cli>Preview the formatted conversation\u003C\u002Fli>\n\u003Cli>Publish your beautiful chat transcript\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch4>How to Automatically Detect Post Formats\u003C\u002Fh4>\n\u003Cp>Let the plugin handle format assignment:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Create new post without selecting format\u003C\u002Fli>\n\u003Cli>Add content normally (gallery, video, quote, etc.)\u003C\u002Fli>\n\u003Cli>Save draft or publish—detection runs on save\u003C\u002Fli>\n\u003Cli>Check Format Switcher panel for detected format\u003C\u002Fli>\n\u003Cli>Accept or manually override\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch4>How to Repair Mismatched Formats\u003C\u002Fh4>\n\u003Cp>Fix format assignments across your entire site:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Navigate to Tools \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Post Format Repair\u003C\u002Fli>\n\u003Cli>Click “Scan All Posts”—analyzes content vs. formats\u003C\u002Fli>\n\u003Cli>Review mismatch report\u003C\u002Fli>\n\u003Cli>Preview suggestions for each post\u003C\u002Fli>\n\u003Cli>Bulk repair all or fix individually\u003C\u002Fli>\n\u003Cli>Verify changes\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Common scenarios: migrating from classic themes, imported content, incorrect manual assignments, exploring your format distribution. The repair tool is safe—changes only format meta, never modifies post content.\u003C\u002Fp>\n\u003Ch4>Migrating from Classic Theme Post Formats\u003C\u002Fh4>\n\u003Cp>Preserve post format styling when switching to block themes:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Before Migration:\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Install plugin on classic theme site\u003Cbr \u002F>\n2. Leave classic theme active\u003Cbr \u002F>\n3. Test repair tool with scan (don’t apply yet)\u003Cbr \u002F>\n4. Review the report\u003C\u002Fp>\n\u003Cp>\u003Cstrong>During Migration:\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Switch to block theme\u003Cbr \u002F>\n2. Activate Post Formats for Block Themes\u003Cbr \u002F>\n3. Visit Tools \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Post Format Repair\u003Cbr \u002F>\n4. Run full scan\u003Cbr \u002F>\n5. Review suggestions\u003Cbr \u002F>\n6. Apply bulk repair\u003C\u002Fp>\n\u003Cp>\u003Cstrong>After Migration:\u003C\u002Fstrong>\u003Cbr \u002F>\n1. Check frontend display\u003Cbr \u002F>\n2. Customize styling in theme.json\u003Cbr \u002F>\n3. Create new posts with format patterns\u003Cbr \u002F>\n4. Optional: update old posts to use patterns\u003C\u002Fp>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch4>Block Theme Compatibility Guide\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>What Makes a “Block Theme”:\u003C\u002Fstrong>\u003Cbr \u002F>\nBlock themes use block templates (.html files) and theme.json instead of PHP templates. Key characteristics: templates\u002F folder with .html files, theme.json file, Full Site Editing support, activated via Appearance \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Themes. Learn more in the \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Fthemes\u002Fblock-themes\u002F\" rel=\"nofollow ugc\">WordPress Block Theme documentation\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Why Classic Themes Aren’t Supported:\u003C\u002Fstrong>\u003Cbr \u002F>\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 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fthemes\u002Ftwentythirteen\u002F\" rel=\"ugc\">Twenty Thirteen theme\u003C\u002Fa> which includes excellent built-in post format styling.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Recommended Compatible Block Themes:\u003C\u002Fstrong>\u003Cbr \u002F>\nTwenty Twenty-Five, Twenty Twenty-Four, Twenty Twenty-Three, Block themes from Automattic (Blank Canvas, Pendant), most modern block themes on WordPress.org.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Theme.json Integration:\u003C\u002Fstrong>\u003Cbr \u002F>\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.\u003C\u002Fp>\n\u003Ch4>Developer Guide: Extending Post Formats\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Add Custom Format:\u003C\u002Fstrong>\u003Cbr \u002F>\n    \u003Ccode>php\u003Cbr \u002F>\nadd_filter( 'pfbt_registered_formats', function( $formats ) {\u003Cbr \u002F>\n    $formats['review'] = [\u003Cbr \u002F>\n        'name'         => 'Review',\u003Cbr \u002F>\n        'description'  => 'Product review',\u003Cbr \u002F>\n        'icon'         => 'star-filled',\u003Cbr \u002F>\n        'pattern_slug' => 'my-theme\u002Freview-pattern',\u003Cbr \u002F>\n    ];\u003Cbr \u002F>\n    return $formats;\u003Cbr \u002F>\n} );\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Custom Detection Logic:\u003C\u002Fstrong>\u003Cbr \u002F>\n    \u003Ccode>php\u003Cbr \u002F>\nadd_filter( 'pfbt_detected_format', function( $format, $first_block, $all_blocks ) {\u003Cbr \u002F>\n    if ( $first_block['blockName'] === 'my-plugin\u002Fcustom-block' ) {\u003Cbr \u002F>\n        return 'gallery';\u003Cbr \u002F>\n    }\u003Cbr \u002F>\n    return $format;\u003Cbr \u002F>\n}, 10, 3 );\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Run Code After Detection:\u003C\u002Fstrong>\u003Cbr \u002F>\n    \u003Ccode>php\u003Cbr \u002F>\nadd_action( 'pfbt_format_detected', function( $post_id, $format, $post ) {\u003Cbr \u002F>\n    error_log( \"Post {$post_id} detected as {$format}\" );\u003Cbr \u002F>\n}, 10, 3 );\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Track Format Changes:\u003C\u002Fstrong>\u003Cbr \u002F>\n    \u003Ccode>php\u003Cbr \u002F>\nadd_action( 'pfbt_format_changed', function( $post_id, $old_format, $new_format ) {\u003Cbr \u002F>\n    \u002F\u002F Analytics tracking\u003Cbr \u002F>\n}, 10, 3 );\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>More filters and actions available for pattern content modification, post-repair actions, and format definition customization.\u003C\u002Fp>\n\u003Ch3>Additional Information\u003C\u002Fh3>\n\u003Ch4>Performance\u003C\u002Fh4>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch4>Browser Compatibility\u003C\u002Fh4>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch4>Support\u003C\u002Fh4>\n\u003Cp>For support: check FAQ section, read format descriptions, visit \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fpost-formats-for-block-themes\u002F\" rel=\"ugc\">WordPress.org support forums\u003C\u002Fa>, search existing threads, create new topic with details (WordPress version, PHP version, theme name, active plugins, issue description, reproduction steps, screenshots).\u003C\u002Fp>\n\u003Cp>For bug reports and feature requests: visit \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcourtneyr-dev\u002Fpost-formats-for-block-themes\" rel=\"nofollow ugc\">GitHub repository\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Contributing\u003C\u002Fh4>\n\u003Cp>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\u002FCD pipeline with automated testing, accessibility tested with axe-core.\u003C\u002Fp>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cp>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.\u003C\u002Fp>\n\u003Ch4>External Services\u003C\u002Fh4>\n\u003Cp>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.\u003C\u002Fp>\n","Bring post formats to block themes with auto-detection, format-specific patterns, and Chat Log block for displaying conversation transcripts.",331,"","6.8",[45,46,47,48,49],"block-editor","block-theme","chat-log","patterns","post-formats","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpost-formats-for-block-themes\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-formats-for-block-themes.1.1.4.zip","2026-03-15T10:48:56.248Z"]