forked from sybrew/the-seo-framework
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathreadme.txt
540 lines (446 loc) · 31.5 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
see=== The SEO Framework ===
Contributors: Cybr
Donate link: https://theseoframework.com/donate/
Tags: google, bing, open graph, seo, xml sitemap, breadcrumbs, meta, search engine, pagerank, serp, facebook, twitter
Requires at least: 4.3.4
Tested up to: 4.6.1
Stable tag: 2.7.0
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl-3.0.html
The SEO Framework plugin provides an automated and advanced SEO solution for your WordPress website.
== Description ==
**Easy SEO for beginners, an awesome API for experts. WordPress SEO for everyone.**
An accessible, unbranded and extremely fast SEO solution for any WordPress website.
> <strong>This plugin strongly helps you create better SEO value for your content.</strong><br>
> But at the end of the day, it all depends on how entertaining or well-constructed your content or product is.
>
> No SEO plugin does the magic thing to be found instantly. But doing it right helps a lot.<br>
> The SEO Framework helps you doing it right. Give it a try!
>
> The Default Settings are recommended within the SEO Settings page. If you know what you're doing, go ahead and change them! Each option is also documented.
= What this plugin does, in a few lines =
* Automatically configures SEO for every page, post, taxonomy and term.
* Allows you to adjust the SEO globally.
* Allows you to adjust the SEO for every applicable page, post, taxonomy and term.
* Shows you how to improve your SEO with a beautiful SEO bar for each supported Post, Page and Taxonomy.
* Helps your pages get ranked distinctively through various Metatag and scripting techniques.
* Helps your pages get shared more beautiful through Facebook, Twitter and other social sites.
* Allows plugin authors to easily extend this plugin.
* Supports custom post types, like WooCommerce and bbPress.
* Automatically upgrades itself from Genesis Framework SEO.
* Allows for easy SEO plugin switch using a tool.
*Read [this guide](https://theseoframework.com/docs/seo-data-migration/) for transferring SEO Content using SEO Data Transporter.
= Unbranded, Free and for the Professional =
This plugin is unbranded! This means that we don't even put the name "The SEO Framework" anywhere within the WordPress interface, aside from the plugin activation page.
This plugin makes great use of the default WordPress interface elements, like as if this plugin is part of WordPress. No ads, no nags.
The small and hidden HTML comment can easily be disabled with the use of a filter or extension.
Nobody has to know about the tools you've used to create your or someone else's website. A clean interface, for everyone.
= Completely automated =
**By default, this plugin automatically generates:**
* Title, with super-fast 'wrong themes' support.
* Description, with anti-spam techniques.
* A canonical URL, with full WPMUdev Domain Mapping, subdomain and HTTPS support to prevent duplicated content.
* Various Open Graph, Facebook and Twitter tags.
* Special Open Graph description, which organically integrates with the Facebook and Twitter snippets.
* Extended Open Graph Images support, including automated image manipulation.
* Schema.org LD+Json script that adds extended search support for Google Search and Chrome.
* Schema.org LD+Json script for Knowledge Graph (Personal/Business site relations, name and logo).
* Advanced Schema.org LD+Json script for Breadcrumbs (just like the visual one) which extends page relation support in Google Search.
* Schema.org LD+Json script to show the correct site name in Google Breadcrumbs.
* Publishing and editing dates, accurate to the day.
* Link relationships, with full WPMUdev Domain Mapping and HTTPS support.
* Simple Sitemap with Pages, Posts and Custom Post Types (CPT), which listens to the in-post settings.
* Feed excerpts and backlinks to prevent content scraping.
**This plugin goes further, behind the screens it:**
* Prevents canonical errors with categories, pages, subdomains and Multisite Domain Mapping.
* Disables 404 pages and empty categories from being indexed, even if they don't send a 404 response.
* Automatically notifies Google, Bing and Yandex on Post or Page update and deletion when sitemaps are enabled.
= Generously personal =
**This plugin allows you to manually set various values for each post, page, public CPT and term.**
**This plugin allows you to adjust over 90 site settings, including:**
* Title and Description Separators and additions.
* Automated description output.
* Schema.org output, including Knowledge Graph options.
* Various robots' options.
* Many home page specific options.
* Facebook, Twitter and Pinterest social integration
* Shortlink tag output.
* Link relationships
* Google, Bing, Pinterest and Yandex Webmaster verification
* Sitemap integration.
* Robots.txt sitemap integration.
* Feed anti-scraper options.
* And many, many more settings.
= Openly pluggable =
The SEO Framework has been built to go further than just itself.
Take a look at the API documentation located at [The SEO Framework API Docs](http://theseoframework.com/docs/api/).
= The SEO Bar =
**This plugin helps you to create better content, at a glance. By showing you:**
* If the title is too long, too short, duplicated, and/or automatically generated.
* If the description is too long, too short, duplicated, has too many repeated words and/or automatically generated.
* If the page is indexed, redirected, followed and/or archived, while looking at other WordPress settings.
**We call this The SEO Bar. Check out the [Screenshots](https://wordpress.org/plugins/autodescription/screenshots/#plugin-info) to see how it helps you!**
> This plugin is fully compatible with the [Domain Mapping plugin by WPMUdev](https://premium.wpmudev.org/project/domain-mapping/) and the [Domain Mapping plugin by Donncha](https://wordpress.org/plugins/wordpress-mu-domain-mapping/).<br>
> This compatibility ensures **prevention of canonical errors**. This way your site will always be correctly indexed, no matter what you use!<br>
= Hardcore caching =
This plugin's code is highly optimized on PHP-level and uses variable, object and transient caching. This means that there's little extra page load time from this plugin, even with more Meta tags used.
A caching plugin isn't even needed for this plugin as you won't notice a difference, however it's supported wherever best suited.
= Compatibility =
* Full internationalization support through WordPress.org.
* Extended Multibyte support (CJK).
* Full Right to Left (RTL) language support.
* Extended Color vision deficiency accessibility.
* Screen reader accessibility.
* MultiSite, this plugin is in fact built upon one.
* Detection of robots.txt and sitemap.xml files.
* Detection of theme Title output "doing it right" (or wrong).
* Automatic detection of various other popular SEO tools.
**If you have other popular SEO plugins activated, this plugin will automatically prevent SEO mistakes by deactivating itself on almost every part.**
= An additional sitemap =
The Sitemap generated with The SEO Framework is sufficient for Search Engines to find Posts, Pages and supported Custom Post Types throughout your website.
It also listens to the noindex settings on each of the items.
If you however require a more expanded Sitemap, feel free to activate a dedicated Sitemap plugin. The SEO Framework will automatically deactivate its Sitemap functionality when another (known) Sitemap plugin is found.
If it is not automatically detected and no notification has been provided on the Sitemap Settings, feel free to open a support ticket and it will be addressed carefully.
= Hidden breadcrumbs =
The Breadcrumb script generated by this plugin on Posts will also make sure Google easily finds related categories which aren't included within the Sitemap of this plugin.
== Installation ==
1. Install The SEO Framework either via the WordPress.org plugin directory, or by uploading the files to your server.
1. Either Network Activate this plugin or activate it on a single site.
1. That's it!
1. Let the plugin automatically work or fine-tune each page with the metaboxes beneath the content or on the taxonomy pages.
1. Adjust the SEO settings through the SEO settings page if desired. Red checkboxes are rather left unchecked. Green checkboxes are default enabled.
== Screenshots ==
1. This plugin shows you what you can improve, at a glance. With full color vision deficiency support.
2. Hover over any of the SEO Bar's items to see how you can improve the page's SEO. Red is bad, orange is okay, green is good. Blue is situational.
3. The dynamic Post/Page SEO settings Metabox. This box is also neatly implemented in Categories and Tags.
4. The SEO Settings Page. With over 90 settings, you are in full control. Using the Default Settings and filling in the Knowledge Graph Settings and Social Meta Settings is recommended to do.
== Frequently Asked Questions ==
= Is The SEO Framework Free? =
Absolutely! It will stay free as well, without ads or nags!
= I have a feature request, I've found a bug, a plugin is incompatible... =
Please visit [the support forums](https://wordpress.org/support/plugin/autodescription) and kindly tell me about it. I try to get back to you within 48 hours. :)
= Is this really a Framework? =
This plugin is not in particular a framework in a technical sense, but it is built with a framework's mindset. It is however a framework for your website's SEO, a building block that keeps everything together.
This means that this plugin will do all the great Search Engine Optimization, and also allows for extensions and real-time alterations. For when you really want or need to change something.
Extensions built for this plugin might just as well work as a standalone. The SEO Framework provides an easier and cached way of doing so, however.
= I am a developer; how can I help? =
The SEO Framework is currently a one-man project. However, any input is greatly appreciated and everything will be considered.
Please leave feature requests in the Support Forums and I will talk you through the process of implementing it if necessary.
= I want to remove or change stuff, but I can't find an option! =
The SEO Framework is very pluggable on many fields. Please refer to the [Other Notes](https://wordpress.org/plugins/autodescription/other_notes/).
Please note that a free plugin is underway which will allow you to change all filters from the dashboard. No ETA yet.
= The sitemap doesn't contain categories, images, news, etc. is this OK? =
This is not a problem. Search Engines love crawling WordPress because its structure is consistent and well known.
If a visitor can't find a page, why would a Search Engine? Don't rely on your sitemap, but on your content and website's usability.
= What's does the application/ld+json script do? =
The LD+Json scripts are Search Engine helpers which tell Search Engines how to connect and index the site. They tell the Search Engine if your site contains an internal search engine, what sites you're socially connected to and what page structure you're using.
= The meta data is not being updated, and I'm using a caching plugin. =
All The SEO Framework's metadata is put into Object cache when a caching plugin is available. The descriptions and schema.org scripts are put into Transients. Please be sure to clear your cache.
If you're using W3 Total Cache you might be interested in [this free plugin](https://wordpress.org/plugins/w3tc-auto-pilot/) to do it for you.
= I want to transport SEO data from other plugins to The SEO Framework, how do I do this? =
Please refer to this small guide: [SEO Data Migration](http://theseoframework.com/docs/seo-data-migration/).
Transporting Terms and Taxonomies SEO data isn't supported.
== Changelog ==
= 2.8.0 - ??? =
**Release date:**
* PLANNED: December 2016 ?
**Important Note:**
* PHP 5.2 hasn't recieved updates for [over 5 years](http://php.net/eol.php) and using it is a major security risk.
* **This maintenance release completely drops support for PHP 5.2**. So, if you're using PHP 5.2, from this version on you can no longer run The SEO Framework.
* PHP 5.2 is a practicality and convinience hindrance for developers and is also source for bugs. Sometimes, we have to split otherwise simple code over multiple lines just to support it.
* WordPress is about to drop support for PHP 5.2 as well in the near future. See proposed [trac ticket 36335](https://core.trac.wordpress.org/ticket/36335).
* Inform your host to keep updated! Read more about informing your host [here](https://wordpress.org/about/requirements/).
**Summarized:**
* This maintenance release fixes ... TODO
* Class structure ... TODO
* Many functions now allow to echo the output now trough variable to prevent output sanitation mistakes... TODO
* Google's Knowledge Graph has been updated significantly. This update makes sure all the latest standards are enforced!
**SEO tip of the Update:**
* Not all SEO techniques are actively used on Google outside of the United States.
* For example, the Site Name Schema.org script might not have any effect.
* This changes over time as Google updates its Search Engine all over the world.
* Usage of experimental Schema.org scripts cause no harm to ranking.
**Do you mind:**
/ TODO
* If you have at least 30 seconds to spare, could you please fill in this anonymous survey? It will sincerely help me help you.
Record:
* How many websites do you operate (optional),
* Website with most traffic:
* PHP version (Add: "I don't know"),
* Website purpose ("Commercial (e-commerce/local store)/Hobby/Informational/Organization/Blog/News") (optional),
* User role (Author, Developer, Owner, Administrator, etc.) (optional),
* Website URL (optional),
* Would you pay for professional SEO services? (optional, 'Default: I don't know./Rather not say?'),
* How much? (optional, conditional),
* Feature request? (optional),
* Anything else? Let me know. (optional).
TODO:
***Are you an avid developer, and have extended The SEO Framework? Please carefully read the detailed changelog. The class structure has changed.***
*In essence, if you've programmed as described within the API, no changes should be made.*
**Detailed log:**
/
***TODO something something [changelog](https://theseoframework.com/?p= TODO #detailed).***
**For everyone:**
* **Added:**
/
* TODO Schema.org Logo addition. This removes the Schema.org logo in the Social Sites Links markup (previously marked as "Knowledge Graph settings").
* TODO Site Logo detection!
* Only when the theme supports it. You can upload one through the customizer (Site Identity).
* This allows for a new fallback image! This one has priority over the Site Icon.
* The Knowledge Graph makes good use of this logo, it has priority over the Site Icon.
/
* A new General settings metabox! Containing:
* General Settings. Generalized general general settings, commander:
/
* TODO I have no idea what to put here. Debugging, enabling advanced view, maybe?
* Performance Settings.
* You might wish to adjust these settings, if:
* You use object caching. The whole SEO output is stored in object cache for each page.
* You use page caching. The whole SEO output is then stored within the page cache already.
* Unlikely, your website's PHP engine and database are extremely optimized. Disabling the options might even improve performance.
* You have thousands of pages and posts. Disabling these options will desaturate the database over time, which might improve performance.
* Did you know that you can view the SEO meta generation time within the page's source?
* Layout settings. You might want to take a look at these settings, if:
* You don't need or even dislike the SEO Bar.
* You want to adjust visual impairment settings. ?? This is already possible (although hidden), slightly redundant.
* Canonical settings. You should only change these settings, if:
* Your website is accessible through both HTTP and HTTPS
/
* TODO Link relationship settings have been put here.
/
* TODO Visual notification for when an actual `robots.txt` file has been found.
* https://wordpress.org/support/topic/sitemap-settings-1/
* **Changed:**
* The first two description separators are no longer marked "recommended". This is because the description does not need to support old browsers or old screen readers.
* **Improved:**
* When the description title additions exceed 72 characters, they will no longer be included in the automated description.
* This is also documented as a fix, but it states 154 characters instead of 72 there.
* This should reduce the chance of spamdexing by keyword spamming.
* This change is completely in line with Google's automated description guidelines. See "[Create good meta description](https://support.google.com/webmasters/answer/35624#1)" (heading "Programmatically generate descriptions").
/
* TODO The post/page/term object cache is now flushed on edit/save.
* https://github.com/sybrew/the-seo-framework/issues/24
/
* TODO The sitemap is now no longer stored in a buffer. (echo in-line instead of return $var)
* This massively reduces the memory usage.
* Therefore, the sitemap's maximum entry output has been increased to 9000 from 2100.
* The accessible counter type (with background color, type 1) is now a bit bolder.
* On Woocommerce list tables additional tabs injected by other plugins will likely not overflow anymore.
* The sitemap cache now supports multiple languages. This means more than one sitemap can be created.
* Removed redundant and duplicated checks on the Open Graph image generation.
* **Updated:**
/
* TODO Translation POT file.
* All previous automated description transients have been invalidated.
* Old caches will automatically be cleaned from the database.
* New caches will automatically be set up. This might cause a small performance hit after the update, which should automatically be resolved.
* **Removed:**
/
* TODO Knowledge Graph Settings metabox.
* Its content has been moved inside the Schema Settings metabox.
/
* TODO Link Relationship Settings within the Social Meta Settings metabox.
* Its content has been moved to the General Settings metabox in the Canonical tab.
* **Fixed:**
/
* TODO On some themes, a fatal error was output when editing posts. (requires confirmation)
* https://wordpress.org/support/topic/can-not-edit-post-after-v2-7-0-update/
/
* TODO Page and post excerpts now correctly work.
* https://wordpress.org/support/topic/excerpt-to-meta-description-issue-screencast/
/
* TODO On some themes, the private prefix has been added to the title (already fixed, requires confirmation)
* https://wordpress.org/support/topic/category-page-title-with-weird-unwanted-prefix/
/
* TODO With PolyLang, the canonical URL failed to write the language path on the home pages.
* https://wordpress.org/support/topic/polylang-canonicals-failing-on-homepage/
/
* When the title exceeds 154 characters, the description will no longer contain the complete post's content. Instead, the title will now be omitted and the description length has been limited to 155 characters.
* WPML sitemap generated URL path now reflects the language. TODO confirm.
* TODO Robots.txt settings outputted incorrect notice when site is blocked from robots through WordPress reading settings while the sitemap has been deactivated.
* TODO bbPress forum topic ID's weren't correctly recognized. With this fix, these issues have been resolved:
- TODO The title is now correct.
- TODO The description is now correct.
- TODO The canonical URL is now correct.
/
* TODO AnsPress category canonical URL is now correct on its categories. @link https://wordpress.org/support/topic/anspress-categories/
* TODO The SEO Bar's on-hover tooltip is now once more correctly visible on mobile devices.
* TODO The notification that's displayed when settings are reset is no longer displayed on refresh.
* The website's tagline is no longer shown in the description when no excerpt can be generated.
**For translators:**
* **Added:**
* One new sentence, that wasn't correctly registered before.
* **Changed:**
* A few sentences have been updated slightly in order to be sanitized correctly.
**For developers:**
**Methods are no longer annotated by their classname in the changelog; instead they're now annotated with the object `the_seo_framework()->`**.
**All methods are treated as final, this means no duplicated method names should exist within the object. Except for magic methods, like `__construct()`.**
* **Added:**
/
* `The_SEO_Framework_Load->__set()` magic method.
* This prevents inaccessible property writing.
* This allows for property deprecation handling.
* A warning is emited whenever this method is accessed.
* All classes are now converted to use namespaces.
* Package: The_SEO_Framework
* Class autoloading.
* Now all The SEO Framework class files are required when needed, automatically.
* New JavaScript l10n and object property: 'hasInput'. Determines if the page renders The SEO Framework's input boxes, to be used to improve performance.
* Method `the_seo_framework()->s_excerpt()`. For escaping and prettifying (description) excerpts with consideration of shortcodes through filters.
* This method was extracted from `the_seo_framework()->get_excerpt_by_id()` when solely using the first parameter.
/
* Most sanitation functions are now public. This allows for easier, predictable and more secure external code.
* Two new description methods:
1. `the_seo_framework()->get_description_excerpt_normal()`, fetches the normal description excerpt.
1. `the_seo_framework()->get_description_excerpt_social()`, fetches the social description excerpt.
* **Changed:**
* All the classes can't be initiated directly anymore. Always use `the_seo_framework()`.
* Failing to do so will result in a fatal error.
* This allows me (the developer) to easily change the class structure without compatibility issues in the future.
* All classes have been renamed.
* They are now preceded by `The_SEO_Framework\`, in accordance to their newly acquired namespace.
* For example, `AutoDescription_Feed` is now `The_SEO_Framework\Feed`.
* The main class `The_SEO_Framework\Load` can not be initiated twice anymore. Failing to do so will return `null`.
* Always use function `the_seo_framework()` if you wish to access a method or property.
* Some class files have been moved.
* The changes:
* The main class file `load.class.php` has been moved to the `/autodescription/inc/classes/` folder, from the `/autodescription/` folder.
* The deprecation class handler `deprecated.class.php` has been moved to the `/autodescription/inc/classes/` folder, from the `/autodescription/inc/deprecated/` folder.
* These changes allow easy autoloading.
* Some classes have their sub names changed.
* The changes:
* `AdminPages` is now `Admin_Pages`.
* `DoingItRight` is now `Doing_It_Right`.
* These changes allow easy autoloading and namespace interaction.
* Some class files have been renamed.
* The changes:
* `adminpages.class.php` is now `admin-pages.class.php`
* `siteoptions.class.php` is now `site-options.class.php`
* `doingitright.class.php` is now `doing-it-right.class.php`
* `termdata.class.php` is now `term-data.class.php`
* `postdata.class.php` is now `post-data.class.php`
* These changes allow easy autoloading and namespace interaction.
* Some classes files (and their classes) have been removed.
* The changes:
/
* `search.class.php`
* Some function files have been moved.
* The changes:
* The deprecation function handler `deprecated.php` has been moved to the `/autodescription/inc/functions/` folder, from the `/autodescription/inc/deprecated/` folder.
* This cleans up the folders and some code.
/
* TODO Not all classes are now always available. Unless methods of such are called or required.
* This massively improves performance and reduces memory usage.
* This completely changes the architecture of the plugin.
* This is handled through autoloading, interfaces and magic methods.
* Classes affected:
/
* Debug
* TODO AdminPages
* TODO Admin-Init
* TODO Deprecated
* TODO Termdata?
* TODO Postdata?
* TODO Inpost?
* TODO Compat?
* How this is handled:
* All publicly accessible (with public visibility, without "@access private" documentation) are set in [interfaces](http://php.net/manual/en/language.oop5.interfaces.php).
* These interfaces are autoloaded TODO (or automatically loaded?).
* When an interface method is accessed, it will autoload the required class and the method will propagate to default behavior.
* In general, this should improve performance and reduce plugin resource usage.
* This is also known as the Singleton approach, while maintaining the promised `the_seo_framework()` way of object interaction.
* These changes shouldn't affect current code. If anything goes wrong, a "_doing_it_wrong()" notice is output. Thanks to magic methods.
/
* Class `The_SEO_Framework\Load` is now final, and can't be extended upon anymore.
* The `license.txt` file has been updated to improve readability. The contents have not been changed.
* TODO The `title_seperator` option has been changed and updated to `title_separator`. Note the typo. // TODO Is this really needed? Perfection can take its toll.
* Method `the_seo_framework()->post_status()`'s third parameter was unused. It's now used to echo (true) or return (false) the value, default return (false).
* Method `the_seo_framework()->no_more_genesis_seo()` has been renamed to `disable_genesis_seo`, without deprecation as it was marked private.
* Method `the_seo_framework()->page_inpost_box()` has been renamed to `singular_inpost_box`, without deprecation as it was marked private.
* Method `the_seo_framework()->custom_field_redirect()` no longer checks for admin or front-end page status.
* File `query.class.php` now falls under GPLv3 instead of GPLv2+.
* Method `the_seo_framework()->call_function()` is now marked private. It's written and used as an internal handler for filters.
* Method `the_seo_framework()->generate_excerpt()` now has its third parameter (`$max_char_length`) default value increased by 1. From 154 to 155.
* Method `the_seo_framework()->robots_txt()` has been moved to class `Init` from `Sitemaps`.
* Method `the_seo_framework()->robots_txt()` is now called on action `init`, it was 'plugins_loaded'.
* Method `the_seo_framework()->get_custom_field()` has been moved to class `Post_Data` from `Core`.
* Method `the_seo_framework()->adjust_search_filter()` has been moved to class `Init` from `Search`.
* Method `the_seo_framework()->build_singular_relative_url()` now continues to run if an empty Post ID has been suplied.
* Method `the_seo_framework()->generate_the_description()` now always trims the output.
* **Improved:**
/
* Reduced sitemap's generation memory usage.
* This means now 1200 posts, pages and custom post types can be generated without concern.
* This is 3600 posts in total.
* This means the previous sitemap transient has been invalidated. WordPress will clean this up automatically.
* Method `the_seo_framework()->call_function()` now passes objects, so you can use `$this` in the called function.
* Class overloading magic methods (`__wakeup()`, `__call()`, `__get()`, `__set()`) are now only initiated once and can't be reinitated or overloaded.
* TODO The old option update handler has been moved into the new 2.7.0 update handler.
* This prevents duplicated and constant option update checks.
/
* TODO All admin actions have been moved into an admin action handler.
* This massively reduces the plugin memory heap size of this plugin on the front-end.
* This changes the admin `init` (not `admin_init`) action initialization from priority `0` to priority `1`.
/
* TODO consider using priority -1 rather than affecting multiple switches.
/
* TODO All front-end actions have been moved into a front-end action handler.
* This massively reduces the plugin memory heap size of this plugin on the back-end.
* The debug handlers no longer checks for function `__`, as it should already be present when The SEO Framework has been loaded.
* The inpost metabox has been moved into a view file.
* This reduces memory usage on non-post edit pages.
* The taxonomy and terms options output has been moved into a view file.
* This reduces memory usage on non-term edit pages.
* Method `get_latest_post_id()` now uses WP_Query instead of a direct database call.
* WordPress' `is_ssl()` isn't cached. So now it has a cached counterpart: `the_seo_framework()->is_ssl()`.
* The excluded post type filter no longer tries to match an exact value; saving some processing power generating the query.
* Added multiple checks in the Breadcrumb generation code to prevent empty breadcrumb output.
* **Fixed:**
/
* Leftover CSS prefix name `seoframework-content-no-js` should've been `tsf-content-no-js`.
* Method `the_seo_framework()->call_function()` now doesn't result in a fatal error anymore if the method of an object doesn't exist in conjunction with when the class is supplied as an object instead of string.
* **Deprecated:**
* Method `the_seo_framework()->search_filter()`. It's a very slow function as it uses `get_excluded_search_ids`. There's no replacement.
* Method `the_seo_framework()->get_excluded_search_ids()`. It's a very slow function because it queries all posts. There's no replacement.
* **Removed:**
* Memory profiling output in the HTML code when `THE_SEO_FRAMEWORK_DEBUG` is defined as true.
* **Other:**
* Cleaned up code.
* **Filter notes:**
* **Added:**
* `(array) the_seo_framework_ld_json_breadcrumb_terms`. Used to filter the found terms.
* `(array) the_seo_framework_breadcrumb_post_sorting_callback`. Used to apply your own sorting function for terms.
* `(bool) the_seo_framework_general_metabox`. Used to enable/disable the General Settings metabox.
* `(array) the_seo_framework_general_settings_tabs`. Used to alter or add general settings tabs.
* `(array) the_seo_framework_canonical_scheme_types`. Used to remove canonical URL setting options.
* **Action notes:**
* **Added:**
* `the_seo_framework_general_metabox_before` runs before the General metabox output.
* `the_seo_framework_general_metabox_after` runs after the General metabox output.
= Full changelog =
**The full changelog can be found [here](http://theseoframework.com/?cat=3).**
== Upgrade Notice ==
= 2.7.0 =
This update is required for the upcoming Extension Manager plugin and includes many improvements.
= 2.6.4 =
Highly recommended update that fixes various query checks and caches.
= 2.6.3 =
This update resolves an issue with the Home Page (blog) Title and Description output.
= 2.6.2 =
This update resolves an issue with the WooCommerce Shop Page Canonical URL. Installing this update is therefore highly recommended.
== Other Notes ==
= Filters =
= Add any of the filters to your theme's functions.php or a plugin to change this plugin's output. =
Learn about them here: [The SEO Framework filters](http://theseoframework.com/docs/api/filters/)
= Constants =
= Overwrite any of these constants in your theme's functions.php or a plugin to change this plugin's output by simply defining the constants. =
View them here: [The SEO Framework constants](http://theseoframework.com/docs/api/constants/)
= Actions =
= Use any of these actions to add your own output. =
They are found here: [The SEO Framework actions](http://theseoframework.com/docs/api/actions/)
= Settings API =
= Add settings to and interact with The SEO Framework. =
Read how to here: [The SEO Framework Settings API](http://theseoframework.com/docs/api/settings/)
= Beta Version =
= Want to test the latest version before it's released? =
If there's a beta, it will be available [on Github](https://github.com/sybrew/the-seo-framework). Please note that changes there might not reflect the final outcome of the full version release. Use at own risk.