We are happy to announce that, after several months of work, Genesis 2.5 is available and ready for you to download.
In Genesis 2.4, we began the process of expanding our Markup API to allow for nearly universal markup control. Through filters, you can modify the HTML element, modify the attributes, add additional microdata, or disable the output completely.
We also began removing the legacy XHTML from the main output functions: The output logic is now its own file, which doesn’t load unless you’re running an older theme that doesn’t support HTML5.
Genesis 2.5 will continue to add new elements to the list of those that have been passed through the Markup API. It will extract more and more of those last bits of XHTML logic, as well.
We made significant progress, both in conversation and code, in starting to move Genesis into a better-organized, more object-oriented direction. This work will continue into 2.6, but the steps taken so far are as much examples for future development as they are code improvements.
In addition, we’ve tried to extract large blocks of HTML that were previously mixed in with large blocks of PHP in order to move them into their own files. We call these “views,” and they now have their own directory. They are named sensibly, so locating the code you want to see should be super-simple.
A Big Update
2.5 is a big release. There’s a lot to love about it, from new filters and helper functions, to more plugin compatibility, an expanded layout engine, full support for the new WordPress title tag feature, and accessibility improvements.
As always, feel free to send any bug reports to our support team. You can also give me a shout on Twitter (@nathanrice) and I’ll look into it.
To see what’s changed in Genesis 2.5, here is an extensive changelog:
Additions
- Added instances of markup API use in several locations where it was previously not used
- Added any missed xHTML markup to the xHTML markup filter
- Added
Genesis_Contributors
andGenesis_Contributor
classes - Added
views
directory and extracted output to organized view files - Added full support for the new WordPress title tag
- Added slashing for user script input fields
- Added primary category support when Yoast SEO is on, but breadcrumb feature is off
- Added support for multiple layout types depending on context
- Added script loader class
- Added ability to specify location of entry scripts via a second option
- Added filter for capability required to use CPT archive settings
- Added filter to disable layout settings on CPT archive settings page
- Added sanitizer for layout settings on CPT archive settings page
- Added a posts page check to
genesis_do_blog_template_heading()
- Added filter for entry content display options in the customizer
- Added terms back to terms array in our terms filter
- Added
genesis_strip_p_tags()
function - Added center alignment option to featured image alignment setting
- Added more filters to breadcrumb class
Changes
- Split featured post and page widget entry header markup, gave markup API context for each
- Restored adding tabindex via javascript when a11y is on
- Prevention of smushed offscreen accessible text
- Reorganized
init.php
- Stripped tags from filtered credits text to avoid paragraph nesting
- Standardized the context naming in widget markup
- Flagged entry markup as
is_widget
via the params array so it can be modified without affecting other entries - Restored new line between admin screen buttons
- Improvements to composer, PHPCS, and unit tests
- Switch all schema.org URLs to
https
- Formally deprecate
genesis_get_additional_image_sizes()
- Improved CSS
- Improved code optimization and documentation
- Ensure skip links filter returns an array
- Improved randomness of search form ID
- Fixed potential issue with footer scripts filter
- Moved aria-label to the
element so screen readers will announce it
- Added capability check to CPT archive settings link in the toolbar
- Refactored and improved archive headings
- Fixed typo in comments feed setting
Removals
- Removed semantic headings SEO option, with fallback for backward compatibility
- Disabled
backtotop
output if HTML5 is on - Removed output buffering on search form
- Removed unnecessary title on skip links