France recently amended its copyright laws. In short, in France, it’s now forbidden for content aggregators to display excerpts and previews of your content when no consent is given.
To accommodate those laws, Google will soon look for new directives, and we added new site-wide options to output those. These new options are disabled (unspecified) by default when you update The SEO Framework, but they are enabled (some access) by default when you install The SEO Framework on a new site. Please see this issue for our take on this.
In this update, we also fixed a few bugs and added various improvements.
Detailed log
> View code changes.
> View closed issues.
For everyone
- Added:
- Various options regarding new copyright directive legislation compliance for content aggregators.
- These options are disabled for sites that upgrade from TSF < 4.0.2.
- These options are enabled with a preset default for new sites and sites that reset settings.
- Unlike other SEO plugins, which are doing it wrong, these options aren’t affected by the indexing state. This is a different directive, circumstantially corresponding to but not explicitly modified by indexing.
noindex
robots-headers are now also added to the XML-RPC pingback request endpoints.- When description-generation is disabled (globally or on a per-page basis), you may now get more contextual SEO Bar entries.
- More descriptive robots-meta states are added to the SEO Bar for site-wide post-category and post-tag directives.
- Various options regarding new copyright directive legislation compliance for content aggregators.
- Improved:
- When known images over 4096 pixels in either width or height are used for social sharing or schema, the biggest version of that image under the limit will be considered.
- Fixed:
- The sitemap(s) (and their stylesheet(s)) can now recognize different symbols in the URL for display requests:
- ASCII-typed subdirectories with capital letters are now correctly recognized.
- UTF8-typed (and URL-encoded) subdirectories (also with mixed case) are now correctly recognized.
- The endpoints used are now case-insensitive. So,
/SiTeMaP.xMl
should work, including the plain-permalink version thereof.
- Unverified plugin conflicts with the new trait loader have been addressed. Keyword: Unverified.
- Plugins that create a CMS on top of the WordPress CMS (which is ludicrous) now play along nicer with The SEO Framework. Among them are known to be BuddyPress and The Events Calendar.
- We’ve done this by testing for a valid query ID on seemingly valid post and term queries. When no such ID exists, the query is deemed invalid for use, and we disable TSF’s SEO output and enhancements for the request.
- The sitemap(s) (and their stylesheet(s)) can now recognize different symbols in the URL for display requests:
For translators
- Added:
- New translations are available regarding the copyright legislation.
- Updated:
- Translation POT file.
- Fixed:
- Custom MO files can now be placed in the languages folder of this plugin. They will be overwritten on update, however.
- A typo.
For developers
- Changed:
- The overloading trait-collection is now loaded during the plugin load phase, instead of at
plugins_loaded
.- This addresses an issue where some plugins call The SEO Framework before it’s loaded.
- The overloading trait-collection is now loaded during the plugin load phase, instead of at
- Option notes:
- For option index
THE_SEO_FRAMEWORK_SITE_OPTIONS
:- Added:
set_copyright_directives
, int, either1
or0
. Default1
for new sites,0
for old sites.max_image_preview
, string, eithernone
,standard
, orlarge
. Defaultstandard
.max_snippet_length
, int, from-1
to600
.max_video_preview
, int, from-1
to600
.
- Added:
- For option index
- Method notes:
- In façade object
the_seo_framework()
:- Added:
s_image_preview()
, sanitizes themax_image_preview
option.s_snippet_length()
, sanitizes themax_snippet_length
andmax_video_preview
options.get_largest_acceptable_image_src()
, returns the largest WordPress image source based on parameters.s_url_relative_to_current_scheme()
, makes non-relative URLs absolute, corrects the scheme to most preferred when the domain matches the current site, and makes it safer regardless afterward.
- Changed:
get_post_meta()
now tests for an existing post ID before trying to fetch the metadata.query_supports_seo()
now tests for existing post/term IDs on singular/term queries.- To be more in line with the Post Metadata fetchers, these methods now test for a valid term ID, and will continue to use the filtered term object for processing:
update_term_edit_term_meta()
update_quick_edit_term_meta()
update_single_term_meta_item()
save_term_meta()
get_robots_txt_url()
now uses preferred URL scheme, instead of the current URL scheme.- These methods now assert the correct tag taxonomy condition, which helps with tag-specific filters and translations:
get_generated_archive_title()
get_generated_single_term_title()
s_image_details()
now finds smaller images when they’re over 4K.robots_meta()
now parses the new robots-meta values.
- Added:
- In façade object
- Action notes:
- Added:
the_seo_framework_ping_search_engines
, runs whenever it’s time to ping Bing (on valid site update).- N.B. This runs either at a cronjob or during post save.
- Added:
- Filter notes:
- Changed:
the_seo_framework_sitemap_endpoint_list
the endpoints’ default regex is now case-insensitive. We advise making your custom implementations to be case-insensitive, too.the_seo_framework_robots_meta_array
now has the new legislatorial robots-meta keys and their values available. It’s ill-advised to change them if you don’t own the site, however. Rely on the new options, instead.
- Changed: