This minor update brings major bug fixes. Most notoriously, the home page settings now predict the metadata perfectly in the admin screens. Bloggers will love this update, too, because Facebook and Twitter metadata for the home blog page is now always correct.
For developers, please note that the upcoming major release (3.3.0) will introduce new taxonomical settings. Because the image-rendering integration isn’t suited for this, it’ll be overhauled. For more information, see this issue.
Also, for developers, note that some API changes better suited for a major release were also brought into this minor release; these were required to fix some bugs.
Detailed log
> View code changes.
> View closed issues.
For everyone:
- Added:
- More SEO plugins are now detected and tested for conflicts.
- Improved:
- Special HTML characters are now converted to their human-readable form when determining the autogenerated description length.
- Changed:
- The Extension Manager suggestion is back. However, it no longer includes the installer.
- Fixed:
- When a post type has more than one hierarchical taxonomy attached, the new block editor will no longer stop working.
- Title and description placeholders now render more HTML characters, so the counters are (almost always) correct.
- Edge cases exist for HTML characters not recognized by PHP. Keep your server up-to-date!
- When JavaScript is disabled, the social meta-description placeholders now show the real front-end value.
- When a term ID collides with the home page ID, the Meta Title additions no longer display the site tagline incorrectly.
- The tooltip boundary now tries to prevent creating unwanted scrollbars.
- Terms no longer use singular post’s social & featured images on ID conflict.
- The custom Twitter home page-as-page meta is now obtained in the correct order.
- This went unnoticed as no one knowingly utilizes this feature. As such, no one experienced this bug.
- Home page-as-blog queries are stricter, this fixes:
- Breadcrumb home page titles.
- Home page meta box placeholders.
- Home page social meta getters.
- Monitor home page title checks.
- Many, many API functions’ incorrectly inferred behavior (see “for developers” below).
- Twitter Card creator and Article author user-meta are no longer pulled from the latest post.
- Terms now use the custom description as placeholders for the Open Graph and Twitter description.
- In 3.3, they’re also planned to get custom fields for this.
- In the block editor, the title is now prefixed with “Private: …” or “Protected: …” when required again.
- Removed:
- Internet Explorer support for tooltips.
- On-hover titles are available as a fallback whenever HTML support isn’t required.
- Internet Explorer support for tooltips.
- Other:
- Confirmed WordPress 5.0.4 & Gutenberg 4.8.x support.
- Various performance improvements were added.
For translators:
- Updated:
- The plugin readme has been overhauled.
- An update POT file is available.
- Other:
- We’re looking for translators! Want to translate our plugin or readme? Reach out to us, and we’ll gladly compensate you with a lifetime Premium license. Conditions apply, retroactively:
- We hand out a license after you’ve contributed to more than 25% of the plugin translations.
- Or, we hand out a license after you’ve contributed to more than 50% of the readme translations.
- Up to one license per contributor.
- We’re looking for translators! Want to translate our plugin or readme? Reach out to us, and we’ll gladly compensate you with a lifetime Premium license. Conditions apply, retroactively:
For developers:
- Notes:
- There’s a discrepancy between the protected
get_custom_{$social}_{*}
description and title methods, where the description methods fall back to the custom page meta-description, whereas the titles fall back an empty string.- This was a design decision made for easy integration for the custom fields.
- This inconsistency caused an oversight, where social descriptions weren’t generated for terms; invalidating the Twitter Card meta.
- I don’t know what to do with this, yet. Expect this discrepancy to stay until a generator comes for option and meta pages.
- There’s a discrepancy between the protected
- Added:
- JavaScript:
tsfL10n.nonces.manage_options
has been added for strict nonce verification. Although unused, this is future-proofing. - JavaScript:
tsf-updated-gutenberg-visibility
now triggers, and forwards the visibility state. - JavaScript:
tsfGBC.triggerUpdate( 'visibility' )
is now available. I recommend forwarding this to the Gutenberg editor, and lettsfGBC
trigger this automatically.
- JavaScript:
- Changed:
- The
tsfL10n.params
andtsfL10n.i18n
values are now escaped less rigorously. This requires extra security attention when using these values.
- The
- Improved:
get_rewritable_post_types()
‘s output is now cached. Improving performance for websites with many post types.
- Removed:
- Extension Manager installation scripts.
- Fixed:
- The home page example title’s HTML elements are now properly closing.
get_title()
no longer double-escapes the custom field title, making the second parameter useful again.- (API) Some methods were incorrectly parsing the home page elements from external requests when the home page is a blog (ID=0). To fix this, these (protected) methods gained a check:
get_custom_open_graph_description_from_args()
get_custom_twitter_description_from_args()
get_custom_description_from_args()
get_custom_twitter_title_from_args()
get_custom_open_graph_title_from_args()
get_custom_field_title_from_args()
build_canonical_url()
- The error handler now calculates whether an error is invoked internally or externally of the class, so it can accurately point to the nefarious caller.
- Protected or private class variables can no longer be overwritten externally.
- Protected or private class variables can no longer be accessed, albeit a warning popped up when doing so.
- Filter notes:
the_seo_framework_og_image_alt_custom
no longer runs on archive pages.the_seo_framework_sitemap_additional_urls
no longer forwards invalid URLs.
- Class changes:
- Factory:
the_seo_framework()
, all classes:__set()
no longer overwrites protected or private variables.__get()
no longer returns protected or private variables’ values.
- Factory:
the_seo_framework()
, in classThe_SEO_Framework\Query
:- Added:
- Method
is_real_front_page_by_id()
, a simplified home page by ID test.- This will return false positives for post type archives, search, and date archives.
- Method
- Changed:
- Method
can_cache_query()
no longer outputs query errors to users unbeknownst of TSF debugging.
- Method
- Added:
- Factory:
the_seo_framework()
, in classThe_SEO_Framework\Admin_Init
:- Added:
- Method
get_default_scripts()
, returns a filterable array of the default scripts.
- Method
- Added:
- In class
The_SEO_Framework\Builders\Scripts
:- Added:
- Method
forward_known_script()
, forwards a registered script to WordPress’ script handler.- Use
register()
to make a script known.
- Use
- Method
enqueue_known_script()
, forwards and enqueues a registered script.- Invokes
forward_known_script()
.
- Invokes
- Method
- Removed:
- Access to property
$include_secret
.
- Access to property
- Changed:
- Registered templates are now cleared from the queue. This fixes an issue with Extension Manager v2.0.2.
- Added:
- Factory:
- Other:
- Cleaned up code: Improved legibility of some files.