Changelog
Release date:
- May 17th 2016
Preamble:
- This is a dot version bump update, which is done so as the core code has been changed drastically. Nine new classes have been added to maintain structured code, including many more function to fetch data easily and consistently.
- With hundreds of changes, I had to find a new way to present this update in an understandable manner. So here goes!
Summarized:
- With over 200 notable changes, I bring you a new Pragmatic Foundation.
- Most importantly, this update allows you to be better informed about your website’s index status, through the much improved SEO bar.
- As the issue of the incorrect title length has finally been found, this update glorifies and updates its plugin’s title counter once more.
- Many new options have been included within the SEO Settings page. Including much desired Title, Description and Schema.org options.
- WPML compatibility has received a rework, now all canonical URLs in the sitemap and front-end are always correct. The qTranslate X settings are now also being taken into account when outputting canonical URLs.
- A new script has been added on the front-page. This will make sure the Breadcrumb homepage name will be correct in the Search Engine Results Page.
- The breadcrumb script has been expanded to work on posts with multiple and nested categories. These scripts now also work on WooCommerce products. Don’t be surprised if you suddenly have all kinds of scripts in the header! These scripts help Google and other Search Engines better understand your website.
- And for developers, with the code expanding rapidly, this update brings new light to the code by reorganizing the code into dedicated classes and is including many major refactorizations.
Feature highlights:
- New:
- WooCommerce Schema.org breadcrumbs.
- Intelligently nested Schema.org breadcrumbs.
- Schema.org website name.
- Vibrant character counters for when you need extra visual assistance.
- The SEO Bar’s tooltip is now able to speak to you through accessiblity tools.
- More Automated Description options.
- New Archive Title, Sitemap and Schema.org options.
- Yandex Sitemap pinging support.
- Automatic option merging on update.
- AJAX integration when adding tags.
- Personalized error handling for developers.
- Over 150 new public functions for developers.
- More than 20 brand new filters for developers.
- WP Query Admin synchronization for developers.
- Automated setting navigation tabs for developers.
- Improved:
- Better Automated Description sentence punctuations.
- Modernized and Smarter SEO bar, with many more conditional checks.
- Many linguistic improvements, with more flow in the SEO Bar.
- Extended Title Fix extension support.
- More efficient cache key generation.
- Adaptive WPML & qTranslate X URL generation.
- Better editorial translations.
- JetPack compatibility.
SEO Tip of the Update: Redirects & Canonical
- A change in the Canonical URL or the use of a 301 Redirect URL indicate that your page has moved.
- These can be seen by Search Engines as the same. However, the 301 Redirect enforces the relocation of the page to everyone, whereas the Canonical URL softly indicates.
- When changing the Canonical URL of a Page, you’re telling robots to look and elsewhere, be sure to include a link to the new Page on the canonicalized Page to indicate where everything has moved to.
- However, it’s even better to enforce a 301 redirect. This makes sure both your visitors as Search Engines know where to be instantaneously.
- If you’ve changed the permalink of a popular post, you should create an empty post that follows one of the said examples.
Announcements:
- Back when I started developing this update, I announced a new extension plugin for The SEO Framework! Title Fix – The SEO Framework.
- This update ensures extra compatibility with the Title Fix plugin, this will add back removed title features for if the theme is doing it wrong and when the Title Fix plugin is active.
About: Plugin progression and help wanted:
- This dear project has taken me over 2500 hours to perfect and maintain. This update alone has cost me over 220 hours to complete.
- I really want to keep this project free. In fact, the upcoming Author SEO is actually planned to be a premium extension, but it will be free.
- I also want to turn this project into my full-time job, even if it’s free from monetization and/or premium content.
- And I will keep my promises, always: This plugin will stay free of ads, (self-)reference and this plugin will continue to be maintained.
- All with all, this means I can’t do it without your help!
- Please consider making a donation. The link can be found on the WordPress.org plugin page. Orhere.
- Thank you so much for your support!
About: Changes in Changelog
- I love to push many changes at once every update, as I’m only happy when everything works. If I find a bug, I’ll be sure to fix it!
- So to clean up the massive all-inclusive changelogs, detailed information on updates are put aside and are visible on the plugin’s website.
- With each update, I try to find better ways for presenting information and I try to minimize confusion.
No Stone Left Unturned:
- This massive update has touched almost every aspect of this plugin.
- With this, many fixes are put into effect for all known and possibly many unknown bugs. Better standards have been put into place, both for WordPress and the coding world.
- All changes have been tested thoroughly. However, it’s always possible something has been overlooked. If you find anything out of place, let me know in the plugin support forums!
For everyone – Squared SEO Bar:
- From now on, the SEO bar is flat and squared. This gives a more modern look and feel.
- Screen Readers are now able to enunciate the tooltip when shown.
For everyone – New Options Merging:
- From this plugin update, new default options are automatically merged with the previous options on update.
- This way, you don’t have to update each site you own with the new recommended features.
- No options will be overwritten in this process, and it only happens once in the admin area when the plugin is active and the one who can edit the site’s SEO options is loading the site.
- This new feature is multisite compatible and can be disabled through a filter.
- When this happens, a dismissible update notification will show whenever this happens.
- The notification is unbranded, it will say “New SEO options have been updated.” on the SEO Settings Page and will add “View the new options here.” on all other Admin Pages.
For everyone – Schema Markup:
- New schema markup has been added, this helps Search Engines better understand your website.
- Breadcrumbs have been expanded, to support nested categories and multiple categories. Now you can see multiple breadcrumb scripts to help Search Engines better understand your website’s structure.
- Breadcrumbs scripts now also work on WooCommerce products, enjoy!
For translators – High priority translations:
- Please look for Front-end output comments within the translation page to find high-priority translations.
For translators – Linguistic improvements and other changes:
- Objective translations for grammatically gendered noun types like “this post” (male in Dutch) and “this page” (genderless in Dutch) within sentences which are fetched dynamically (like “Product” and “Product Tag” for WooCommerce) couldn’t be translated correctly.
- Therefore, I’ve changed these types of sentences without any loss of understanding.
- Small changes within translations happen over time, although I try to keep these to the necessary minimum. Nevertheless, as this is an ongoing project you can expect continuous improvements wherever possible. Translating WordPress and its plugins are a team effort :).
- Other small changes include conversion of WordPress slang to real English. Like “Paged” to “Paginated”.
- Over time, inconsistencies have appeared within the language used within this plugin. These have been fixed. If you still find any, please notify me through the support forums and I’ll address them.
- Thanks @pidengmor for many (over 40) linguistic improvements, they’re really appreciated! Thank you so much for your time!
- I also want to make a big shout out to all the other translators who have contributed to this plugin! <3
- And if you wish to become a language editor, just let me know!
For developers – Performance:
- Because this plugin has grown massively in size with this update, the memory use has been increased marginally (to 4MB from 2.7MB). This shouldn’t cause issues. And to improve this, singleton methods are going to be considered.
- Because many more items are being rendered, the plugin is a tad slower than before, even though overall performance has been improved. This won’t affect your website’s performance noticeably.
- This plugin has been benchmarked with PHP Xdebug. With it I found that some functions affected the performance marginally, and have thus been fixed accordingly.
For developers – Refactoring classes:
- The classes
AutoDescription_DoingItRight
andAutoDescription_Generate
among others have been greatly refactored to improve performance and maintainability. - Almost all public functions before this overhaul have maintained their initial behavior, the generation of the output has just been split over multiple functions. If this is not the case, and unexpected variables are input, a deprecation notice is output.
For developers – WordPress Query Sync:
- The current WordPress query only works on the front-end.
/inc/classes/query.class.php
contains alternative functions based on the WordPress query. However, although these functions work just like WordPress Core query functions, they also look for the screens within the admin area.- These functions do not work on custom post types, yet. But they do work on WooCommerce products and product categories.
- This resulted in easing the whole code base as it doesn’t have to check for admin/front-end per-function anymore. Further improvements are planned, but this update already contains most of the overhaul.
Looking forward – Upcoming features:
Not all planned features made it into 2.6.0. The following features are planned to be released in a future version.
- Author SEO (Title, Description, Twitter, Facebook, Google+, etc.).
- Google+ output options.
- The SEO Bar options.
- Per page title additions options.
- Canonical SEO (URL scheme options).
- Article modified time output options, just like the Sitemap time output options.
- Image Description as an excerpt for the attachment’s page meta descriptions.
- Twitter card plugin detection and subtle notification of such.
- WP.me shortlink integration.
Detailed Log
Many, many other – both minor and major changes did not make it to the detailed log. For example, when a new function has been added to check for a query state, the use of it goes throughout the plugin; this effectively adds many changes.
For everyone:
- Added:
- Default options merging on plugin update, so you don’t have to check out the new features manually with each update. When new features are added which have not yet been registered. These features will now be updated to its default settings. Multisite compatible.
- Archive title prefix options!
- Schema SEO!
- Schema SEO will allow you to enable and disable global Schema.org features.
- LD+Json Schema.org website name and URL header markup on the front-page. This should change the
example.com > category > subcategory
output in Google toExample Site > category > subcategory
. See this page for more info. - Time display options for the sitemap. Now you can select how the time is output. Default “Complete date plus hours, minutes and time zone”.
- Buffer cleaner before the sitemap begins outputting. This makes sure the sitemap can’t be erroneous through other plugin or theme errors.
- New global Automated Description options.
- Removal of the three dots after the description if the excerpt ends with a dot, question mark or exclamation point.
- Removal commas if the excerpt ends with one in the automated description.
- Extra compatibility for when the theme is doing it wrong, for when the Title Fix extension plugin has been used.
- Article Modified Time now also works for WooCommerce products and are treated as Posts.
- Headway compatibility. Done by using one of their SEO plugin detection filters which disables their SEO functionality.
- Runway Framework theme compatibility.
- Yandex sitemap pinging support.
- Yandex Webmasters verification code support.
- Description excerpt detection. Now when an excerpt is filled in, no description additions will be added in front of them.
- Lowered pinging response time to 3s from 5s, to reduce max script time to 12s from 20s on post publish.
- The SEO Bar now has a Double Title check (will appear red). This will make sure that you can see where the copy of SEO data went wrong.
- The SEO Bar now also checks for global category and tag indexing, following and archiving options on the applicable pages.
- The SEO Bar now has breaks in the description at various places, to impact behavior through glances.
- The SEO Bar Indexing notice turns red if Indexing has been enabled, yet the blog isn’t set to public.
- The SEO Bar Following notice turns yellow if Following has been disabled, yet the blog isn’t set to public.
- The SEO Bar Archiving notice turns yellow if Archiving has been enabled, yet the blog isn’t set to public.
- The SEO Bar Categories and Tags Robots options now reflect in the SEO bar.
- The SEO Bar’s description notification word counter now has a filterable minimum word character length which will have a higher tolerance for repeated words that are less than (filterable) 3 characters (5 times instead of 3).
- The SEO Bar will now show an exclamation mark when the Post ID can’t be found. It’s quite nice, and you probably won’t ever see it :(.
- Non-executive
index.php
files in folders which contain readable files, to prevent indexing of such. - WooCommerce breadcrumbs support!
- Nested post categories now also have a breadcrumb script. Multiple even, when applicable.
- All admin notices are now dismissible.
- Term AJAX handler for the SEO bar, so when you add a new term you can already check its SEO state.
- Small notification in the Feed Settings when the feed is already converted into an excerpt.
- The blog page is now also shown within the Sitemap.
- Front Page pagination robots
noindex
option. Default off. - Front Page link relationship option. The Front page now only listens to this option. Default on.
- Color Deficiency options have been added to the character counters. Clicking on them will add extra information.
- The Color Deficiency options have been split into four options: Counter, Counter + Name, Name, Counter inversed.
- Descriptive URL on Title Blogname removal option.
- Title generation cache. It no longer gets generated more than once per page load.
- Feed location URL in the Feed Settings.
- Disabling of JetPack Open Graph when The SEO Framework Open Graph is active.
- JetPack sitemap detection. When the Jetpack module is active, default “sitemap detected” behavior of this plugin follows. Which is showing a notification in the Sitemap settings and deactivating its functions for output.
- Changed:
- The SEO Bar is now flat and square. Much more modern.
- The SEO Bar’s balloon is now also flat and square.
- The SEO Bar T/D and G letters have a space removed between them to make it a little more appealing on smaller screens.
- The SEO Bar now has a maximum width of 220px instead of 260px.
- Description “good” detection length range has been extended to 137 minimum instead of 145, to eliminate over-optimization.
- When no description can be generated from the content or excerpt, the social description is now completely empty.
- LD+Json markup now uses double quotes instead of single.
- LD+Json Sitelinks Search Box script now excludes the Alternative Name, as it’s optional and non-configurable (yet).
- Short explanatory text on Canonical question mark title within the in-post SEO metabox is displayed rather than the HTML output.
- When a Post ID can’t be found for the SEO Bar, a more elegant notification is displayed.
- Moved SEO Bar before bbPress Reply Created.
- The sitemap, theme doing it right, description and LD+Json transient keys have been invalidated.
- Open Graph plugin detection now only shows a notification, instead of removing OG output as well. These values may be duplicated (although undesired).
- When a Custom Home Page Title Tagline is set, it’s now used for the Title on the description on the home page.
- When no Blog Tagline has been set, it will now return “Untitled”.
- The
twitter:image:src
tag has been deprecated, it has been changed intotwitter:image
.
- Updated:
- Several sentences to have a better English structure to what they do.
- .POT translation file.
- Reworked:
- URL generation.
- WPML URL generation, it’s now much more consistent and will now also work with custom language settings. It will now also show the correct URL in admin at all times, moreover, it will with subdomains too.
- WPML shortlink URL now also redirect correctly when visited in special scenarios.
- qTranslate X URL generation, it will now work with all kinds of settings.
- Massively improved URL generation time by adding more layers of cache on often used and also heavy scripts.
- Massively improved LD-json script generation time by adding more layers of cache and exchanging heavy operations for more efficient ones.
- Metabox setting tabs no longer rely on WordPress Core admin navigation tabs.
- JavaScript caching and advanced optimizations for better browser performance through Google Closure Compiler.
- Description excerpt generation exceeding words calculation.
- Improved:
- The SEO Bar’s now more reliable in its data.
- The SEO Bar hover balloon linguistics, “but” now can’t show up twice when the fact is enforcing upon its state, and is instead replaced with “and”. E.g. “But the blog isn’t set to public. And there are no posts…”
- The SEO Bar buttons are now converted to placeholder hyperlinks. So screen-readers know they’re clickable.
- The SEO Bar’s text is now easier on the eyes due to added text-shadow.
- The SEO Bar’s hover balloon is now aligned with its bar on Posts and Pages overview and to column in Term overview.
- The Custom Home Page Title JavaScript placeholder now updates to default when the Tagline is emptied.
- Translations with multiple variable strings can now safely be translated and switched around.
- The automated description orders are now translatable.
- LD+Json transient is also flushed on change within the SEO Settings page when the home page is a blog.
- Robots tag generation time.
- Removed break (
<br />
) closing tag throughout the plugin as we’re not using XHTML in WordPress. - Sanitation of URLs where query arguments must be removed is now compatible on any (odd) server configuration.
- Post State “No Search” additions check is now only done on singular pages within the admin dashboard.
- The Term SEO Box is removed if another popular SEO plugin is detected.
- Feed excerpt generation time.
- Sitemap generation time.
- Disabled query caching when fetching posts on the sitemap as it’s a redundant feature at that point.
- Right before the sitemap gets rendered, many filters have been cleaned up to save memory.
- The custom title is now trimmed from whitespace in the Home Page Settings metabox.
- WPMUdev Domain Mapping database values are now all fetched in one query instead of two.
- External SEO plugin detection, it now uses constants to search for when applicable.
- External Sitemap plugin detection, it now uses constants to search for when applicable.
- Settings tabs vertical icon alignment.
- The Home Page settings are now divided with navigation tabs.
- No more accidents: The setting checkbox labels now don’t overflow anymore to the width of its container. This means you have to click on the text for the checkbox to change, rather than also possibly on the whitespace next to it. In the future all checkboxes and radio buttons will obtain this property.
- Reduced the chance of WPMUdev Domain Mapping’s Async CDSSO Script being incorrect due to unorthodox rewrite flushing.
- Sitemap flush on post deletion now only runs when post is certainly deleted.
- Screen-readers can now correctly read the SEO Bar status aloud on Edge with NVDA.
- When JetPack sitemap is detected, the robots.txt alterations are disabled.
- Greatly improved Term SEO options integration performance.
- Greatly improved header image rendering time.
- Fixed:
- Added cache key language detection, to build correct descriptions for the right language. This works on WPML, qTranslate X and many other translation plugins.
- Added back Genesis schema.org
<head>
markup indicator on the home page. - Post type support check was run throughout the WordPress admin dashboard, now it only checks if there are actually posts to check.
- WPML query arguments canonical pagination links.
- Plausible description cache conflict when the home page has been switched from page to blog in the SEO settings page.
- WPML URL base structure check was done wrongfully, the canonical URLs are now fixed for multilingual pages.
- Incorrect title counter length on all posts and pages when the home page title tagline has been removed. This issue was first encountered in version 2.5.0.
- Incorrect description was output on some archives.
- The removal of title additions now correctly reflect on the title counter length when JavaScript is disabled.
- The removal of title additions are now also reflecting its setting on the placeholders within categories and tags.
- Some deprecated functions gave a fatal error or warning, this has been resolved.
- When Reading Settings’ Feed Options are set to summary, the backlink is now still shown when enabled.
- Screen Options showed an SEO column, while there isn’t any in pages, posts and terms.
- When using diacritic characters, like in French, The SEO Bar’s description word counter would be incorrect.
- On WooCommerce product tag search within the dashboard, Products showed the wrong SEO bar.
- On WooCommerce product tag search within the dashboard, Products could show the wrong post SEO state.
- On Touching the SEO bar, the pointer could be misplaced.
- When a category is added, the SEO bar doesn’t show an empty and shifted row anymore.
- Double subdirectory generation in special Site Address URL configurations.
- Link relationship on the second Page was pointing to itself.
- The SEO Bar within Terms had a minor pixel overflow on small screens.
- Unneeded Page navigation confirmation warning when deleting post.
- Global page and paged variables could’ve been overwritten by the theme resulting in a crash. This can’t happen anymore.
- Pinging the Search Engines of sitemap changes now won’t happen on post creation.
- External URLs to a root domain without slash now work correctly in custom 301 redirect.
- Servers that don’t support PCRE will now have 301 redirects parsed correctly.
- Archive
rel next/prev
pagination links now also work on the Blog Page. - Second or later archive pages now allow for pagination in the Canonical URL.
- When the Home Page title additions location is set to Right and has a title filled in in the in-post SEO Box as well as the Home Page Settings and when the Home Page Settings is emptied, the placeholder title location and additions are reversed when no Tagline options are touched.
- WordPress version compare could sometimes return incorrect values when dealing with unstable versions.
- The Canonical URL is now selecting the primary domain when available when using WPMUdev Domain Mapping.
- Blogname cache wasn’t initialized correctly.
- Blog Description cache wasn’t initialized correctly.
- When using subsets of languages, e.g. “nl-NL-formal”, the check no longer falls back to “en_US”, but to “nl_NL”. This affects
og:locale
in particular. - Robots.txt subdirectory admin path is now rendered correctly.
- Conflicting plugin detection can now detect more than one plugin again.
- Sitemap and description transients should now always flush on page publish.
- PHP 5.2 support within the SEO Settings page.
- Removed:
- Shortlink URL from Home Page, as it’s quite useless and self-referring there.
- Yahoo Pinging option and initiation, as they’ve moved to Bing quite some time ago (oops).
- WPMUdev Avatars support. As WordPress core has taken over this feature and it was unreliable.
- Canonical URL from Search and 404 pages. It yields no value on those pages and might even yield incorrect results.
- Official support for WordPress 3.6 and 3.7. It takes too much time to maintain such backwards compatibility.
- Note:
- This version is yet incompatible with the upcoming Genesis 2.3.0 update. This means that this plugin can no longer automatically merge its data with previously set Genesis Terms data. This issue should be resolved in an upcoming update, which I hope to have released before Genesis 2.3.0.
For developers:
- Added:
- New filters! See Filter Notes below.
- More than 150 new functions to make this plugin more maintainable.
AutoDescription_Core
class, this class replacedAutoDescription_Init
from being the latest class.AutoDescription_Generate_Description
class.AutoDescription_Generate_Title
class.AutoDescription_Generate_Url
class.AutoDescription_Generate_Ldjson
class.AutoDescription_Generate_Image
class.AutoDescription_TermData
class.AutoDescription_Compat
class.AutoDescription_Debug
class.AutoDescription_Query
class, this class contains queries which use the default WP_Query class, but then extends it to be used in the admin area as well.AutoDescription_Admin_Init::localize_admin_javascript()
function.AutoDescription_Generate_Title::get_the_real_archive_title()
function, which also works in the admin area and has a term object argument and outputs no HTML, effectively speeding the whole plugin up on archive pages.AutoDescription_Detect::current_theme_supports_title_tag()
function, returns cached true if theme supports title tag.AutoDescription_Siteoptions::get_all_options()
function.AutoDescription_Generate_Url::get_relative_term_url()
second parameter(array) $args
replaces(bool) $no_request
.AutoDescription_Render::the_url_from_cache()
now has a fifth parameter$paged_plural
. Default true.AutoDescription_Generate_Url::the_url()
‘s$args
parameter now accepts the ‘paged_plural’ index. Default true.- Customized error handlers.
THE_SEO_FRAMEWORK_DISABLE_TRANSIENTS
boolean constant listener to disable transients.the_seo_framework_is_settings_page()
function.- Extra
$post_id
arguments, see Filter notes for more information below. - Untitled Term Name when using WordPress core archive title filters when returning falsy.
- Debugging now shows memory usage and processing time.
- When debugging is enabled, the memory usage is also shown in the plugin indicator within HTML.
- Changed:
- Sitemap debug memory usage shows peak usage rather than current usage now.
AutoDescription_Core::post_type_support()
now has an array argument parameter.AutoDescription_Core::get_the_real_ID()
now returns 0 instead of false if no ID is found.AutoDescription_Generate_Title::build_title_notagline()
is now protected.AutoDescription_Generate_Title::title_for_terms()
now usesarray $args
for parameters.AutoDescription_Generate_Title::generate_title()
now usesarray $args
for parameters.AutoDescription_Generate_Title::title()
admin functions now don’t rely on$args['meta']
anymore to bypass doing it wrong detection, but rather onis_admin()
checks.AutoDescription_Generate_Title::title()
‘s$args['meta']
is now set to defaultfalse
.- CSS and JS file identifiers have their duplicated
css
orjs
removed. Soautodescription-css-css
is nowautodescription-css
, and so forth.
- Updated:
- JS files and cache.
- CSS files and cache.
- Reworked:
- Class structure and order.
AutoDescription_DoingItRight
and all its contents.AutoDescription_Generate_Description
and all its contents.AutoDescription_Transients::generate_cache_key()
, it’s much faster and more accurate now.AutoDescription_Generate_Url
and all its contents.AutoDescription_Generate_Ldjson
and all its contents.AutoDescription_Generate_Title
and all its contents.- Functions have been put in their respective aptly named classes where applicable.
- Debugging has been modified to clean up the code greatly.
- Metabox Setting Navigation Tabs, now your tabs are automatically styled and integrated when using the
AutoDescription_Metaboxes::nav_tab_wrapper()
function. It’s also less “search-and-destroy” and thus easier on the browser. - The metabox navigation tabs’ content is now also automatically aligned.
- All SEO Settings page checkboxes are now wrapped in a normalized function for a more seamless integration and if-needed adjustments.
AutoDescription_TermData::get_term_filter()
no longer adds SEO data after the SEO output has been set (actionthe_seo_framework_do_after_output
). This means the term SEO data might be unreachable afterwards when usingget_term()
.
- Improved:
- Hundreds of type optimization checks in if-statements, not only making it more readable, but also two to forty time less taxing on the CPU per optimization (count the Hertz!).
- Cached the SEO bar translations.
- render.class.php filters can now return empty string to disable its output.
The_SEO_Framework_Load::call_function()
now consumes less memory and has gained support for PHP 5.2.the_seo_framework_sitemaps_settings_tabs
filter now has an argument parameter.the_seo_framework_social_settings_tabs
filter now has an argument parameter.the_seo_framework_add_blogname_to_title
filter now has effect throughout the plugin.the_seo_framework_canonical_force_scheme
filter now works on all URLs generated by this plugin and has now an$scheme
argument which passes the current used scheme.- WordPress Query detection.
- Blog page and Home Page query detection.
- Search query titles aren’t escaped twice anymore.
- Removed duplicated term object calls on term pages, reducing memory usage.
- When the paged URLs filter is used, the then useless URLs aren’t rendered.
- Plugin settings activation filter usage is now reflected throughout the plugin.
- When using the plugin settings activation filter, new default options are still applied (which are also filterable).
- Benchmarks have shown that an array flip to use an
isset
match only benefits huge arrays very little and only when you’re certain the result is at the end of the array. Otherwise, it’s a drastic performance decrease. Therefore$this->is_array()
calls have been set back to the default PHP behavior. og:image
resizing now doesn’t use PCRE anymore, but regular PHP find and replace.og:image
quality has been upped to 82 from 70. This is according to the new WordPress 4.5.0 standards.- This plugin’s admin CSS and JS are now registered and cached prior to enqueueing. This speeds things up if multiple script calling hooks are used.
- The Term SEO box initialization now only happens on the term edit screens.
- Automated Description Example now uses ID’s rather than classes for better JavaScript performance.
- The protected default site options are no longer stored in the object. Evidentily removing the
$warned_site_options
object variable and putting it into a publicly accessible function. - The protected warned site options are no longer stored in the object. Evidentily removing the
$default_site_options
object variable and putting it into a publicly accessible function. AutoDescription_Siteoptions::get_warned_settings()
now simply converts the given option values into booleans and then ones and zeros, rather than escaping thoroughly.AutoDescription_Adminpages::is_default_checked()
now doesn’t return''
anymore when using the echo parameter.AutoDescription_Adminpages::is_warning_checked()
now doesn’t return''
anymore when using the echo parameter.- Disabled the Network options constructor and its class variables, as it’s not yet used (and protected).
- Feed function initialization is now only run on feeds to improve performance.
- Fixed:
the_seo_framework_dot_version()
now checks for four dot versions if applicable.AutoDescription_Core::get_the_real_ID()
won’t return the latest post ID anymore on taxonomial archives.AutoDescription_Generate_Image::get_image()
now returns something when the third parameter is set to false.- The SEO Bar column initialization filter used to be called as an action and mixed echoing and returning. It’s now a consistent filter, as WP core suggests.
- Empty delimiter PHP warning when the theme is doing it wrong and no separator has been provided.
- Improperly sanitized option, disclosed. Although, it holds no security treat as all options always go through multiple sanitation processes.
- PHP Warning in the robots.txt output. This will make subdirectory sitemaps work again.
- JavaScript
undefined TypeError
on mobile screens and Microsoft Edge. The_SEO_Framework_Load::call_function()
contained wrong error handling.The_SEO_Framework_Load::call_function()
now converts and checks for$this
correctly. Evidently speeding up the plugin greatly.The_SEO_Framework_Load::call_function()
now doesn’t return a fatal error anymore if class and method isn’t found when the class is referred to as string.- LD+Json Home Page flushing cache wasn’t initialized correctly on SEO settings save.
- Warned options cache now works.
AutoDescription::title_for_home()
now correctly fetches the front page title option if called outside of the Home Page loop.
- Deprecated:
AutoDescription_Detect::current_theme_supports()
, use corecurrent_theme_supports
instead.- Second parameter for
AutoDescription_Generate_Url::the_url()
, use$args['id']
instead. AutoDescription_Debug::echo_debug_information()
function, replaced byAutoDescription_Debug::get_debug_information()
and refactored.AutoDescription_DoingItRight::seo_column()
function, replaced byAutoDescription_DoingItRight::seo_bar()
to eliminate naming confusion.AutoDescription_Sitemaps::setup_sitemap_transient()
function, replaced byAutoDescription_Sitemaps::setup_sitemap()
to eliminate naming confusion.AutoDescription_Detect::is_locale()
function, replaced byAutoDescription_Detect::check_wp_locale()
to eliminate naming confusion.AutoDescription_Generate_Title::get_placeholder_title()
function, useAutoDescription_Generate_Title::title()
instead with the argumentnotagline
.AutoDescription_Siteoptions::initialize_defaults_admin()
function. Without replacement.AutoDescription_Siteoptions::initialize_defaults()
function. Without replacement.
- Removed:
- Open Graph plugins check from Canonical URL output, these are unrelated.
- Filter/Constant/Action PHP comments indicating changes from 2.3.0 to clean up code.
- Title generation
placeholder
argument. Useget_custom_field
and/ornotagline
instead. - Leftover
.postbox-container
CSS adjustment. AutoDescription_Networkoptions
class.
- Other:
- Cleaned up code, massively.
- Filter Notes:
- New:
(bool) the_seo_framework_json_sitename_output
(bool) the_seo_framework_use_archive_title_prefix
(bool) the_seo_framework_update_options_at_update
(bool) the_seo_framework_schema_metabox
(bool) the_seo_framework_seo_bar_pill
(int) the_seo_framework_term_metabox_priority
(int) the_seo_framework_bother_me_desc_length
(string) the_seo_framework_shortlink_output
(string) the_seo_framework_googlesite_output
(string) the_seo_framework_bingsite_output
(string) the_seo_framework_yandexsite_output
(string) the_seo_framework_pintsite_output
(string) the_seo_framework_paged_url_output_prev
(string) the_seo_framework_paged_url_output_next
(string) the_seo_framework_ldjson_scripts
(string) the_seo_framework_feed_source_link_text
(string) the_seo_framework_pre_add_title
, used for embedding the title.(string) the_seo_framework_pro_add_title
, used to fetch the written title and adjusting it accordingly.(string) the_seo_framework_metabox_priority
(string) the_seo_framework_metabox_id
(Warning: Do not use. Will break JS and CSS. It’s a placeholder for a future update).(array) the_seo_framework_robots_meta_array
, fires beforethe_seo_framework_robots_meta
.(array) the_seo_framework_title_settings_tabs
(array) the_seo_framework_description_settings_tabs
(array) the_seo_framework_homepage_settings_tabs
- Altered:
(bool)/(string) the_seo_framework_twitterimage_output
now listens tofalse
, resulting in notwitter:image
being output.(bool)/(string) the_seo_framework_ogimage_output
now listens tofalse
, resulting in no og:image
being output; added$post_id
parameter.(bool) the_seo_framework_output_canonical
, added$post_id
parameter.(string) the_seo_framework_og_image_after_featured
, added$post_id
parameter.(string) the_seo_framework_og_image_after_header
, added$post_id
parameter.(string) the_seo_framework_description_output
, added$post_id
parameter.(string) the_seo_framework_ogdescription_output
, added$post_id
parameter.(string) the_seo_framework_oglocale_output
, added$post_id
parameter.(string) the_seo_framework_ogtitle_output
, added$post_id
parameter.(string) the_seo_framework_ogtype_output
, added$post_id
parameter.(string) the_seo_framework_ogsitename_output
, added$post_id
parameter.(string) the_seo_framework_twittercard_output
, added$post_id
parameter.(string) the_seo_framework_twittersite_output
, added$post_id
parameter.(string) the_seo_framework_twittercreator_output
, added$post_id
parameter.(string) the_seo_framework_twittertitle_output
, added$post_id
parameter.(string) the_seo_framework_twitterdescription_output
, added$post_id
parameter.(string) the_seo_framework_twitterimage_output
, added$post_id
parameter.(string) the_seo_framework_facebookauthor_output
, added$post_id
parameter.(string) the_seo_framework_facebookpublisher_output
, added$post_id
parameter.(string) the_seo_framework_facebookappid_output
, added$post_id
parameter.(string) the_seo_framework_publishedtime_output
, added$post_id
parameter.(string) the_seo_framework_modifiedtime_output
, added$post_id
parameter.(string) the_seo_framework_googlesite_output
, added$post_id
parameter.(string) the_seo_framework_bingsite_output
, added$post_id
parameter.(string) the_seo_framework_pintsite_output
, added$post_id
parameter.(string) the_seo_framework_robots_meta
, added$post_id
parameter.(array) the_seo_framework_robots_settings_tabs
, added$args
parameter.(array) the_seo_framework_social_settings_tabs
, added$args
parameter.(array) the_seo_framework_knowledgegraph_settings_tabs
, added$args
parameter.(array) the_seo_framework_sitemaps_settings_tabs
, added$args
parameter.
- Removed:
(bool) the_seo_framework_seo_bar_squared
. Replaced by(bool) the_seo_framework_seo_bar_pill
.
- New:
- Constant Notes:
- New:
(bool) THE_SEO_FRAMEWORK_DISABLE_TRANSIENTS
. Note: Does not disable transients for pinging search engines.
- Removed:
(bool) THE_SEO_FRAMEWORK_DEBUG_MORE
. It always shows more now.
- New:
- Action Notes:
- New:
the_seo_framework_schema_metabox_before
the_seo_framework_schema_metabox_after
the_seo_framework_do_before_output
, not to be confused with the filterthe_seo_framework_before_output
the_seo_framework_do_after_output
, not to be confused with the filterthe_seo_framework_after_output
- New:
- Notes:
- I marked numerous functions with
@access private
. These functions can change behavior at any time without prior notice and should never be used in extension plugins, even though publicly accessible. Please duplicate the function if you really need to use it. - Please be aware that all CSS classes will change in a future update, to cover a synonymous namespace for The SEO Framework.
- This plugin is hooking into more than 90 actions and filters. WordPress holds the class information when this is done (because of
$this
) and can take up a lot of memory. To resolve this, class variables holding arrays have been put into functions. - There’s an upcoming function for the home title. Currently, the blogname and title are unaptly named. This means that the title is the blogname, and the blogname is the title. The current home page title functions are therefore marked private. It will become: “title” – “sep” – “additions”, this will be reflected upon throughout the title class.
- I marked numerous functions with