The team here at StudioPress is very pleased to announce today’s release: Genesis 2.4.0. This version of the Genesis framework includes several enhancements, bug fixes, and general housekeeping items.
A big thanks to Ron Rennick and Gary Jones for stepping up this release cycle and contributing tons of code. As always, this community continues impress. Thanks guys!
Read on to find out more about Genesis 2.4.
Markup API
In Genesis 2.2, we introduced something we called “Genesis Markup API.” This feature was a way to control the output of html tag attributes, as well as a means to facilitate the conditional loading of HTML5 markup for newer themes. It also allowed us to inject things like Schema.org microdata attributes.
It really transformed the way markup is output in Genesis, which no other theme was doing at the time.
All along, we’ve wanted to expand the functionality of this feature to include not just the conditional output of HTML5 tags, or the addition and removal of tag attributes, but to grant full control over the markup output throughout the framework, as well.
Genesis 2.4 is a big step in that direction.
Our team has enhanced the Markup API to allow for full customization of the opening and closing tags themselves, in addition to the attributes.
Look for tutorials and snippets in the near future explaining how to use the Markup API to customize the markup in a theme or plugin.
Inline Documentation and Code Standards
Our contributors continue to prioritize accuracy and readability in the Genesis code.
When it comes to standards and documentation, I believe Genesis is second to none. Genesis 2.4 includes tons of updates to the inline documentation and maintains strict adherence to WordPress coding standards (a fact we’re proud of).
And, as always, this release includes lots of little enhancements and bug fixes. For a detailed list, see the changelog below.
Additions
- Added
unfiltered_or_safe
sanitizer. - Added or corrected lots of inline documentation.
- Added
phpcs.xml
file for code standards testing. - Added identifying classes to featured posts’ “More Posts” section title and list.
- Added
$wrap
and$title
to the passed arguments of thegenesis_post_title_output
filter. - Added new features to the Markup API, allowing for open and close arguments, passing content, and new filters.
- Added
js-superfish
class to all menus that support it. - Added missing “to” in
genesis_prev_next_post_nav()
‘s comment header. - Added new functions that handle the logic for meta and favicon markup, and amended existing output functions to use them.
Changes
- Changed URLs for gravatars on the “What’s New” page to use HTTPS.
- Corrected typo on SEO settings screen.
- Changed Featured Post widget to use placeholder instead of default value for number of posts to show.
- Updated
CHANGELOG.md
with release notes going back to 1.6.0. - Changed CPT archive intro setting to use
unfiltered_or_safe
sanitizer. - Changed some code and all documentation to better match WordPress coding standards.
- Moved
h1
elements outside the form on admin settings pages. - Changed Featured Post entry header to display wrapper even when only byline is showing.
- Changed heading on the import/export admin page to
h2
fromh1
. - Extracted XHTML from Genesis output, and added it back in with new Markup API filters if HTML5 is not supported.
- Moved SEO tooltips to Help tab on post editor screen.
- Changed to use of time constants in update check transients.
- Changed sitemap to hide Posts-related sections if the site has no Posts.
- Changed
genesis_user_meta_default_on()
andGenesis_Admin::create()
to do return checks earlier. - Moved
genesis_create_initial_layouts()
to thegenesis_setup
hook. Possible breaking change, in order to ensure compatibility with WordPress 4.7+.
Removals
- Removed colons from labels on settings screens.
- Removed errant
$
in the URL used in the “parent theme active” admin notice. - Removed unused global for Admin Readme class.
- Removed dead code in two post shortcode callback functions.
- Removed unused parameters in
genesis_nav_menu_link_attributes()
.