{"id":1511,"date":"2004-12-21T21:15:09","date_gmt":"2004-12-21T21:15:09","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/get-custom-field-values\/"},"modified":"2023-10-10T04:37:37","modified_gmt":"2023-10-10T04:37:37","slug":"get-custom-field-values","status":"publish","type":"plugin","link":"https:\/\/sk.wordpress.org\/plugins\/get-custom-field-values\/","author":3606,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"4.1","stable_tag":"4.1","tested":"6.3.8","requires":"3.6","requires_php":"","requires_plugins":null,"header_name":"Get Custom Field Values","header_author":"Scott Reilly","header_description":"","assets_banners_color":"0074a2","last_updated":"2023-10-10 04:37:37","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_s-xclick&hosted_button_id=6ARCFJ9TX3522","header_plugin_uri":"https:\/\/coffee2code.com\/wp-plugins\/get-custom-field-values\/","header_author_uri":"https:\/\/coffee2code.com\/","rating":5,"author_block_rating":0,"active_installs":1000,"downloads":132367,"num_ratings":4,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.1":{"tag":"2.1","author":"coffee2code","date":"2009-06-23 19:56:04"},"2.5":{"tag":"2.5","author":"coffee2code","date":"2009-07-09 17:15:19"},"3.0":{"tag":"3.0","author":"coffee2code","date":"2009-07-09 17:19:18"},"3.0.1":{"tag":"3.0.1","author":"coffee2code","date":"2009-07-24 03:29:16"},"3.2":{"tag":"3.2","author":"coffee2code","date":"2010-10-06 16:29:23"},"3.3":{"tag":"3.3","author":"coffee2code","date":"2011-08-08 23:46:20"},"3.3.1":{"tag":"3.3.1","author":"coffee2code","date":"2011-08-18 06:04:16"},"3.3.2":{"tag":"3.3.2","author":"coffee2code","date":"2012-01-05 06:07:05"},"3.5":{"tag":"3.5","author":"coffee2code","date":"2014-01-17 20:41:37"},"3.6":{"tag":"3.6","author":"coffee2code","date":"2015-03-05 07:25:20"},"3.6.1":{"tag":"3.6.1","author":"coffee2code","date":"2015-08-21 23:01:25"},"3.7":{"tag":"3.7","author":"coffee2code","date":"2016-04-14 20:40:26"},"3.8":{"tag":"3.8","author":"coffee2code","date":"2019-03-08 22:15:20"},"3.9":{"tag":"3.9","author":"coffee2code","date":"2019-03-08 22:34:06"},"3.9.1":{"tag":"3.9.1","author":"coffee2code","date":"2019-03-15 07:14:01"},"3.9.2":{"tag":"3.9.2","author":"coffee2code","date":"2019-12-09 07:17:11"},"3.9.3":{"tag":"3.9.3","author":"coffee2code","date":"2020-05-23 07:52:48"},"3.9.4":{"tag":"3.9.4","author":"coffee2code","date":"2020-09-12 07:13:17"},"4.0":{"tag":"4.0","author":"coffee2code","date":"2021-11-05 08:53:13"},"4.0.1":{"tag":"4.0.1","author":"coffee2code","date":"2021-11-05 21:33:13"},"4.1":{"tag":"4.1","author":"coffee2code","date":"2023-10-10 04:37:37"}},"upgrade_notice":{"4.1":"<p>Minor update: Prevented use of unsafe markup in widgets, improved documentation, improved unit testing, and noted compatibility through WP 6.3+.<\/p>","4.0.1":"<p>Security hardening release: Further restricted usage of shortcode to only those with &#039;unfiltered_html&#039; capability. Props Erwan.<\/p>","4.0":"<p>Recommended update: Prevented users who can&#039;t publish posts from using the shortcode in posts (security hardening), added some new filters, added DEVELOPER-DOCS.md, noted compatibility through WP 5.8+, and reorganized and improved unit tests.<\/p>","3.9.4":"<p>Trivial update: Restructured unit test file structure and noted compatibility through WP 5.5+.<\/p>","3.9.3":"<p>Trivial update: Added TODO.md file, tweaked shortcode builder code, updated a few URLs to be HTTPS, and noted compatibility through WP 5.4+.<\/p>","3.9.2":"<p>Trivial update: modernized unit tests, noted compatibility through WP 5.3+, and updated copyright date (2020)<\/p>","3.9.1":"<p>Bugfix update (for users of WP earlier than 5.0): Fixed bug preventing post edit page from loading.<\/p>","3.9":"<p>Recommended update: Fixed minor bug, changed &#039;this_post&#039; shortcode attribute default to 1 so it can be omitted from most shortcodes, disabled shortcode builder under block editor (it&#039;s incompatible), noted compatibility through WP 5.1+, updated copyright date (2019), more.<\/p>","3.8":"<p>Recommended feature and bugfix update: Added support for percent-substitution tags, properly handled serialized meta values, verified compatibility through WP 4.7+, widget and unit test updates, other minor fixes and updates<\/p>","3.7":"<p>Minor update: improved support for localization, minor unit test tweaks, verified compatibility through WP 4.4+, and updated copyright date (2016)<\/p>","3.6.1":"<p>Minor bugfix update: Prevented PHP notice under PHP7+ for widget; added more unit tests; updated widget framework to 010; noted compatibility through WP 4.3+<\/p>","3.6":"<p>Minor update: added more unit tests; updated widget framework to 009; noted compatibility is now WP 3.6-4.1+; added plugin icon<\/p>","3.5":"<p>Recommended update: includes the unreleased changes in v3.4; added unit tests; noted compatibility through WP 3.8+<\/p>","3.4":"<p>Recommended update: added &#039;id&#039; and &#039;class&#039; attributes for shortcode, and other shortcode improvements; noted compatibility through WP 3.5+; explicitly stated license<\/p>","3.3.2":"<p>Recommended bugfix release. Highlights: fixed bug in widget preventing proper display of custom field for current post; noted compatibility through WP 3.3+.<\/p>","3.3.1":"<p>Critical bugfix release (if using shortcode): fixed fatal shortcode bug<\/p>","3.3":"<p>Recommended update! added support to c2c_get_random_custom() to return multiple random values; enabled shortcode support for custom fields; noted compatibility through WP 3.2; and more.<\/p>","3.2":"<p>Recommended update! Highlights: fixed bug with shortcode builder; fixed bug with saving widget; misc non-functionality documentation and formatting tweaks; verified WP 3.0 compatibility; dropped support for versions of WP older than 2.8.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"4"},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":1105776,"resolution":"128x128","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":1340424,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.1","2.5","3.0","3.0.1","3.2","3.3","3.3.1","3.3.2","3.5","3.6","3.6.1","3.7","3.8","3.9","3.9.1","3.9.2","3.9.3","3.9.4","4.0","4.0.1","4.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":1340424,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":1340424,"resolution":"2","location":"assets","locale":""}},"screenshots":{"1":"Screenshot of the plugin's widget configuration.","2":"Screenshot of the plugin's shortcode builder (not available in the block editor, aka Gutenberg)."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2010,683,80,162,241],"plugin_category":[43],"plugin_contributors":[78189],"plugin_business_model":[],"class_list":["post-1511","plugin","type-plugin","status-publish","hentry","plugin_tags-custom-fields","plugin_tags-meta","plugin_tags-shortcode","plugin_tags-widget","plugin_tags-widgets","plugin_category-customization","plugin_contributors-coffee2code","plugin_committers-coffee2code"],"banners":{"banner":"https:\/\/ps.w.org\/get-custom-field-values\/assets\/banner-772x250.png?rev=1340424","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/get-custom-field-values\/assets\/icon-128x128.png?rev=1105776","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/get-custom-field-values\/assets\/screenshot-1.png?rev=1340424","caption":"Screenshot of the plugin's widget configuration."},{"src":"https:\/\/ps.w.org\/get-custom-field-values\/assets\/screenshot-2.png?rev=1340424","caption":"Screenshot of the plugin's shortcode builder (not available in the block editor, aka Gutenberg)."}],"raw_content":"<!--section=description-->\n<p>This plugin provides a powerful widget, shortcode (with shortcode builder tool), and template tags for easily retrieving and displaying custom field values for posts or pages.<\/p>\n\n<p>The power of custom fields gives this plugin the potential to be dozens of plugins all rolled into one.<\/p>\n\n<p>This plugin allows you to harness the power of custom fields\/meta data. Use the \"Get Custom Field\" widget, the <code>[custom_field]<\/code> shortcode (which has a post editor sidebar widget to help you build the shortcode), or one of six template tags to retrieve and display custom fields. Find a custom field for the current post, a specified post, a recent post, or randomly. And for the custom field values found by the plugin, you may optionally specify text or HTML to appear before and after the results. If nothing is found, then nothing is display (unless you define text to appear when no results are found). If multiple results are found, only the first will be displayed unless you specify a string to be used to join the results together (such as \",\"), in which case all will be returned. Visit the Examples section to see how this plugin can be cast in dozens of different ways.<\/p>\n\n<p>There are six template tags provided by this plugin. Here they are, with an explanation of when they are appropriate for use:<\/p>\n\n<ul>\n<li><code>c2c_get_custom()<\/code> : Use this inside \"the loop\" to retrieve a custom field value for a post<\/li>\n<li><code>c2c_get_current_custom()<\/code> : This is only available on the permalink post template (single.php) and page template (page.php). Can be used inside or outside \"the loop\". Useful for using custom field to define text you want to include on a post or page's header, footer, or sidebar.<\/li>\n<li><code>c2c_get_post_custom()<\/code> : Useful when you know the ID of the post whose custom field value you want.<\/li>\n<li><code>c2c_get_random_custom()<\/code> : Retrieve the value of a random instance of the specified custom field key, as long as the field is associated with a published posted, non-passworded post (you can modify a setting in the plugin file to search passworded posts as well).<\/li>\n<li><code>c2c_get_random_post_custom()<\/code> : Retrieves the value of random custom field(s) from a post when you know the ID of the post you're interested in.<\/li>\n<li><code>c2c_get_recent_custom()<\/code> : Retrieves the most recent (according to the associated post's publish date) value of the specified custom field.<\/li>\n<\/ul>\n\n<p>You can filter the custom field values that the plugin would display. Add filters for '<code>the_meta<\/code>' to filter custom field data (see the end of the code file for commented out samples you may wish to include). You can also add per-meta filters by hooking '<code>the_meta_$sanitized_field<\/code>'. <code>$sanitized_field<\/code> is a clean version of the value of <code>$field<\/code> where everything but alphanumeric and underscore characters have been removed. So to filter the value of the \"Related Posts\" custom field, you would need to add a filter for '<code>the_meta_RelatedPosts<\/code>'.<\/p>\n\n<p>Links: <a href=\"https:\/\/coffee2code.com\/wp-plugins\/get-custom-field-values\/\">Plugin Homepage<\/a> | <a href=\"https:\/\/wordpress.org\/plugins\/get-custom-field-values\/\">Plugin Directory Page<\/a> | <a href=\"https:\/\/github.com\/coffee2code\/get-custom-field-values\/\">GitHub<\/a> | <a href=\"https:\/\/coffee2code.com\">Author Homepage<\/a><\/p>\n\n<h3>Developer Documentation<\/h3>\n\n<p>Developer documentation can be found in <a href=\"https:\/\/github.com\/coffee2code\/get-custom-field-values\/blob\/master\/DEVELOPER-DOCS.md\">DEVELOPER-DOCS.md<\/a>. That documentation covers the numerous template tags, hooks, and shortcode provided by the plugin.<\/p>\n\n<p>As an overview, these are the template tags provided the plugin:<\/p>\n\n<ul>\n<li><code>c2c_get_custom()<\/code>             : Template tag for use inside \"the loop\" and applies to the currently listed post.<\/li>\n<li><code>c2c_get_current_custom()<\/code>     : Template tag for use on permalink (aka single) page templates for posts and pages.<\/li>\n<li><code>c2c_get_post_custom()<\/code>        : Template tag for use when you know the ID of the post you're interested in.<\/li>\n<li><code>c2c_get_random_custom()<\/code>      : Template tag for use to retrieve a random custom field value.<\/li>\n<li><code>c2c_get_random_post_custom()<\/code> : Template tag for use to retrieve random custom field value(s) from a post when you know the ID of the post you're interested in.<\/li>\n<li><code>c2c_get_recent_custom()<\/code>      : Template tag for use outside \"the loop\" and applies for custom fields regardless of post.<\/li>\n<\/ul>\n\n<p>These are the hooks provided by the plugin:<\/p>\n\n<ul>\n<li><code>c2c_get_custom_field_values_shortcode<\/code>  : Filter to customize the name of the plugin's shortcode.<\/li>\n<li><code>c2c_get_custom_field_values_post_types<\/code> : Filter to customize the post types that should support the shortcode builder metabox.<\/li>\n<li><code>get_custom_field_values\/can_author_use_shortcodes<\/code> : Filter to customize if post author can make use of the 'custom_field' shortcode.<\/li>\n<li><code>get_custom_field_values\/show_metabox<\/code>   : Filter to customize if the shortcode builder metabox is shown.<\/li>\n<\/ul>\n\n<p>The shortcode provided is <code>[custom-field]<\/code>, which has a number of attributes to customize its behavior and output.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install via the built-in WordPress plugin installer. Or install the plugin code inside the plugins directory for your site (typically <code>\/wp-content\/plugins\/<\/code>).<\/li>\n<li>Optional: Add filters for 'the_meta' to filter custom field data (see the end of the plugin file for commented out samples you may wish to include). And\/or add per-meta filters by hooking 'the_meta_$field'<\/li>\n<li>Activate the plugin through the 'Plugins' admin menu in WordPress<\/li>\n<li>Give post(s) a custom field with a value.<\/li>\n<li>Optional: Go to the Appearance -&gt; Widgets admin page to create one or more 'Get Custom Field' sidebar widgets for your widget-enabled theme.<\/li>\n<li>Optional: Use one of the six template functions provided by this plugin to retrieve the contents of custom fields. You must 'echo' the result if you wish to display the value on your site.<\/li>\n<li>Optional: Use the provided shortcode within posts or wherever shortcodes are supported.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='i%20added%20the%20template%20tag%20to%20my%20template%20and%20the%20post%20has%20the%20custom%20field%20i%27m%20asking%20for%20but%20i%20don%27t%20see%20anything%20about%20it%20on%20the%20page%3B%20what%20gives%3F'><h3>I added the template tag to my template and the post has the custom field I'm asking for but I don't see anything about it on the page; what gives?<\/h3><\/dt>\n<dd><p>Did you <code>echo<\/code> the return value of the function, e.g. <code>&lt;?php echo c2c_get_custom('mood', 'My mood: '); ?&gt;<\/code><\/p><\/dd>\n<dt id='can%20i%20achieve%20all%20the%20functionality%20allowed%20by%20the%20six%20template%20functions%20using%20the%20widget%3F'><h3>Can I achieve all the functionality allowed by the six template functions using the widget?<\/h3><\/dt>\n<dd><p>Except for <code>c2c_get_custom()<\/code> (which is only available inside \"the loop\"), yes, by carefully setting the appropriate settings for the widget.<\/p><\/dd>\n<dt id='how%20do%20i%20configure%20the%20widget%20to%20match%20up%20with%20the%20template%20functions%3F'><h3>How do I configure the widget to match up with the template functions?<\/h3><\/dt>\n<dd><ul>\n<li><code>c2c_get_custom()<\/code> : not achievable via the widget<\/li>\n<li><code>c2c_get_current_custom()<\/code> : set the \"Post ID\" field to <code>0<\/code>, leave \"Pick random value?\" unchecked, and set other values as desired.<\/li>\n<li><code>c2c_get_post_custom()<\/code> : set the \"Post ID\" field to the ID of the post you want to reference and set other values as desired.<\/li>\n<li><code>c2c_get_random_custom()<\/code> : leave \"Post ID\" blank, check \"Pick random value?\", and set other values as desired.<\/li>\n<li><code>c2c_get_random_post_custom()<\/code> : set the \"Post ID\" field to the ID of the post you want to reference, check \"Pick random value?\", and set other values as desired.<\/li>\n<li><code>c2c_get_recent_custom()<\/code> : leave \"Post ID\" blank, leave \"Pick random value?\" unchecked, and set other values as desired.<\/li>\n<\/ul><\/dd>\n<dt id='i%20don%27t%20plan%20on%20using%20the%20shortcode%20builder%20when%20writing%20or%20editing%20a%20post%20or%20page%2C%20so%20how%20do%20i%20get%20rid%20of%20it%3F'><h3>I don't plan on using the shortcode builder when writing or editing a post or page, so how do I get rid of it?<\/h3><\/dt>\n<dd><p>If you use the block editor (aka Gutenberg, which is the default editing experience as of WordPress 5.0), then the shortcode builder is not available yet so this situation would be moot for you.<\/p>\n\n<p>For the classic editor, when on the write or edit admin pages for a page or post, find the \"Screen Options\" link near the upper right-hand corner of the page. Clicking it slides down a panel of options. In the \"Show on screen\" section, uncheck the checkbox labeled \"Get Custom Field Values - Shortcode\". This must be done separately for posts and for pages if you want the shortcode builder disabled for both sections.<\/p>\n\n<p>Programmatically, see the developer documentation for the <code>get_custom_field_values\/show_metabox<\/code> filter for how to completely (or selectively) disable the shortcode builder.<\/p><\/dd>\n<dt id='i%20don%27t%20see%20the%20shortcode%20builder%3B%20where%20is%20it%3F'><h3>I don't see the shortcode builder; where is it?<\/h3><\/dt>\n<dd><p>If you use the block editor (aka Gutenberg, which is the default editing experience as of WordPress 5.0), then the shortcode builder is not available yet.<\/p>\n\n<p>If you aren't able to include scripts in your posts (i.e. you don't have the 'unfiltered_html' capability), then the shortcode builder is not available to you. Only those with the editor or administrator role (except on Multisite) or the super administrator role can make use of this plugin's shortcode.<\/p>\n\n<p>For the classic editor, the shortcode builder\/wizard is available in the admin when writing or editing a page or post. On the edit\/create page, it'll be a sidebar widget (in this context, also known as a metabox) labeled \"Get Custom Field Values - Shortcode\". If you don't see it there (which may be the case since it is hidden by default), find the \"Screen Options\" link near the upper righthand corner of the page. Clicking it slides down a panel of options. In the \"Show on screen\" section, check the checkbox labeled \"Get Custom Field Values - Shortcode\". This must be done separately for posts and for pages if you want the shortcode builder enabled for both sections.<\/p><\/dd>\n<dt id='can%20i%20move%20the%20shortcode%20builder%20box%20because%20it%20is%20way%20down%20at%20the%20bottom%20of%20the%20right%20sidebar%20when%20i%20create%2Fedit%20posts%3F'><h3>Can I move the shortcode builder box because it is way down at the bottom of the right sidebar when I create\/edit posts?<\/h3><\/dt>\n<dd><p>Yes, any of the boxes on the page when creating\/editing posts can be rearranged by dragging and dropping the box name. At the very top of the shortcode builder box the cursor will turn into a four-way array indicating you can click to drag that box. You can move it under the post content box, or higher up on the right side.<\/p><\/dd>\n<dt id='why%20didn%27t%20the%20shortcode%20get%20inserted%20into%20the%20editor%20after%20i%20clicked%20the%20%22send%20shortcode%20to%20editor%22%20button%3F'><h3>Why didn't the shortcode get inserted into the editor after I clicked the \"Send shortcode to editor\" button?<\/h3><\/dt>\n<dd><p>Sometimes you have to ensure the text editor has focus. Click within the text editor and make sure the cursor is positioned at the location you want the shortcode to be inserted. Then click the button and the shortcode should get inserted there.<\/p><\/dd>\n<dt id='is%20this%20plugin%20compatible%20with%20the%20new%20block%20editor%20%28aka%20gutenberg%29%3F'><h3>Is this plugin compatible with the new block editor (aka Gutenberg)?<\/h3><\/dt>\n<dd><p>Yes, except that the shortcode builder (a custom tool to facilitate making use of the plugin's shortcode when creating a post) has not been ported over yet. The template tags, widget, and shortcode itself all function properly.<\/p><\/dd>\n<dt id='does%20this%20plugin%20include%20unit%20tests%3F'><h3>Does this plugin include unit tests?<\/h3><\/dt>\n<dd><p>Yes.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>4.1 (2023-10-08)<\/h4>\n\n<p>Highlights:<\/p>\n\n<p>This minor release prevents use of unsafe markup in widgets, improves documentation, improves unit testing, and notes compatibility through WP 6.3+.<\/p>\n\n<p>Details:<\/p>\n\n<ul>\n<li>Hardening: Restrict markup used in widget to safe HTML. Props Satoo Nakano (Patchstack).<\/li>\n<li>Change: Ensure <code>show_metabox()<\/code> only potentially returns true for post screens<\/li>\n<li>Change: Add inline documentions for shortcode-related hooks<\/li>\n<li>Change: Tweak some formatting in <code>DEVELOPER-DOCS.md<\/code><\/li>\n<li>Change: Clarify references to shortcode-related hook in <code>DEVELOPER-DOCS.md<\/code><\/li>\n<li>Change: Note compatibility through WP 6.3+<\/li>\n<li>Change: Update copyright date (2023)<\/li>\n<li>New: Add <code>.gitignore<\/code> file<\/li>\n<li>Unit tests:\n\n<ul>\n<li>Fix: Allow tests to run against current versions of WordPress<\/li>\n<li>New: Add <code>composer.json<\/code> for PHPUnit Polyfill dependency<\/li>\n<li>Change: Prevent PHP warnings due to missing core-related generated files<\/li>\n<li>Change: In bootstrap, add backcompat for PHPUnit pre-v6.0<\/li>\n<li>Fix: Fix tests associated with <code>show_metabox()<\/code> and add two new tests<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>4.0.1 (2021-11-05)<\/h4>\n\n<ul>\n<li>Change: Further restrict usage of shortcode to only those with 'unfiltered_html' capability. Props Erwan.<\/li>\n<li>New: Add a few more possible TODO items<\/li>\n<\/ul>\n\n<h4>4.0 (2021-11-04)<\/h4>\n\n<p>Highlights:<\/p>\n\n<p>This recommended release prevents users who can't publish posts from using the shortcode in posts (security hardening), adds some new filters, adds DEVELOPER-DOCS.md, notes compatibility through WP 5.8+, and reorganizes and improves unit tests.<\/p>\n\n<p>Details:<\/p>\n\n<ul>\n<li>Change: Prevent users who can't publish posts from using the shortcode in posts. Props Francesco Carlucci.\n\n<ul>\n<li>Hardens security to prevent potentail information disclosure or XSS by authors with limited privileges<\/li>\n<li>New: Add shortcode class function <code>can_author_use_shortcodes()<\/code><\/li>\n<li>New: Add filter <code>'get_custom_field_values\/can_author_use_shortcodes'<\/code><\/li>\n<li>Change: Prevent shortcodes created by users who cannot publish posts from being evaulated<\/li>\n<li>Change: Prevent display of shortcode builder metabox to users who cannot publish posts<\/li>\n<\/ul><\/li>\n<li>New: Add filter <code>'get_custom_field_values\/show_metabox'<\/code> to customize if shortcode builder metabox is shown<\/li>\n<li>New: Add DEVELOPER-DOCS.md and move template tag and shortcode documentation into it<\/li>\n<li>Change: Note compatibility through WP 5.8+<\/li>\n<li>Change: Update copyright date (2021)<\/li>\n<li>Change: Tweak installation instruction<\/li>\n<li>Unit tests:\n\n<ul>\n<li>Change: Split shortcode-related tests out into their own file<\/li>\n<li>Change: Split widget-related tests out into their own file<\/li>\n<li>New: Add helper functions to facilitate creating users\n\n<ul>\n<li>New: Add <code>create_user()<\/code> for creating a user and optionally making them the current user<\/li>\n<li>New: Add <code>unset_current_user()<\/code> for unsetting the current user<\/li>\n<li>New: Add <code>tearDown()<\/code> to ensure current user gets unset after each test<\/li>\n<\/ul><\/li>\n<li>New: Add unit tests for <code>show_metabox()<\/code><\/li>\n<li>Change: Reduce likelihood of particular randomization tests from failing due to reasonable possibility of subsequent randomization choosing the same item<\/li>\n<li>Change: Add optional arg <code>$make_global<\/code> (defaulted to false) to <code>create_post_with_meta()<\/code> to facilitate making the created post global<\/li>\n<li>Change: Restructure unit test file structure\n\n<ul>\n<li>Change: Move <code>phpunit\/bin\/<\/code> to <code>tests\/bin\/<\/code><\/li>\n<li>Change: Move <code>phpunit\/bootstrap.php<\/code> into <code>tests\/phpunit\/<\/code><\/li>\n<li>Change: Move tests from <code>phpunit\/tests\/<\/code> to <code>tests\/phpunit\/tests\/<\/code><\/li>\n<li>Change: In bootstrap, store path to plugin file constant so its value can be used within that file and in test file<\/li>\n<li>Change: In bootstrap, check for test installation in more places and exit with error message if not found<\/li>\n<li>Change: Remove 'test-' prefix from unit test files<\/li>\n<\/ul><\/li>\n<\/ul><\/li>\n<li>New: Add a few more possible TODO items<\/li>\n<\/ul>\n\n<p><em>Full changelog is available in <a href=\"https:\/\/github.com\/coffee2code\/get-custom-field-values\/blob\/master\/CHANGELOG.md\">CHANGELOG.md<\/a>.<\/em><\/p>","raw_excerpt":"Use widgets, shortcodes, and\/or template tags to easily retrieve and display custom field values for posts or pages.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/1511","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"author":[{"embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/users\/3606"}],"replies":[{"embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=1511"}],"wp:attachment":[{"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=1511"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=1511"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=1511"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=1511"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=1511"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=1511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}