{"id":263192,"date":"2025-12-04T14:53:30","date_gmt":"2025-12-04T14:53:30","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/peeps\/"},"modified":"2026-03-03T18:54:50","modified_gmt":"2026-03-03T18:54:50","slug":"peeps-people-directory","status":"publish","type":"plugin","link":"https:\/\/bal.wordpress.org\/plugins\/peeps-people-directory\/","author":8048003,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.2.2","stable_tag":"2.2.2","tested":"7.0","requires":"6.7","requires_php":"8.0","requires_plugins":null,"header_name":"Peeps \u2013 People Directory","header_author":"Phil Hoyt","header_description":"A directory of people for your WordPress site.","assets_banners_color":"1c1c1c","last_updated":"2026-03-03 18:54:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/philhoyt\/WP-Peeps","header_author_uri":"https:\/\/philhoyt.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":243,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.2":{"tag":"2.0.2","author":"philhoyt","date":"2025-12-04 15:03:21"},"2.2.0":{"tag":"2.2.0","author":"philhoyt","date":"2026-03-03 00:02:06"},"2.2.2":{"tag":"2.2.2","author":"philhoyt","date":"2026-03-03 18:54:50"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3411092,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3411092,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3411092,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"ph-peeps\/phone":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"ph-peeps\/phone","version":"1.1.0","title":"Phone Number","category":"peeps-people-directory","icon":"phone","description":"Display a person's phone number","attributes":{"tagName":{"type":"string","default":"p"},"makeLink":{"type":"boolean","default":false},"prefix":{"type":"string","default":""},"className":{"type":"string"}},"supports":{"html":false,"anchor":true,"className":true,"color":{"text":true,"background":true,"link":true,"gradients":true},"typography":{"fontSize":true,"lineHeight":true,"textAlign":true,"__experimentalFontFamily":true,"__experimentalFontStyle":true,"__experimentalFontWeight":true,"__experimentalLetterSpacing":true,"__experimentalTextTransform":true,"__experimentalTextDecoration":true,"__experimentalWritingMode":true,"__experimentalDefaultControls":{"fontSize":true}},"spacing":{"margin":true,"padding":true}},"usesContext":["postId","postType"],"textdomain":"peeps-people-directory","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","render":"file:.\/render.php"},"ph-peeps\/email":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"ph-peeps\/email","version":"1.1.0","title":"Email Address","category":"peeps-people-directory","icon":"at-symbol","description":"Display a person's email address","attributes":{"tagName":{"type":"string","default":"p"},"makeLink":{"type":"boolean","default":false},"prefix":{"type":"string","default":""},"className":{"type":"string"}},"supports":{"html":false,"anchor":true,"className":true,"color":{"text":true,"background":true,"link":true,"gradients":true},"typography":{"fontSize":true,"lineHeight":true,"textAlign":true,"__experimentalFontFamily":true,"__experimentalFontStyle":true,"__experimentalFontWeight":true,"__experimentalLetterSpacing":true,"__experimentalTextTransform":true,"__experimentalTextDecoration":true,"__experimentalWritingMode":true,"__experimentalDefaultControls":{"fontSize":true}},"spacing":{"margin":true,"padding":true}},"usesContext":["postId","postType"],"textdomain":"peeps-people-directory","editorScript":"file:.\/index.js","style":"file:.\/style.css","render":"file:.\/render.php"},"ph-peeps\/social-links":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"ph-peeps\/social-links","version":"1.1.0","title":"Social Links - WP Peeps","category":"peeps-people-directory","icon":"share","description":"Add and customize social media links.","supports":{"html":false,"align":true,"spacing":{"blockGap":true,"margin":true,"padding":true,"units":["px","em","rem","vh","vw"]},"layout":{"allowSwitching":false,"allowInheriting":false,"allowJustification":true,"allowVerticalAlignment":true,"allowWrapping":true,"default":{"type":"flex","orientation":"horizontal","justifyContent":"left"}},"__experimentalSelector":".wp-block-ph-peeps-social-links"},"attributes":{"iconColorValue":{"type":"string"},"iconBackgroundColorValue":{"type":"string"},"size":{"type":"string","default":"has-normal-icon-size"},"style":{"type":"object"},"className":{"type":"string"},"openInNewTab":{"type":"boolean","default":false},"showLabels":{"type":"boolean","default":false}},"styles":[{"name":"default","label":"Default","isDefault":true},{"name":"logos-only","label":"Logos Only"}],"textdomain":"peeps-people-directory","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","render":"file:.\/render.php"},"ph-peeps\/full-name":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"ph-peeps\/full-name","version":"1.1.0","title":"Full Name","category":"peeps-people-directory","icon":"id","description":"Display a person's full name with configurable parts","attributes":{"showFirst":{"type":"boolean","default":true},"showMiddle":{"type":"boolean","default":true},"showLast":{"type":"boolean","default":true},"tagName":{"type":"string","default":"h2"},"makeLink":{"type":"boolean","default":false},"openInNewTab":{"type":"boolean","default":false},"linkRel":{"type":"string","default":""},"style":{"type":"object"},"fontSize":{"type":"string"},"className":{"type":"string"}},"supports":{"html":false,"anchor":true,"className":true,"color":{"text":true,"background":true,"link":true},"spacing":{"margin":true,"padding":true},"typography":{"fontSize":true,"lineHeight":true,"textAlign":true,"__experimentalFontFamily":true,"__experimentalFontStyle":true,"__experimentalFontWeight":true,"__experimentalLetterSpacing":true,"__experimentalTextTransform":true,"__experimentalTextDecoration":true,"__experimentalWritingMode":true,"__experimentalDefaultControls":{"fontSize":true}}},"usesContext":["postId","postType"],"textdomain":"peeps-people-directory","editorScript":"file:.\/index.js","render":"file:.\/render.php"}},"tagged_versions":["2.0.2","2.2.0","2.2.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3411092,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3411092,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3411092,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3411092,"resolution":"4","location":"assets","locale":""}},"screenshots":{"1":"Example of a person post displayed on the frontend","2":"Fields available when editing a person post","3":"Available Peeps blocks in the block inserter","4":"Peeps \u2013 People Directory settings page"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2466,2465,3532,11420,3491],"plugin_category":[58],"plugin_contributors":[234989],"plugin_business_model":[],"class_list":["post-263192","plugin","type-plugin","status-publish","hentry","plugin_tags-directory","plugin_tags-employees","plugin_tags-people","plugin_tags-staff","plugin_tags-team","plugin_category-user-management","plugin_contributors-philhoyt","plugin_committers-philhoyt"],"banners":{"banner":"https:\/\/ps.w.org\/peeps-people-directory\/assets\/banner-772x250.png?rev=3411092","banner_2x":"https:\/\/ps.w.org\/peeps-people-directory\/assets\/banner-1544x500.png?rev=3411092","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/peeps-people-directory\/assets\/icon-256x256.png?rev=3411092","icon_2x":"https:\/\/ps.w.org\/peeps-people-directory\/assets\/icon-256x256.png?rev=3411092","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/peeps-people-directory\/assets\/screenshot-1.png?rev=3411092","caption":"Example of a person post displayed on the frontend"},{"src":"https:\/\/ps.w.org\/peeps-people-directory\/assets\/screenshot-2.png?rev=3411092","caption":"Fields available when editing a person post"},{"src":"https:\/\/ps.w.org\/peeps-people-directory\/assets\/screenshot-3.png?rev=3411092","caption":"Available Peeps blocks in the block inserter"},{"src":"https:\/\/ps.w.org\/peeps-people-directory\/assets\/screenshot-4.png?rev=3411092","caption":"Peeps \u2013 People Directory settings page"}],"raw_content":"<!--section=description-->\n<p>Peeps \u2013 People Directory is a WordPress plugin that helps you create and manage a directory of people on your website. Perfect for displaying staff members, team rosters, or employee directories.<\/p>\n\n<p>Features:<\/p>\n\n<ul>\n<li>Custom post type for managing people profiles<\/li>\n<li>Block templates for single person posts and archive pages<\/li>\n<li>Configurable phone number formatting<\/li>\n<li>Custom URL structure for people profiles<\/li>\n<li>Public\/private directory option<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Download the latest release from GitHub<\/li>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/peeps<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress<\/li>\n<li>Go to People \u2192 Settings to configure the plugin options<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20change%20the%20url%20structure%20for%20people%20profiles%3F\"><h3>How do I change the URL structure for people profiles?<\/h3><\/dt>\n<dd><p>Go to People \u2192 Settings and update the \"Directory Slug\" field. After saving, visit the WordPress Permalinks page and click \"Save Changes\" to update your URLs.<\/p><\/dd>\n<dt id=\"can%20i%20make%20the%20directory%20private%3F\"><h3>Can I make the directory private?<\/h3><\/dt>\n<dd><p>Yes, in People \u2192 Settings you can disable the \"Make People Directory Public\" option to make the directory visible only to logged-in users.<\/p><\/dd>\n<dt id=\"how%20do%20i%20format%20phone%20numbers%3F\"><h3>How do I format phone numbers?<\/h3><\/dt>\n<dd><p>Go to People \u2192 Settings and update the \"Phone Number Format\" field. Use # symbols where you want digits to appear. For example: (###) ###-####<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.2<\/h4>\n\n<ul>\n<li>Added Developer Docs tab to the settings page with reference tables for the post type key, meta keys, available blocks, and settings options<\/li>\n<li>Fixed phone block displaying empty in the editor when no phone number is set \u2014 now shows the configured format as a placeholder<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Added 9 missing social platform detections: Discord, TikTok, Threads, Patreon, VK, 500px, RSS\/Atom feeds, Gravatar, and mailto links<\/li>\n<li>Full Name block now prevents disabling the last active name part<\/li>\n<li>Full Name block now shows an editor warning when no name parts are selected<\/li>\n<li>Fixed email meta validation to trim whitespace before checking validity<\/li>\n<li>Fixed redundant text alignment class being manually applied in phone and email blocks (now handled automatically by WordPress block supports)<\/li>\n<li>Fixed brittle email block placeholder check (was comparing against a hardcoded string)<\/li>\n<li>Centralized default values for phone format, CPT slug, and menu position into a single source of truth<\/li>\n<li>Consolidated multiple useSelect calls in the editor panel into one<\/li>\n<li>Removed duplicate constants and utility functions across block files<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>People post type is now always available in the Query Loop block, regardless of the \"Make People Directory Public\" setting<\/li>\n<li>Single person profile pages return 404 when the directory is set to private<\/li>\n<li>Social links block preview now updates immediately when links are added, removed, or reordered without requiring a post save<\/li>\n<li>Fixed editor sidebar styles not applying correctly in the admin page<\/li>\n<li>Fixed spacing between fields in the Person Name, Contact Information, and Social Links editor panels<\/li>\n<li>Fixed TextControl deprecation warnings for WordPress 7 compatibility<\/li>\n<li>Added phone extension field to the Contact Information panel<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>BREAKING: Updated all prefixes from \"wp_peeps\" to \"ph_peeps\" for WordPress Directory compliance<\/li>\n<li>BREAKING: Post type changed from \"wp_peeps_people\" to \"ph_peeps_people\"<\/li>\n<li>BREAKING: All meta keys changed from \"wp_peeps_<em>\" to \"ph_peeps_<\/em>\"<\/li>\n<li>BREAKING: All option names changed from \"wp_peeps_<em>\" to \"ph_peeps_<\/em>\"<\/li>\n<li>BREAKING: Block names changed from \"wp-peeps\/<em>\" to \"ph-peeps\/<\/em>\"<\/li>\n<li>Updated plugin name to \"Peeps \u2013 People Directory\"<\/li>\n<li>Updated namespaces from \"WP_Peeps\" to \"PH_Peeps\"<\/li>\n<li>Updated text domain from \"wp-peeps\" to \"peeps-people-directory\"<\/li>\n<li>Added sanitization callbacks for boolean settings<\/li>\n<li>Note: Existing posts and settings will need to be migrated or re-entered<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Updated plugin name from \"WP Peeps\" to \"Peeps\" for WordPress Directory compliance<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added block template for archive pages<\/li>\n<li>Archive template includes featured image, name, contact information, and social links<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Automatic permalink flush on plugin activation<\/li>\n<li>Automatic permalink flush on plugin deactivation<\/li>\n<li>Added notice when changing settings that affect permalinks (slug, public status, archive)<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added block template registration for single person posts<\/li>\n<li>Default template includes featured image, full name, contact information, and social links<\/li>\n<li>Template is customizable through the Site Editor<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Stable release<\/li>\n<li>Comprehensive code audit and security improvements<\/li>\n<li>Fixed XSS vulnerabilities<\/li>\n<li>Added proper validation and sanitization<\/li>\n<li>Improved error handling and logging<\/li>\n<li>Code quality improvements and documentation<\/li>\n<li>Performance optimizations<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Disable post title editing<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>People directory custom post type<\/li>\n<li>Admin settings page<\/li>\n<li>Phone number formatting<\/li>\n<li>Required name fields<\/li>\n<li>Contact information fields<\/li>\n<\/ul>","raw_excerpt":"A WordPress plugin for managing and displaying people profiles.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/263192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=263192"}],"author":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/philhoyt"}],"wp:attachment":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=263192"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=263192"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=263192"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=263192"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=263192"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=263192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}