Refactored the variable replacement function for better and faster results and more stability. This should fix most if not all problems users where having with variables not being replaced in the title, meta description, snippet preview etc - props Jrf.
Fixed: wpseo_replacements filter was being run before all replacements were known.
Fixed: %%pt_single%% and %%pt_plural%% didn't work in preview mode.
Fixed: %%page_total%% would sometimes be one short.
Fixed: %%term404%% would sometimes be empty while the pagename causing the 404 was known.
Fixed: empty taxonomy sitemap could still be shown, while it shouldn't, as reported by allasai in issue #1004 - props Jrf.
Fixed: if first result of a search is a post, the blog page was incorrectly added to the breadcrumb, as reported in issue #1248 by Nikoya - props Jrf.
Fixed: ensure that all our options exist always, fixes rare case in which this wouldn't be so. As reported by bonny in issue #1245 - props Jrf.
Fixed: Media title and meta settings could not be set when 'attachment URLs redirect to parent post' was selected which let to issues for attachments without a parent, as reported by Firebird75 in issue #1243 - props Jrf.
saving of settings on the multisite settings page was not working.
restoring site to default settings from multisite settings page was not working.
initializing new blogs with settings from a chosen default blog was not working (might still not be completely stable for WP multisite with WPSEO in must-use plugins directory, stable in all other cases).
wrong option debug information shown on multisite settings page
Fixed: an issue with sitemap transient caching for plugins not using paginated sitemaps (like news seo).
Check if get_queried_object_id is not 0 before enqueueing wp_enqueue_media.
Set rssafter to empty string on test_embed_rss() test.
Heavily reduce query load for XML sitemaps by caching XML sitemaps in transients.
New wpseo_register_extra_replacements action hook which lets plugin/theme builders add new %%...%% replacement variables - including relevant help texts -. See function documentation for an example of how to use this new functionality.
If the final string - after replacement - would contain two separators with nothing between them, this extra separator will be removed.
All remaining not replaced replacement vars are now stripped from the strings (without breaking the snippet preview).
New filter wpseo_replacements_filter_sep which can be used to change the seperator character passed by the theme.
When using the 'Reset default settings' button on a blog in a network while another blog has been chosen to be used as a basis for the settings for all new blogs, the reset will respect that setting and reset the blog to the settings from the chosen blog.
For small networks ( < 100 sites ), the network page user interface has been improved, by offering drop-down lists of the blogs for blog selection fields. For larger networks, the interface remains the same.
Added an action to allow adding content to the Post Type tab on the meta admin page.
Removing the extra blog name added to the title by woo_title().
More optimization improvements to snippet preview.
Add filter to allow other plugins to interact with our metaboxes outside of the standard pages - props Jrf.
Replace variables through an AJAX call, which makes them work in the post editor too and allows for more variables to be replaced in the title.
Added priority filters for XML sitemaps.
Security improvement: As the .htaccess / robots.txt files are site-wide files, on a multi-site WP installation they will no longer be available for editing to individual site owners. For super-admins, the 'SEO -> Edit Files' admin page will now be accessible through the Network Admin.
We've added server specific info to our tracking class. Most notably, we're tracking whether a number of PHP extensions are enabled for our users now.