PluginProbe ʕ •ᴥ•ʔ
Pods – Custom Content Types and Fields / 3.3.6
Pods – Custom Content Types and Fields v3.3.6
trunk 1.14.8 2.7.31.3 2.8.23.3 2.9.19.3 3.0.10.3 3.1.4.1 3.2.0 3.2.1 3.2.1.1 3.2.2 3.2.4 3.2.5 3.2.6 3.2.7 3.2.7.1 3.2.8 3.2.8.1 3.2.8.2 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9
pods / readme.txt
pods Last commit date
classes 4 months ago components 4 months ago deprecated 4 months ago includes 4 months ago sql 4 months ago src 4 months ago ui 4 months ago vendor 4 months ago changelog.txt 4 months ago init.php 4 months ago license.txt 10 years ago readme.txt 4 months ago
readme.txt
483 lines
1 === Pods - Custom Content Types and Fields ===
2 Contributors: sc0ttkclark, zrothauser, keraweb, jimtrue, quasel, nicdford, jamesgol, ramoonus, pglewis, dan.stefan, Desertsnowman, mgibbs189, Shelob9, clubduece, curtismchale, mikedamage, jchristopher, pcfreak30
3 Donate link: https://friends.pods.io/
4 Tags: pods, custom post types, custom taxonomies, content types, custom fields
5 Requires at least: 6.3
6 Tested up to: 7.0
7 Requires PHP: 7.2
8 Stable tag: 3.3.6
9 License: GPLv2 or later
10 License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
12 Pods is a framework for creating, managing, and deploying customized content types and fields for any project.
13
14 == Description ==
15
16 Manage all your custom content needs in one location with the Pods Framework.
17
18 * **Create content types** including Custom Post Types, Custom Taxonomies, and our special Advanced Content Types (ACTs get their own custom tables)
19 * **Extend and customize content types** including Posts, Pages, Categories, Tags, Users, and Media with one easy click
20 * **Create custom settings pages** easily within seconds
21 * **Add custom fields** to *any* content type
22 * **Conditionally show fields** based on the value of other fields with Conditional Logic
23 * **Group your fields** however you'd like into their own sections and add additional headings to help organize
24 * **Show your fields** anywhere using our [blocks](https://docs.pods.io/displaying-pods/pods-blocks/), [shortcodes](https://docs.pods.io/displaying-pods/pods-shortcode/), [widgets](https://docs.pods.io/displaying-pods/pods-widgets/), or the non-coder [Pods Template](https://docs.pods.io/displaying-pods/pods-templates/) approach along with our [automatic theme integration](https://docs.pods.io/displaying-pods/pods-templates/auto-templates/)
25 * **Create connections** between any of your content with [relationship fields](https://docs.pods.io/fields/relationship/) to keep your content organized
26
27 Let Pods help you grow your development and site building skills so that you can manage content beyond the standard WordPress Posts & Pages.
28
29 Want to check it out? Give Pods a test drive with our new [One-click Demo](https://pods.io/demo/).
30
31 Check out our [Documentation](https://docs.pods.io/), [Support Forums](https://wordpress.org/support/plugin/pods/), and our [Live Community Slack Chat](https://support.pods.io/chat/) for assistance building your dream project with Pods.
32
33 = Introduction =
34
35 [youtube https://www.youtube.com/watch?v=0WqKZr2gPZY]
36
37 = Content types that evolve with your needs =
38
39 Create any type of content that you want -- small or large -- we've got you covered. Every content type created with Pods gets all the love it needs to grow up big and strong. You'll get an easy-to-use interface that lets you manage field groups, custom fields, and how your content type will look or function.
40
41 = Create new content types =
42
43 With Pods, you can create entirely new content types and settings pages.
44
45 = Every Field Type, FREE =
46
47 If you choose to use Pods for your custom fields, you'll get every field type you need, free of charge. Pods works great alongside [other custom field plugins](https://comparewp.org/cck) like [Advanced Custom Fields](https://wordpress.org/plugins/advanced-custom-fields/) too.
48
49 We have an extensive collection of over [25 different input types to choose from on 20+ different field types for any content structure](https://docs.pods.io/fields/). Each field type comes with their own additional options to help you customize content entry and display.
50
51 You can also control visibility by role/capability and [other advanced options](https://docs.pods.io/fields/settings-advanced/).
52
53 * **Repeatable Fields:** Turn almost any field into a repeatable field with multiple values
54 * **Text:** Plain Text, Website, Phone, Email, Password
55 * **Paragraph:** Plain Paragraph Text, WYSIWYG (Visual Editor), Code (Syntax Highlighting)
56 * **Date / Time:** Date and Time, Date, Time
57 * **Number:** Plain Number, Currency (30+ international currencies)
58 * **Relationships / Media:** File / Image / Video (Media library and basic upload options available), Avatar (for extended Users), oEmbed, Relationship (Dropdown, Multi Select, Autocomplete, Checkboxes, Radio Buttons, and List View available)
59 * **Checkbox** (Yes / No)
60 * **Color Picker**
61 * **Layout Fields:** Heading text, HTML content
62
63 = Relationships to rule the world with =
64
65 The power is in your hands with our comprehensive support to **relate your content to anything**.
66
67 * **Custom defined lists** of text options
68 * Relate to any **Post Type or Taxonomy** posts / terms
69 * Relate to any **User** profile
70 * Relate to **User Roles or Capabilities**
71 * Relate to any **Comment**
72
73 And many other relationships are also available including:
74
75 * **Image Sizes**
76 * **Navigation Menus**
77 * Relate to content within **any Database Table**
78 * **Countries** (predefined)
79 * **US States** (predefined)
80 * **Canadian Provinces** (predefined)
81 * **Calendar - Days of Week** (predefined)
82 * **Calendar - Months of Year** (predefined)
83 * And many more!
84
85 = Optional Components to do even more =
86 You can enable some of our included components to extend your WordPress site even further:
87
88 * **Types-only Mode** - On our Pods Settings page, you can choose to disable creating custom fields for a performance boost if you only want to use Pods for content types or you plan on using it alongside of other custom field plugins
89 * **Pods Templates** - Use our [template engine](https://docs.pods.io/displaying-pods/pods-templates/) to create templates that can be handed off to clients for care-free management
90 * **Markdown Syntax** - Parses [Markdown Syntax](https://www.markdownguide.org/basic-syntax) for Paragraph Text / WYSIWYG fields
91 * **Advanced Relationships** - Add even more relationship objects including Database Tables, Multisite Networks, Multisite Sites, Themes, Page Templates (in the theme), Sidebars, Post Type Objects, and Taxonomy Objects
92 * **Table Storage** - Enable table-based database storage for custom fields on Post Types, Media, Users, and Comments
93 * **Roles and Capabilities** - Create or edit Roles for your site and customize what they have access to
94 * **Advanced Content Types** - Create entirely custom content types that have their own database table, and they will exist outside the normal WordPress context avoiding meta database tables
95 * **Pods Pages** - Create custom pages that function off of your site's URL path with wildcard support and choose the Page Template in the theme to use -- most useful paired with Advanced Content Types
96
97 = Plugins that integrate with Pods =
98
99 * [Advanced Views Lite](https://wplake.org/advanced-views-lite/?ref=5) - Lets you build templates (views) and queries (cards) so that you can manage your content rendering with less code. (Disclaimer: We have an affiliate link to them to help support our project)
100 * [Bricks Builder](https://bricksbuilder.io/)
101 * [Codepress Admin Columns](https://wordpress.org/plugins/codepress-admin-columns/) using premium [Admin Columns Pro](https://www.admincolumns.com/pods/) Pods integration
102 * [Conductor](https://conductorplugin.com/)
103 * [Elementor Pro](https://elementor.com/pro/)
104 * [Polylang](https://wordpress.org/plugins/polylang/) has direct integration in Pods itself
105 * [Timber](https://wordpress.org/plugins/timber-library/)
106 * [WPGraphQL](https://wordpress.org/plugins/wp-graphql/) has direct integration in Pods itself
107 * [WPML](http://wpml.org/) has direct integration in Pods itself
108 * [YARPP](http://wordpress.org/plugins/yet-another-related-posts-plugin/) has direct integration in Pods itself
109
110 = Themes that integrate with Pods =
111
112 * [Genesis](https://www.studiopress.com/themes/genesis/) (StudioPress) has direct integration in Pods itself
113
114 = Extend Pods with Free Add-Ons =
115
116 * [Pods Beaver Themer Add-On](https://wordpress.org/plugins/pods-beaver-builder-themer-add-on/) - Integrates Pods with [Beaver Themer](https://www.wpbeaverbuilder.com/beaver-themer/)
117 * [Pods Gravity Forms Add-On](https://wordpress.org/plugins/pods-gravity-forms/) - Integrates Pods with [Gravity Forms](https://www.gravityforms.com/)
118 * [Pods Alternative Cache Add-On](https://wordpress.org/plugins/pods-alternative-cache/) - Speed up Pods on servers with limited object caching capabilities
119 * [Pods SEO Add-On](https://wordpress.org/plugins/pods-seo/) - Integrates Pods Advanced Content Types with Yoast SEO
120 * [Pods AJAX Views Add-On](https://wordpress.org/plugins/pods-ajax-views/) - Adds new functions you can use to output template parts that load via AJAX after other page elements
121
122 = Extend Pods with Free Third-party Add-Ons =
123
124 * [Paid Memberships Pro - Pods Add On](https://wordpress.org/plugins/pmpro-pods/) - Integrates Pods with [Paid Memberships Pro](https://wordpress.org/plugins/paid-memberships-pro/) to extend PMPro objects with custom fields added by Pods
125 * [Panda Pods Repeater Field Add-On](https://wordpress.org/plugins/panda-pods-repeater-field/) - Lets you add groups of fields that repeat and are stored in their own custom database table (Advanced setup required)
126
127 = Pods Pro by SKCDEV Premium Add-Ons =
128
129 * [List Tables Add-On](https://pods-pro.skc.dev/downloads/list-tables/) - A new block and shortcode to list/filter content from Pods in a table format
130 * [Page Builder Toolkit Add-On](https://pods-pro.skc.dev/downloads/page-builder-toolkit/) - Integrates Pods with [Beaver Builder](https://wordpress.org/plugins/beaver-builder-lite-version/), [Beaver Themer](https://www.wpbeaverbuilder.com/beaver-themer/), [Conditional Blocks Pro](https://conditionalblocks.com/), [Divi Theme](https://www.elegantthemes.com/gallery/divi/), [Elementor](https://wordpress.org/plugins/elementor/), [GenerateBlocks](https://wordpress.org/plugins/generateblocks/), [Oxygen Builder](https://oxygenbuilder.com/), and [Stackable Blocks (premium)](https://wpstackable.com/premium/)
131 * [Advanced Relationships Storage Add-On](https://pods-pro.skc.dev/downloads/advanced-relationship-storage/) - Advanced options for relationship storage
132 * [TablePress Integration Add-On](https://pods-pro.skc.dev/downloads/tablepress-integration/) - Integrates Pods with [TablePress](https://wordpress.org/plugins/tablepress/)
133 * [Advanced Permalinks Add-On](https://pods-pro.skc.dev/downloads/advanced-permalinks/) - Advanced permalink structures and taxonomy landing pages
134
135 == Installation ==
136
137 1. Unpack the entire contents of this plugin zip file into your `wp-content/plugins/` folder locally
138 1. Upload to your site
139 1. Navigate to `wp-admin/plugins.php` on your site (your WP Admin plugin page)
140 1. Activate this plugin
141
142 OR you can just install it with WordPress by going to Plugins >> Add New >> and type this plugin's name
143
144 == Frequently Asked Questions ==
145
146 = Where do I go for Support on your plugin? =
147
148 Our primary Support is handled through our [Support Forums](https://wordpress.org/support/plugin/pods/). For the fastest support, you can contact us on our [Live Community Slack Chat](https://support.pods.io/chat/) in the #support channel. We do not staff our Slack channel 24/7, but we do check any questions that come through daily and reply to any unanswered questions.
149
150 We do have a community of Pods users and developers that hang out on Slack, so you're sure to get an answer quickly. We answer our Forum questions once a week with follow-up during the week as we're prioritizing resources towards restructuring and improving our documentation.
151
152 = Where do I report bugs or request features? =
153
154 If you’ve encountered a bug or have an idea for a new feature, we kindly request you to create an Issue on our GitHub Repository at [https://github.com/pods-framework/pods/issues/new](https://github.com/pods-framework/pods/issues/new). Please be very specific about what steps you did to create the issue you’re having and include any screenshots or other configuration parameters to help us recreate or isolate the issue.
155
156 = Will Pods work with my Theme? =
157
158 Most likely the answer is yes. We don't require any special CSS or display attributes to use Pods with your theme, so you should have little to no difficulty showing your content in your theme. If you encounter any issues, contact your theme developer and ask them about their support for the standard WordPress theming functions and how to use [WordPress Template Hierarchy](https://wphierarchy.com) with their theme.
159
160 == How can I translate Pods into my own language? ==
161
162 Many thanks go out to the fine folks who have helped us translate the Pods plugin into many other languages.
163
164 Join us in further translating the Pods interface on the official [Translating WordPress dashboard](https://translate.wordpress.org/projects/wp-plugins/pods)
165
166 We are also available through our [Live Community Slack Chat](https://support.pods.io/chat/) to help our translators get started and to support them on the process.
167
168 Are you looking to translate your Pods and Fields themselves? You'll want to enable the "Translate Pods" component from Pods Admin > Components.
169
170 == Screenshots ==
171
172 1. Create new content types or extend existing ones
173 2. Add groups of fields and manage your content type
174 3. Add fields of many types with individual options for each
175 4. Creating or extending a Post Type will add groups of fields to the Post Editor
176 5. Creating or extending a Taxonomy will add groups of fields to the Term Editor
177 6. Extending Users will add groups of fields to the User Profile and Edit forms
178
179 == Contributors ==
180
181 Pods really wouldn't be where it is without all the contributions from our [donors](https://friends.pods.io) and [code/support contributors](https://github.com/pods-framework/pods/graphs/contributors).
182
183 == Changelog ==
184
185 = 3.3.6 - February 25th, 2026 =
186
187 * Fixed: Resolve a fatal error with `WP_Filesystem` usage. (@sc0ttkclark)
188
189 = 3.3.5 - February 24th, 2026 =
190
191 * Minimum Requirements Notice: Pods 3.4 coming in 2026 will require new minimum versions of WordPress 6.8+, PHP 8.0+, and MySQL 5.7+
192 * Feature: Added support for showing fields as "Read Only" in forms when a user does not have edit access to them while allowing admins to continue editing them. You can find this under the Edit Field modal in Advanced > Visibility > UI Access. (@sc0ttkclark)
193 * Enhancement: When detecting malformed shortcodes broken by `<` or `>` characters within the `where` clause, Pods now shows a helpful notice with workaround instructions instead of just breaking. #7451 #7482 (@sc0ttkclark)
194 * Enhancement: New replacements within Pods shortcodes clauses for replacing `__LESS_THAN__`, `__LESS_THAN_OR_EQUAL__`, `__GREATER_THAN__`, and `__GREATER_THAN_OR_EQUAL__` with their corresponding `<`, `<=`, `>`, and `>=` characters to work around broken WP shortcodes. This is also available in the `[if]` Pods template shortcode `compare` attribute. #7451 #7482 (@sc0ttkclark)
195 * Enhancement: New option for conditional logic that will allow saving conditional field values even when the field is hidden. #7475 #7484 (@faisalahammad, @sc0ttkclark)
196 * Enhancement: New setting at Pods Settings > Performance that allows you to "Limit autocomplete search results in Relationship fields" to specify larger numbers if needed. #7454 (@sc0ttkclark)
197 * Enhancement: PodsUI > Implement `pods_ui_after_heading` hook for additional UI customizations. (@sc0ttkclark)
198 * Enhancement: PodsUI > Move restricted() checks before callbacks to prevent additional unnecessary calls when user doesn't have access. (@sc0ttkclark)
199 * Enhancement: Add `pods_v_bool` that uses `pods_is_truthy` to enforce boolean values on variables from various sources. (@sc0ttkclark)
200 * Enhancement: Add Manage link to the Navigate section of the Pods content admin forms. (@sc0ttkclark)
201 * Enhancement: Underlying code support for multiple condition checks for Conditional Logic. (@sc0ttkclark)
202 * Tweak: Remove trim from `pods_is_truthy` and `pods_is_falsey` functions. (@sc0ttkclark)
203 * Tweak: In the Edit Field modal, under the Advanced > Visibility section -- the Restrict Access and UI Access are now separate checkbox groups. (@sc0ttkclark)
204 * Tweak: Pods now follows WP Admin Theme color schemes more closely using dynamic CSS color references to the scheme colors. (@sc0ttkclark)
205 * Fixed: Shortcode unit test issue resolved. #7472 #7473 (@devlamconstructie, @sc0ttkclark)
206 * Fixed: Loading a form with WYSIWYG React Quill used as Repeatable fields now loads without breaking the editor. #7465 #7487 (@faisalahammad, @sc0ttkclark)
207 * Fixed: Resolved reordering of values for Repeatable Date/Time, Currency, and Number fields. #7471 #7486 (@faisalahammad, @sc0ttkclark)
208 * Fixed: Resolve sync associated taxonomy with relationship issues when not using bidirectional relationship field. #7477 #7485 (@faisalahammad, @sc0ttkclark)
209 * Fixed: Resolved reordering of values in List View relationship fields. (@sc0ttkclark)
210 * Fixed: Allow empty values in email fields when field is not required. #7476 #7483 (@faisalahammad, @sc0ttkclark)
211 * Fixed: esc_html_e usage when not used for translating in PodsUI. #7462 (@DAnn2012)
212 * Fixed: The default storage type for Settings is set to `option` when creating as it should have been. (@sc0ttkclark)
213 * Fixed: When using repeatable fields on a Pod that uses Table-based storage, a notice now shows explaining that it's not an available feature. (@sc0ttkclark)
214 * Fixed: Better support when values are sent as WP_Error and now show appropriate errors in save_pod_item validation handling. (@sc0ttkclark)
215 * Fixed: Resolve heredoc issue with Migrate PHP component. (@sc0ttkclark)
216 * Fixed: WordPress 7.0 compatibility issues fixed. (@sc0ttkclark)
217 * Fixed: Conditional logic now works properly for Boolean Group sub fields (used in Edit Field modal and other Pods Admin areas). (@sc0ttkclark)
218 * Extensive cleanup to resolve important WP Plugin Checker results, PHPCS, and PHPStan issues across the codebase. (@sc0ttkclark)
219 * Extensive testing upgrades to PHPUnit 10+ and wp-browser 4. (@sc0ttkclark, @lucetume)
220 * New hourly verification of the Pods PLC DID and FAIR metadata. (@johnbillion)
221
222 = 3.3.4 - September 24th, 2025 =
223
224 * Feature: Official support for DID `did:plc:e3rm6t7cspgpzaf47kn3nnsl` for optional installation via DID using the FAIR plugin. (@sc0ttkclark)
225 * Fix: Prevent duplicates in `Pods::field()` and `Pods::display()` for simple relationships. (@sc0ttkclark)
226
227 = 3.3.3 - September 4th, 2025 =
228
229 * Tweak: Support referencing ID for `PodsMeta::groups_get()`. (@sc0ttkclark)
230 * Tweak: Update edit capability used for settings Pods so it can be displayed on the edit pod screen correctly. (@sc0ttkclark)
231 * Fixed: Resolve issues with TinyMCE and Quill editors not loading when used as repeatable fields or conditional logic. #7448 #7438 #7430 (@multisme, @altermulti, @sc0ttkclark, @ztackett11)
232 * Fixed: Resolve PHP fatal errors for undefined constant `\Pods\Whatsit\Store::PLACEHOLDER` in some edge case circumstances. #7445 (@sc0ttkclark, @Hue-SPetrovic)
233 * Fixed: Resolve PHP 8.4 deprecation warnings with DI52 usage. #7448 (@sc0ttkclark, @doehry)
234 * Fixed: Resolve warnings when using `--args` with WP-CLI commands. #7452 (@sc0ttkclark, @KhaledSakr)
235 * Fixed: Resolve handling of decimals when auto-formatting to prevent removing zero number values and expand decimal handling for more cases. Improve logic matching (except dashes) for PHP vs JS. (@sc0ttkclark)
236 * Fixed: Resolve field assigment issue in `pods_config_merge_data()` to reference the correct field. (@sc0ttkclark)
237
238 = 3.3.2 - July 8th, 2025 =
239
240 * Tweak: Updated Swagger docs for Pods REST API endpoints. (@sc0ttkclark)
241 * Tweak: `pods_error()` handles any `Exception` object including those extending the base `Exception` class. This allows for more refined error handling in Pods code. (@sc0ttkclark)
242 * Tweak: PodsAPI now allows for passing in Pods related objects to be passed into various save/load methods without breaking those objects. (@sc0ttkclark)
243 * Tweak: Allow setting new group when duplicating a field. (@sc0ttkclark)
244 * Tweak: Added Jest testing coverage for more areas of the DFV code and updated to support the React Testing Library. #7427 (@sc0ttkclark)
245 * Fixed: Block Editor saves no longer trigger full saves when an autosave is sent and Pods form validation passes. (@sc0ttkclark)
246 * Fixed: Ensure Pods cache flushes when changing settings to prevent issues with Pods Blocks configs not showing fields conditionally linked to those settings. #7429 (@sc0ttkclark)
247 * Fixed: When duplicating a pod, group, or field it will now add a space between the label and the copy number. (@sc0ttkclark)
248 * Fixed: Typos corrected across the codebase. #7434 (@szepeviktor, @sc0ttkclark)
249 * Fixed: PHP deprecated warnings resolved in Pods REST API and DI52 usage. #7401 #7437 (@BrookeDot, @sc0ttkclark)
250 * Fixed: Saving Pods settings will now properly flush the Pods cache to ensure that the new settings are applied immediately to all areas that may be cached based on those settings. (@sc0ttkclark)
251 * Fixed: Added a "doing it wrong" notice and debug log line for when a non-string gets sent to `Pods::do_magic_tags()` to prevent PHP warnings. (@sc0ttkclark)
252 * Fixed: Better caching around the `pods_can_use_dynamic_feature_sql_clauses()` setting usage to prevent additional DB calls. (@sc0ttkclark)
253 * Fixed: Resolve issues when saving featured image based on the first value of a file field so it only saves files with the image type. #7433 (@sc0ttkclark)
254 * Fixed: Add support for `Value_Field` in `pods_config_for_field()` to ensure bidirectional relationships work as expected for saving on both sides. #7435 (@sc0ttkclark)
255 * Fixed: Prevent erroneous `?` and `#` characters in website formatting. (@sc0ttkclark)
256
257 = 3.3.1 - May 2nd, 2025 =
258
259 * Fixed: Resolve issue with `get_block_wrapper_attributes()` usage. (@sc0ttkclark)
260
261 = 3.3 - May 1st, 2025 =
262
263 * New minimum WP version required: WordPress 6.3+ (previously: WP 6.0+)
264 * Removed: PHP support for Pod Templates and Pod Pages has been officially removed from Pods. This feature was deprecated in Pods 2.3. We recommend you follow the newer more secure way: https://docs.pods.io/displaying-pods/pod-page-template-hierarchy-for-themes/ and https://docs.pods.io/displaying-pods/pod-template-hierarchy-for-themes/ and a snippet if you absolutely still need PHP support for now https://gist.github.com/sc0ttkclark/35a15e6f93622c45f12d671184fb1315 (@sc0ttkclark)
265 * Feature: Form validation for the Block Editor now prevents saving a post if there are required fields and shows the appropriate error message. #7343 #7369 (@JoryHogeveen, @sc0ttkclark)
266 * Feature: Upgraded Pods Blocks to the WP Blocks API version 3 to support more features like block wrapper attributes and the iframe editor. (@sc0ttkclark)
267 * Feature: Added support for WYSIWYG field type when using the TinyMCE editor to allow Delayed initialization and not showing the editor until clicking. This is optional and can be enabled per field. (@sc0ttkclark)
268 * Feature: Added support for WYSIWYG field type when using the TinyMCE editor to refresh the editor if you encounter compatibility issues with other plugins on load. (@sc0ttkclark)
269 * Tweak: Allow forcing `pods_serial_comma()` to use exactly what is sent instead of relying on the field config itself. (@sc0ttkclark)
270 * Tweak: Remove Pods Pro WPGraphQL deactivation message to support future features there. The core functionality of that was merged into Pods 2.9 but new work is still being done in the add-on. (@sc0ttkclark)
271 * Tweak: Pods Forms now wrap `div` / `p` form output types within a new `div.pods-form-fieldset` wrapper element. The table form output type has the new class `pods-form-fieldset` added to it too. (@sc0ttkclark)
272 * Fixed: Prevent doing it wrong notices in WP from unintentionally loading translatable strings too early. (@sc0ttkclark)
273 * Fixed: Improved PHP compatibility with strlen() usage. #7394 (@lbonomo, @sc0ttkclark)
274 * Fixed: More PHP 8.x compatibility fixes for `PodsUI`. (@sc0ttkclark)
275 * Fixed: Docs link for Date / Time field type now points to the correct URL. #7405 (@BrookeDot)
276 * Fixed: Remove unnecessary duplicate IDs in the fetching within `Pods::field()`. (@sc0ttkclark)
277 * Fixed: Name check handling when duplicating pod now works as expected and prevents weirdly named duplicate pod names. (@sc0ttkclark)
278 * Tooling: Generate build provenance attestation during deployment for .org zip. #7419 (@johnbillion)
279
280 = 3.2.8.2 - February 7th, 2025 =
281
282 * Security: Do not allow using custom SQL clauses for Relationship fields when SQL clauses are disabled in the Pods security settings. Props to the CleanTalk / Dmitrii Ignatyev for responsibly reporting this. (@sc0ttkclark)
283
284 = 3.2.8.1 - November 22nd, 2024 =
285
286 * Security: Resolve stored XSS issue with the File Upload field Add Button Text option. Props to the CleanTalk / Dmitrii Ignatyev for responsibly reporting this (their second report, they are doing good work!). (@sc0ttkclark)
287 * Security: Harden the use of values within id and class HTML attributes in Pods form elements. (@sc0ttkclark)
288
289 = 3.2.8 - November 17th, 2024 =
290
291 REMINDER: PHP support for Pod Templates and Pod Pages been turned off by default in Pods 3.2.7+ (`PODS_DISABLE_EVAL` constant set to `false` can be used to re-enable it). It will be completely removed in Pods 3.3 after being deprecated back in Pods 2.3. (@sc0ttkclark)
292
293 * Feature: Migrate the PHP in your Pod Templates and Pod Pages directly into your current theme with a new Pods Admin > Tools > Migrate PHP tool. We recommend you use a child theme that you control. PHP warnings now appear on the Pod Template and Pod Page editor screens to prompt you to run the migration. (@sc0ttkclark)
294 * Feature: Updated the design and user experience of the various guided screens inside of the Pods Admin to make it easier to read and click through on small screens. (@sc0ttkclark, @heybran)
295 * Enhanced: Pod Page template part handling for PHP template files now passes the `$pods` variable. (@sc0ttkclark)
296 * Enhanced: Added support for parsing magic tags in Pod Template files in the theme when you set the PHP header comment `Magic Tags: Enabled`. (@sc0ttkclark)
297 * Enhanced: Run wpautop on Pods Item List and Pods Related Item List blocks for the "not found" content if they are not already formatted. (@sc0ttkclark)
298 * Fixed: Only running wpautop for block the Pods Field block content if it does not contain div, ul, ol, heading, or p HTML tags. (@sc0ttkclark)
299 * Fixed: Resolve issue with empty strings showing when using magic tags before/after functionality. (@JoryHogeveen)
300 * Fixed: Ignore more internal WP post types and taxonomies plus others from other plugins. (@sc0ttkclark)
301 * Fixed: Move load_plugin_textdomain usage into init and make it optional with the constant `PODS_LOAD_TEXTDOMAIN` set to `true`. It is no longer needed for WordPress.org plugins but may be needed in the future for testing. (@sc0ttkclark)
302 * Fixed: When getting plugin data, don't make it translatable. (@sc0ttkclark)
303 * Fixed: When saving bidirectional relationship, attempt to save hook up existing related items data in the `wp_podsrel` table with the bidirectional connection. (@sc0ttkclark)
304 * Fixed: Resolve PHP notices with site debug information. (@sc0ttkclark)
305 * Fixed: Resolve PHP warnings with empty template code. (@sc0ttkclark)
306 * Fixed: More improvements to Pod Page and Pod Template file loading from themes. (@sc0ttkclark)
307 * Fixed: Resolve issue with slug fields not formatting as expected. (@sc0ttkclark)
308 * Fixed: SCSS migrated from `@import` to `@use` for compatibility with the latest versions of our SCSS scripting. (@sc0ttkclark)
309
310 = 3.2.7.1 - October 9th, 2024 =
311
312 * Security: Lock down heading field to only specific allowed HTML tags and preventing it from being used to insert malicious scripts. Props to the CleanTalk / Dmitrii Ignatyev for responsibly reporting this. (@sc0ttkclark)
313
314 = 3.2.7 - August 28th, 2024 =
315
316 * Feature: New Pods Related Item List block that works like a Pods Item List block but uses the Pods Single Item block context where you specify a relationship field name to reference. (@sc0ttkclark)
317 * Feature: You can now link field value output from Pods Field Value block to any website field or just use `permalink` to link to the current item of the field. Works with single select relationship field as the link reference. (@sc0ttkclark)
318 * Feature: Add support for having multiple filters/pagination on the same page when using Pods shortcodes/blocks. (@sc0ttkclark)
319 * Feature: When a relationship field is using Taxonomy syncing, you can not choose to hide the Taxonomy UI from the Block Editor and Classic Editor. (@sc0ttkclark)
320 * Feature: New support for Query Monitor now shows Pods debug logs in a QM panel. (@sc0ttkclark)
321 * Tweak: Toggle add file button on single file field depending on whether a file is provided yet. #7315 (@heybran)
322 * Tweak: Added a `<p>` wrapper for the span-based pagination. (@sc0ttkclark)
323 * Removed: PHP support for Pod Templates and Pod Pages has been finally turned off by default (`PODS_DISABLE_EVAL` constant set to `false` can be used to re-enable it). It will be completely removed in Pods 3.3 after being deprecated back in Pods 2.3. (@sc0ttkclark)
324 * Fixed: Improve REST authentication method to support other auth forms when registering fields. #7340 #7341 (@JoryHogeveen, @sc0ttkclark)
325 * Fixed: Fix invalid default value for REST API `write_all` option. #7339 (@JoryHogeveen)
326 * Fixed: Resolve issue with Taxonomy syncing for relationship fields. #7336 #7334 (@pdclark, @sc0ttkclark)
327 * Fixed: Add fallback for clipboard.writeText. #7314 (@heybran)
328 * Fixed: Reset items loop before running the fetch loop in `Pods::template()` and the Templates component. (@sc0ttkclark)
329 * Fixed: Resolve issues with cached queries in PodsData not having the correct corresponding total found for pagination. (@sc0ttkclark)
330 * Fixed: More phpstan/phpcs fixes across the codebase. (@sc0ttkclark)
331
332 = 3.2.6 - July 22nd, 2024 =
333
334 * Fixed: Resolve issue with WordPress 6.5 and earlier compatibility by adding polyfill for `react-jsx-runtime` dependency that WP 6.6 related tooling now requires. (@sc0ttkclark)
335 * Fixed: Resolve `register_meta` issue where it wasn't checking if post type supported revisions before setting meta key as revisionable. (@sc0ttkclark)
336 * Tweak: Partial work towards a fix for REST API update handling for meta fields which was broken in a previous release. Final fix will be in Pods 3.2.7. (@sc0ttkclark)
337
338 = 3.2.5 - July 19th, 2024 =
339
340 * Fixed: Resolve issue with WordPress 6.6 compatibility that caused Pods Admin > Edit Pod and Pods forms to stop working properly on some sites. (@sc0ttkclark, @swissspidy)
341 * Fixed: Resolve PHP deprecated notices with null being passed into certain htmlspecialchars related functions. (@sc0ttkclark)
342
343 = 3.2.4 - July 15th, 2024 =
344
345 * Feature: Allow restricting media library for File fields to only showing attachments associated to the current post ID. (@sc0ttkclark)
346 * Feature: Allow File field to automatically use the first file saved as the featured image for the post. (@sc0ttkclark)
347 * Feature: Add support for Post Types that have associated Taxonomies to have a Relationship field which will automatically sync to the corresponding taxonomy on save. (@sc0ttkclark)
348 * Fixed: Register meta handling now properly loads when enabled. (@sc0ttkclark)
349 * Fixed: Remove always visible scrollbar from Settings modal panel container since it does not scroll. (@sc0ttkclark)
350 * Fixed: REST API Show All Fields setting for a Pod now works as expected again. (@sc0ttkclark)
351
352 = 3.2.3 - July 15th, 2024 =
353
354 The Pods 3.2.3 release turned into Pods 3.2.4 after an failed attempt at hijacking our plugin on WordPress.org was accidentally documented by online security vulnerability databases as successful.
355
356 To be safe and sure that those who are using Pods do not mistake Pods 3.2.3 as a vulnerable release, we will instead release the next version as Pods 3.2.4.
357
358 = 3.2.2 - June 18th, 2024 =
359
360 * Feature: You can now turn on Taxonomy filters for a Custom Taxonomy so that you see a dropdown filter on the list of posts for any associated post types. (@sc0ttkclark)
361 * Added: Pods Templates > Support for comments on post types using Pods Templates using `[each comments]` and `[if comments]`. (@sc0ttkclark)
362 * Added: REST API > Add support for determining whether to require person to be logged in to read values for custom fields (default: login not required). (@sc0ttkclark)
363 * Added: Automatically redirect to the proper edit URL when going to the Pods Admin > Edit Pods page for a specific pod but `id=XX` is the slug. (@sc0ttkclark)
364 * Tweak: Accessibility > Make it easier to copy and paste field names for the Edit Pod screen with a new copy icon you can click. #7291 #7237 (@heybran, @sc0ttkclark)
365 * Tweak: Responsive UI > Improved appearance for the Edit Pod screen for smaller screens. (@sc0ttkclark)
366 * Fixed: Security hardening > Sanitize HTML before passing into Pods field inputs for paragraph/code/wysiwyg field types to cover additional cases where something could make it past the sanitization process on save. (@sc0ttkclark)
367 * Fixed: Accessibility > Add label for color fields in the Pods Blocks API so it shows the label and not just the color input itself. #7306 #7305 (@pdclark)
368 * Fixed: Group and field names now generate in the UI as expected. (@sc0ttkclark)
369 * Fixed: Compatibility > Date, Date/Time, and Time default values now use single quotes to ensure maximum compatibility with various SQL engines. (@sc0ttkclark)
370 * Fixed: Compatibility > More PHP compatibility issues with `trim()` related function usage resolved. (@sc0ttkclark)
371 * Fixed: Code quality > Various phpstan/phpcs issues resolved. (@sc0ttkclark)
372
373 = 3.2.1.1 - May 8th, 2024 =
374
375 *Security Release*
376
377 * Security hardening: Enforce safe URLs for Pods form submission confirmation page URLs. Props to the wesley (wcraft) / Wordfence for responsibly reporting this. (@sc0ttkclark)
378
379 = 3.2.1 - March 29th, 2024 =
380
381 * Performance: The Advanced Filters popup now uses Autocomplete for relationship fields to improve performance for large itemsets. FYI filters are a feature in the Manage Content UI for Advanced Content Types only. (@sc0ttkclark)
382 * Fixed: Conditional logic for display callbacks 'allowed' field now showing when choosing the Customized option. (@sc0ttkclark)
383 * Fixed: PHP 8.1 compatibility fix for null values passed to esc_* functions in WP. (@sc0ttkclark)
384 * Fixed: PHP 8.1 compatibility fix for html_entity_decode. (@sc0ttkclark)
385
386 = 3.2 - March 25th, 2024 =
387
388 * Feature: New support for Custom Field revisions in Pods that are Post Types that use Meta storage. You can optionally enable the feature per-pod or per-field. #7265 (@sc0ttkclark)
389 * Feature: New support for WordPress `register_meta()` for all Pods fields on meta-based Pods. You can enable this feature in Pods Admin > Settings > "Register meta fields". (@sc0ttkclark)
390 * Feature: New support for specifying where your Custom Fields show in REST API responses for Pods that support that. You can choose from Object (response.field_name) or Meta (response.meta.field_name). (@sc0ttkclark)
391 * Feature: New support for Custom Fields in the new [WordPress 6.5 Block Bindings API](https://make.wordpress.org/core/2024/03/06/new-feature-the-block-bindings-api/) for the `core/post-meta` source. To use your custom fields there, you will need to enable "Register meta fields" in your Pods Admin > Settings and set your Pod to show it's REST API fields in the "Meta" location instead of Object. (@sc0ttkclark)
392 * Feature: New custom binding source support for the [WordPress 6.5 Block Bindings API](https://make.wordpress.org/core/2024/03/06/new-feature-the-block-bindings-api/). Specify your source as `pods/bindings-field` and then just pass the same arguments you would pass for a normal `[pods]` shortcode or block. This will bind that dynamic output to the block you are working with. (@sc0ttkclark)
393 * Feature: Now you can specify whether to default values for a Pods field when the field is empty. This works great for when you add a new field to a Pod and you want to edit an existing item that did not have a field value set. The default value will be used in that circumstance. (@sc0ttkclark)
394 * Feature: Support for multiple default values when working with a multi-select field. Now you can just separate your values with a comma and they will be set as the default values. (@sc0ttkclark)
395 * Feature: Now you can specify whether to evaluate magic tags for default values like `{@user.ID}`. (@sc0ttkclark)
396 * Tweak: New option for Pods shortcodes when used in plugins like Elementor to bypass detecting the loop and to just use whatever ID/post type is available. Use the `bypass_detect_loop="1"` attribute. #7269 (@sc0ttkclark)
397 * Tweak: Added first used and last installed Pods versions to the Site Health information to be more helpful with debugging. (@sc0ttkclark)
398 * Tweak: Improved the field label/description for Additional User Capabilities field in the CPT settings. (@sc0ttkclark)
399 * Fixed: Resolved an annoying issue when adding a new group or field where it would reset the Pod label to the name (slug) of the pod. (@sc0ttkclark)
400 * Fixed: Updated logic for default value handling when using magic tags for internal field configs to ensure the magic tags get evaluated. (@sc0ttkclark)
401 * Fixed: Resolve issue with `pods_register_block_type()` not clearing the known blocks cache when registering them. #7167 (@sc0ttkclark)
402 * Fixed: PHP fatal errors resolved with `array_combine()` usage from changes in WP 6.5. #7266 (@sc0ttkclark)
403 * Fixed: Custom capability fallbacks when the option is empty now properly fallback to the default capability using that post type name. #7250 (@JoryHogeveen)
404 * Fixed: PHP deprecated notice with `trim()`. (@sc0ttkclark)
405 * Fixed: Resolved plupload browse button references to prevent JS console errors. (@sc0ttkclark)
406 * Fixed: Resolved issue with `window.wpEditorL10n` calls to more safely check for it to prevent JS console errors. (@sc0ttkclark)
407 * Fixed: Updated the implementation of the compatibility hooks for `set_transient` and `setted_transient` hooks have the proper args expected sent. (@sc0ttkclark)
408 * Fixed: Empty REST API fields no longer show when the pod doesn't support REST API. (@sc0ttkclark)
409 * Fixed: Restrict/unrestrict dynamic features logic now properly updates all of the associated Pod settings it needs to in the Access Rights Review screen. (@sc0ttkclark)
410 * Fixed: Empty arrays now return correctly in Pod / Group / Field settings instead of using their defaults when empty. (@sc0ttkclark)
411 * Fixed: Resolve potential issues with REST API in certain circumstances which would throw exceptions with the Pods REST API Messages object. (@sc0ttkclark)
412 * Fixed: Resolve issues when duplicating pods where the new pod name is over the limit and prevents creating the new pod correctly. (@sc0ttkclark)
413 * Fixed: Access Rights Review notice now only shows on existing installs updating from pre-3.1 instead of showing on new 3.1+ installs too. (@sc0ttkclark)
414 * Fixed: Accessibility issues with tabbing resolved for Pods Admin > Edit Pods table and Pods Admin > Edit Pod fields list table when working with row actions. #7196 #7198 (@heybran, @sc0ttkclark)
415
416 = 3.1.4 - February 28th, 2024 =
417
418 * Fixed: Defaults now show correctly for checkbox groups in the Edit Field modals. (@sc0ttkclark)
419 * Fixed: Resolve potential PHP errors with cached configs in Collections classes that has been there since Pods 2.x. (@sc0ttkclark)
420 * Fixed: Revisited due to our automated NPM build issue - Resolved an issue with CodeMirror 6.x fields in forms (this is separate from the version 5.x that the Pods Template editor uses). (@sc0ttkclark)
421
422 = 3.1.3 - February 27th, 2024 =
423
424 * Fixed: Resolved an issue with CodeMirror 6.x fields in forms (this is separate from the version 5.x that the Pods Template editor uses). (@sc0ttkclark)
425
426 = 3.1.2 - February 27th, 2024 =
427
428 * Added: Now you can set Content Visibility when creating a new pod. (@sc0ttkclark)
429 * Added: More help text to better explain things on the Access Rights Review screen for extended content types. (@sc0ttkclark)
430 * Added: New option to specify whether to Sanitize Output for a field in the Additional Field Options of Heading, Paragraph, WYSIWYG, Code, and Text fields. (@sc0ttkclark)
431 * Added: Pod Reference metabox on the Pods Templates editor screen now has more help text and will now allow clicking to copy any magic tag to clipboard. (@sc0ttkclark)
432 * Added: Better explain Public vs Publicly Queryable for Post Types and Taxonomies along with showing the current Content Visibility below. (@sc0ttkclark)
433 * Changed: Updated CodeMirror to 5.65.16 so we can start moving towards CodeMirror 6 for the Pods Template editor. (@sc0ttkclark)
434 * Fixed: Resolved issues with Access Rights Review screen when making content type public or private causing it not to be fully set (only public was set on, it left out publicly_queryable). (@sc0ttkclark)
435
436 = 3.1.1 - February 22nd, 2024 =
437
438 This is just a release to retrigger the zip generation on WordPress.org that missed a fix put into the initial 3.1 release tag in SVN.
439
440 Pods 3.1 is a security focused release, see below for the changelog information.
441
442 = 3.1 - February 21st, 2024 =
443
444 *Security Release*
445
446 While this release is meant to be as backwards compatible as possible, some aspects of security hardening may require manual intervention by site owners and their developers. There were no known reports and no known attempts to take advantage of the issues resolved by this release except where noted.
447
448 Read more about [How access rights work with Pods](https://docs.pods.io/displaying-pods/access-rights-in-pods/) for more details including new filters/snippets that can provide limited access.
449
450 * Security hardening: Introduced new access checks and additional fine-grained control over dynamic features across any place in Pods that allows embedding content or forms. This only applies to usage through Pods Blocks or Shortcodes. Using PHP will continue to expect you are handling this on your own unless you pass the appropriate arguments to the corresponding Pods methods. (@sc0ttkclark)
451 * Security hardening: Prevent using the Pods Views Block / Shortcode to embed any files outside of the current theme. Props to the Nex Team / Wordfence for responsibly reporting this. (@sc0ttkclark)
452 * Security hardening: Prevent output of `user_pass`, `user_activation_key`, and `post_password` through Pods dynamic features / PHP. These values will be set in Pods references to `****************` if they were not-empty so you can still do conditional checks as normal. While Scott was already aware of this in pre-planned security release work, additional props go to the Nex Team / Wordfence for responsibly reporting this too. (@sc0ttkclark)
453 * Security hardening: Prevent more unsavory PHP display callbacks from being used with magic tags in addition to those already prevented. Props to the Nex Team / Wordfence for responsibly reporting this. (@sc0ttkclark)
454 * Feature: Access rights > Access-related Admin notices and Errors can be hidden by admins in a new setting in Pods Admin > Settings > Security. (@sc0ttkclark)
455 * Feature: Dynamic Features > Dynamic features (Pods Blocks and Shortcodes) can be disabled by admins in a new setting in Pods Admin > Settings > Security. (@sc0ttkclark)
456 * Changed: Dynamic Features > New installs will now default to not allowing all SQL arguments to be used by dynamic features. Existing installs will default to only allowing simple SQL arguments. All SQL fragments are checked for disallowed usage like subqueries. This can be set in a new setting in Pods Admin > Settings > Security. (@sc0ttkclark)
457 * Feature: Pods Display > The Display-related Pods Blocks and Shortcodes have additional checks that limit access to content based on the user viewing it. For Post Types that are non-public, they must have access to the `read` capability from that post type as a normal user. For displaying content from Users, they must have access to `list_users` capability to view that. [Read more about how access rights work with Pods](https://docs.pods.io/displaying-pods/access-rights-in-pods/) (@sc0ttkclark)
458 * Feature: Pods Forms > The Pods Form Block and Form Shortcode have additional checks that limit access to creating/editing content based on the user submitting the form. For Post Types that are non-public, they must have access to the 'create' capability from that post type as a normal user. Forms that submit to the Users pod, now require that the submitter must have access to the `create_users` or `edit_users` capability to create or edit that user. [Read more about how access rights work with Pods](https://docs.pods.io/displaying-pods/access-rights-in-pods/) (@sc0ttkclark)
459 * Feature: Pods Forms > The Pods Form Block and Form Shortcode now have a new option to identify the form with a custom key you choose that will get passed to various access-related filters so that developers can override access rights more easily. (@sc0ttkclark)
460 * Feature: Pods Forms > When a user has access to create or edit content through a Pods form for a post type, the `post_content` field is cleaned based on the level of access they have to prevent inserting unintentional shortcodes or blocks. (@sc0ttkclark)
461 * Feature: Markdown functionality has now been replaced by the [Parsedown library](https://github.com/erusev/parsedown) for better security and performance and it's uniquely prefixed so it prevents future conflicts with plugins using the same library. (@sc0ttkclark)
462 * Changed: Pods Views > One of the breaking changes in this work is that the Pods Views Block / Shortcode dynamic feature is now disabled by default and must be enabled for new and existing installs. This can be done in a new setting in Pods Admin > Settings > Security. (@sc0ttkclark)
463 * Changed: Display PHP callbacks > New installs will now default to only allowing specific callbacks to be used. This defaults the specific callbacks allowed to `esc_attr,esc_html` which can be further customized in Pods Admin > Settings > Security. (@sc0ttkclark)
464
465 = 3.0.10 - December 11th, 2023 =
466
467 * Fixed: The safe rendering handler for Pods Blocks now properly passes along context to all Pods Blocks so that they work within Query Loops again and other places they could take on context. (@sc0ttkclark)
468 * Fixed: Resolved PHP 8.3 deprecation notice with `get_class()` usage. #7225 (@netlas, @sc0ttkclark)
469 * Fixed: File fields using the direct plupload option will properly avoid uploading files above the limit and handle uploading multiple files without losing all but the first file in the file list. #7138 (@sc0ttkclark, @PD-CM)
470
471 Our GitHub has the full list of all prior releases of Pods: [https://github.com/pods-framework/pods/releases](https://github.com/pods-framework/pods/releases)
472
473 == Upgrade Notice ==
474
475 = 3.1 =
476 This upgrade is security focused.
477
478 = 3.0 =
479 This upgrade requires a minimum versions of PHP 7.2+ and WordPress 6.0+.
480
481 = 2.8 =
482 This upgrade requires a minimum versions of PHP 5.6+ and WordPress 5.5+.
483