├── .github └── ISSUE_TEMPLATE │ ├── bug-reports.md │ └── feature-requests.md ├── README.md ├── admin └── class-so-clean-up-wp-seo-admin-api.php ├── assets ├── banner-1544x500.jpg └── banner-772x250.jpg ├── css └── admin.css ├── images └── pieterbos.jpeg ├── includes ├── class-so-clean-up-wp-seo-settings.php ├── class-so-clean-up-wp-seo.php └── remove-class.php ├── index.php ├── languages └── so-clean-up-wp-seo.pot ├── readme.txt ├── so-clean-up-wp-seo.php └── uninstall.php /.github/ISSUE_TEMPLATE/bug-reports.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: bug-reports 3 | about: Template to be used to file bug reports 4 | 5 | --- 6 | 7 | 12 | 13 | ## Expected behavior 14 | 17 | 18 | ## Current behavior 19 | 22 | 23 | ## Possible solution 24 | 28 | 29 | ## Steps to reproduce (for bugs) 30 | 34 | 1. 35 | 2. 36 | 3. 37 | 4. 38 | 39 | ## Context 40 | 46 | 47 | ## Screenshots 48 | 51 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-requests.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: feature requests 3 | about: Template to be used for feature requests 4 | 5 | --- 6 | 7 | 10 | 11 | ## Expected behavior 12 | 15 | 16 | ## Current behavior 17 | 20 | 21 | ## Possible way to add this 22 | 26 | 27 | ## Screenshots 28 | 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Hide SEO Bloat 2 | 3 | ###### Last updated on December 17, 2024 4 | ###### Development version 4.0.2 5 | ###### requires at least WordPress 4.9 6 | ###### tested up to WordPress 6.4 7 | ###### Author: [Pieter Bos](https://github.com/senlin) 8 | ###### Contributor: [Andy Fragen](https://github.com/afragen) 9 | 10 | As I have less time to spend time on plugins, especially one where it is a constant cat and mouse game, I have decided to pull the plug (pun intended) on this one, which costs me the most time of all plugins that I have under my name. 11 | 12 | Obviously the recent actions of Matt Mullenweg [example](https://wptavern.com/wordpress-org-login-introduces-mandatory-pineapple-pizza-checkbox) do not help to keep all my eggs in one basket and I have already started to venture out to other platforms. 13 | 14 | ## Description 15 | 16 | Free addon for the Yoast SEO plugin to hide the bloat it adds to your WordPress backend. See [changelog](https://wordpress.org/plugins/so-clean-up-wp-seo/#developers) for what's new in this release. 17 | 18 | Hides (sidebar) ads and premium version buttons of Yoast SEO from their settings pages and your website's dashboard (and frontend). 19 | 20 |
21 | 22 | The first version of the Hide SEO Bloat plugin was released in April 2015 and ever since team Yoast and I have been playing a game of cat and mouse. 23 | 24 | Since version 20.0 of Yoast SEO however, the Settings page has received a complete overhaul, which made the Hide SEO Bloat plugin almost obsolete! 25 | 26 | Things have become much, much more trickier to remove/hide now and some things simply can no longer be hidden (believe me, I have tried). 27 | 28 | Why are there still people using Yoast SEO one might ask? There are so many great alternatives that come without screaming ads and hiding features behind a paywall! 29 | 30 | And the only reason that I have to keep Yoast SEO installed (on a sandbox that is) is because of the mere 10K installs where Hide SEO Bloat is running. Compare that with my popular [Classic Editor + plugin](https://wordpress.org/plugins/classic-editor-addon/), which has more than 30,000 active installs! 31 | 32 | For everyone to become much more productive and happier, my proposal therefore is to switch to any of the other SEO plugins, such as SEOPress, The SEO Framework, Rankmath, or any other one out there! Did you know that most SEO plugins come with easy one-click migration tools? 33 | 34 |
35 | 36 | If you like the Hide SEO Bloat plugin, please consider leaving a [review](https://wordpress.org/support/view/plugin-reviews/so-clean-up-wp-seo?rate=5#postform). You can also help a great deal by [translating the plugin](https://translate.wordpress.org/projects/wp-plugins/so-clean-up-wp-seo) into your own language. 37 | Alternatively you are welcome to make a [donation](https://so-wp.com/donations). Thanks! 38 | 39 | ## Frequently Asked Questions 40 | 41 | ### Where is the settings page? 42 | 43 | The link to the page has been added to the Yoast SEO menu and of course there is also a link to it from the Plugins page. 44 | 45 | ### Can I use Hide SEO Bloat on Multisite? 46 | 47 | Yes, you can. 48 | For version 2.4.0 [Andy Fragen](https://github.com/afragen) has refactored that part of the plugin to make it fully Multisite compatible. The Settings screen only shows in Network Admin as we don't think it makes sense that individual sites override the Network Settings. 49 | 50 | ### The name of the plugin is confusing, it hides bloat of which SEO plugin? 51 | 52 | Yes, you are right, the name is a bit vague (see Changelog v1.8.0). On the other hand there is only one SEO plugin that adds a lot of bloat to the WordPress Dashboard and that is the Yoast SEO plugin. 53 | 54 | ### The plugin doesn't do anything! 55 | 56 | Do you have the Yoast SEO plugin installed? It hides the bloat from that plugin only. 57 | If you have and the plugin still doesn't do anything, then please open a [support ticket](https://github.com/senlin/so-clean-up-wp-seo/issues). 58 | 59 | ### With a settings page comes additional entries in the database; what happens on uninstall? 60 | 61 | Great question! 62 | Indeed the Hide SEO Bloat plugin writes its settings to the database. The included `uninstall.php` file removes all the plugin-related entries from the database once you remove the plugin via the WordPress Plugins page (not on deactivation). 63 | 64 | ### I have an issue with this plugin, where can I get support? 65 | 66 | Please open an issue here on [Github](https://github.com/senlin/so-clean-up-wp-seo/issues) 67 | 68 | ## Contributions 69 | 70 | I welcome your contributions very much! PR's will be considered and of course bug reports and feature requests can also be seen as contributions! 71 | **If you're interested in becoming involved, please [let me know](https://so-wp.com/contact) or simply send a PR with your proposed improvement.** 72 | 73 | ## License 74 | 75 | * License: GNU Version 3 or Any Later Version 76 | * License URI: http://www.gnu.org/licenses/gpl-3.0.html 77 | 78 | ## Donations 79 | 80 | * Donate link: https://so-wp.com/donations 81 | 82 | ## Connect with us through 83 | 84 | [BHI Localization for Websites](https://www.bhi-localization.com) 85 | 86 | [SO WP Plugins](https://so-wp.com/) 87 | 88 | [Github](https://github.com/senlin) 89 | 90 | [LinkedIn](https://www.linkedin.com/in/pieterbos83) 91 | 92 | [WordPress](https://profiles.wordpress.org/senlin/) 93 | 94 | 95 | ## Changelog 96 | 97 | ### 4.0.2 98 | 99 | * release date January 15, 2024 100 | * remove rule that hides crawl optimisation menu in Yoast SEO settings thanks for reporting [@melcarthus](https://wordpress.org/support/topic/non-bloatware-link-removed-by-plugin/) 101 | * hide premium Redirects submenu from left admin bar, which had become visible again after Yoast added the Academy submenu 102 | 103 | ### 4.0.1 104 | 105 | * release date July 30, 2023 106 | * Fix PHP 8.2 deprecation notices ([PR #106](https://github.com/senlin/so-clean-up-wp-seo/pull/106)) (thanks Brandon) 107 | * compatible up to WP 6.3 108 | 109 | ### 4.0.0 110 | 111 | * release date February 10, 2023 112 | * redo many styles that hide features, due to dashboard makeover release of Yoast SEO version 20.0 113 | * merge many settings (from 23 to 14) 114 | * new sections on the settings page with assistance of [ChatGPT](https://chat.openai.com/) 115 | * simplify register_settings() function with assistance of [ChatGPT](https://chat.openai.com/) 116 | 117 | ### 3.14.13 118 | 119 | * release date January 31, 2023 120 | * fix issue where Hide SEO Bloat link to settings page was made invisible due to Yoast SEO switching around menu items in admin sidebar 121 | * hide Premium SEO Analysis button on Publish/Update Post metabox 122 | 123 | ### 3.14.12 124 | 125 | * release date December 2, 2022 126 | * hide "Unlock with Premium" button and options in Yoast dashboard (Features tab) 127 | * hide "Social Settings" box and "Unlock with Premium" button in Yoast dashboard (Search Appearance, Content types and Taxonomies tabs) 128 | 129 | ### 3.14.11 130 | 131 | * release date November 7, 2022 132 | * slight correction on hiding the submenu items of 3.14.10 133 | 134 | ### 3.14.10 135 | 136 | * release date November 7, 2022 137 | * hide ["Redirects"-submenu](https://github.com/senlin/so-clean-up-wp-seo/pull/103) and hide ["Crawl Settings"-tab](https://github.com/senlin/so-clean-up-wp-seo/pull/104), both courtesy of [Chris Johnson](https://github.com/workeffortwaste) 138 | 139 | ### 3.14.9 140 | 141 | * release date November 7, 2022 142 | * hide "Connect Yoast SEO with Zapier"-text in post publish sidebar 143 | * remove link to blog from plugin's settings page 144 | 145 | ### 3.14.8 146 | 147 | * release date August 16, 2021 148 | * include hiding "Workouts" submenu (https://github.com/senlin/so-clean-up-wp-seo/issues/102) 149 | * adjust admin CSS to not affect other plugins (https://wordpress.org/support/topic/css-affect-other-plugin/) 150 | 151 | ### 3.14.7 152 | 153 | * release date February 23, 2021 154 | * use version_compare for wpseo_debug_markers() filter; see [this comment](https://github.com/senlin/so-clean-up-wp-seo/commit/441613bd83ee59882cfff4859b0b2c4f8fdb209a#r47454525) 155 | 156 | ### 3.14.6 157 | 158 | * release date February 4, 2021 159 | * add condition to use new-ish `wpseo_debug_markers` filter to remove frontend comments in a backward compatible way; fixes [issue #95](https://github.com/senlin/so-clean-up-wp-seo/issues/95) 160 | 161 | ### 3.14.5 162 | 163 | * release date February 3, 2021 164 | * fix React hide tabs conflict ([issue #94](https://github.com/senlin/so-clean-up-wp-seo/issues/94)) 165 | 166 | ### 3.14.4 167 | 168 | * release date December 18, 2020 169 | * hides ad for premium version on post type analysis dropdown 170 | * delete function added in 3.13.0 that removes advanced accordion menu at bottom of SEO metabox for post- and custom post types, since it no longer functions properly ([issue #67](https://github.com/senlin/so-clean-up-wp-seo/issues/67)) 171 | 172 | ### 3.14.3 173 | 174 | * release date August 11, 2020 175 | * fixed bug that occurred with some themes due to introduction of `is_object()` in WP 5.5. Thanks for the patch @andreiglingeanu! 176 | 177 | 178 | ### 3.14.2 179 | 180 | * release date August 1, 2020 181 | * improved hiding notice (added to v3.14.0) that shows after content deletion as it also shows after deleting taxonomies (thanks @KoolPal) 182 | 183 | ### 3.14.1 184 | 185 | * release date August 1, 2020 186 | * hide premium upsell ad from social tab of Yoast SEO Metabox (thanks @allanrehhoff) 187 | * tested up to WP 5.5 188 | 189 | ### 3.14.0 190 | 191 | * release date May 20, 2020 192 | * hide new notice that shows after deleting content (post, page, product, other CPT), address issue #83, thanks [@Kagan Akbas](https://github.com/remaindeer) 193 | 194 | ### 3.13.6 195 | 196 | * release date March 7, 2019 197 | * previous hide readability features setting (our v3.9.0) was blocking the icons of SEO and Readability tab of Yoast metabox; now not anymore. Thanks for reporting [@koolpad](https://wordpress.org/support/topic/non-critical-seo-readability-icons-disappear/) 198 | * cleanup 199 | 200 | ### 3.13.5 201 | 202 | * release date February 25, 2020 203 | * fix issue #81 where updates from other plugins are hidden in admin sidebar 204 | 205 | ### 3.13.4 206 | 207 | * release date February 5, 2020 208 | * hide additional keyphrase "option" from metabox as it is ad for premium too 209 | 210 | 211 | ### 3.13.3 212 | 213 | * release date January 9, 2020 214 | * update help center classes 215 | * hide help beacon (issue #77 - thanks for the fix [@allanrehhoff](https://github.com/allanrehhoff)) 216 | 217 | ### 3.13.2 218 | 219 | * release date November 19, 2019 220 | * put CSS rules back to fix bug when using quick edit function (issue #75) 221 | * adjust CSS to fix bug (issue #76 - thanks for the fix [@allanrehhoff](https://github.com/allanrehhoff)) 222 | 223 | ### 3.13.1 224 | 225 | * release date October 1, 2019 226 | * adjust the hiding of the Problems box (General settings Yoast) which received new class name 227 | 228 | ### 3.13.0 229 | 230 | * release date August 29, 2019 231 | * remove notice on permalinks page that warns the user of the implications of changing them, fixes [issue #58](https://github.com/senlin/so-clean-up-wp-seo/issues/58) 232 | * recode hiding of the admin columns into actually removing them, fixes [issue #65](https://github.com/senlin/so-clean-up-wp-seo/issues/65) 233 | * recode hiding of the seo score/readability score filters into actually removing them, fixes [issue #65](https://github.com/senlin/so-clean-up-wp-seo/issues/65) 234 | * remove advanced accordion menu at bottom of SEO metabox for post- and custom post types, fixes [issue #67](https://github.com/senlin/so-clean-up-wp-seo/issues/67) 235 | 236 | Credits of all the above improvements go to [@Dibbyo456](https://github.com/Dibbyo456); many thanks Harry! 237 | 238 | 239 | ### 3.12.0 240 | 241 | * release date August 17, 2019 242 | * remove Search Console submenu, redundant since Google has discontinued its Crawl Errors API; thanks [@Dibbyo456](https://github.com/senlin/so-clean-up-wp-seo/issues/69) 243 | 244 | ### 3.11.1 245 | 246 | * release date July 27, 2019 247 | * refactor remove HTML comments from source code (frontend) with thanks to [Robert Went](https://www.robertwent.com/blog/remove-yoast-html-comments-in-version-11-0/) 248 | * hide upsell ad for local seo; addresses [issue #57](https://github.com/senlin/so-clean-up-wp-seo/issues/57) 249 | 250 | ### 3.11.0 251 | 252 | * release date June 17, 2019 253 | * remove HTML comments from source code (frontend) 254 | 255 | ### 3.10.1 256 | 257 | * release date April 27, 2019 258 | * hide outgoing internal links columns on edit Posts/Pages/CPTs screens; addresses [issue #55](https://github.com/senlin/so-clean-up-wp-seo/issues/55) 259 | 260 | ### 3.10.0 261 | 262 | * release date April 22, 2019 263 | * add function that removes course sub menu, addresses [issue #54](https://github.com/senlin/so-clean-up-wp-seo/issues/54); thanks [Igor](https://github.com/artifex404) 264 | * hide SEO Scores dropdown filters as well as Readability Scores filter dropdown from edit Posts/Pages/CPTs; address [issue #43](https://github.com/senlin/so-clean-up-wp-seo/issues/43) 265 | * hide content/keyword score from Publish/Update Metabox on Edit Post/Page/CPT screen 266 | 267 | ### 3.9.2 268 | 269 | * release date November 19, 2018 270 | * fix issue where Go Premium metabox option makes snippet preview box blank (https://wordpress.org/support/topic/go-premium-metabox-option-makes-snippet-preview-box-blank/); thanks for reporting @pxlar8 271 | 272 | ### 3.9.1 273 | 274 | * release date October 29, 2018 275 | * fix hiding "Add related keyphrase" in metabox as it only serves as an add for premium version 276 | 277 | ### 3.9.0 278 | 279 | * release date October 28, 2018 280 | * hide new readability "features" of Post/Page metabox incl. "Add related keyphrase" menu as it is nothing more than an ad for premium version 281 | * update hide Go Premium rules 282 | * compatible with ClassicPress 1.0.0 283 | 284 | ### 3.8.1 285 | 286 | * release date September 25, 2018 287 | * refactor options to ensure that additional settings will have default values. Fixes issue #44 288 | 289 | ### 3.8.0 290 | 291 | * release date September 20, 2018 292 | * add option to hide the Premium ad that shows after a Post, Page or Taxonomy is deleted (see issue #44) 293 | 294 | ### 3.7.0 295 | 296 | * release date September 2, 2018 297 | * add option to hide the check Configuration wizard box that shows on top of most admin screens 298 | * removed option to hide Post/Page content analysis incl. content/keyword score, because it can now be turned off in the Features tab of the General Settings of Yoast SEO 299 | * removed option to hide "add keyword box" (which is an ad for Premium), because it can now be turned off from within Yoast SEO Features tab 300 | * make flow of Setting page a little more clear 301 | 302 | ### 3.6.0 303 | 304 | * release date June 11, 2018 305 | * address issues [#40](https://github.com/senlin/so-clean-up-wp-seo/issues/40) 306 | * NEW: remove primary category feature 307 | * NEW: hide SEO settings on individual profile page 308 | * remove option to hide red star for Premium submenu as there doesn't seem to be a red star anymore 309 | * NEW: hide Premium submenu in its entirety 310 | * NEW: hide "Go Premium" metabox on edit Post/Page screens 311 | * update hide help center ads 312 | 313 | ### 3.5.0 314 | 315 | * release date January 2, 2018 316 | * fix issue #37 317 | * remove Github Branch in header info 318 | * change link to personal LI profile 319 | 320 | ### 3.4.1 321 | 322 | * release date October 25, 2017 323 | * add `!important` to CSS rule to enforce it 324 | 325 | ### 3.4.0 326 | 327 | * release date October 25, 2017 328 | * change hiding of sidebar ads from `visibility: hidden` to `display: none` to avoid conflict with screen width 329 | 330 | ### 3.3.0 331 | 332 | * release date October 10, 2017 333 | * adjust the settings of Help Center that received overhaul in Yoast SEO 5.6 334 | * updated links due to renewal of SO WP website 335 | 336 | ### 3.2.1 337 | 338 | * release date September 25, 2017 339 | * modified issue counter of sidebar which was showing orange background again 340 | 341 | ### 3.2.0 342 | 343 | * release date August 25, 2017 344 | * hide Upsell Notice in social tab of Yoast Post/Page metabox 345 | * styling adjustments settings page 346 | 347 | ### 3.1.0 348 | 349 | * release date July 25, 2017 350 | * hide the Premium Upsell Admin Block that was introduced in version 5.1 (of Yoast SEO) and shows in the entire Yoast SEO backend 351 | 352 | ### 3.0.0 353 | 354 | * release date April 6, 2017 355 | * IMPORTANT: as this is a major release, most likely you will need to save the settings again; apologies for any inconvenience. 356 | * another massive rewrite by [Andy Fragen](https://github.com/afragen); big thank you Andy who now also has become an _official_ contributor to the plugin! 357 | * rewrite of settings to single array, making it the same for single site and multisite installs 358 | * use better capabilities for both single site and mulitsite 359 | * update for WordPress Coding Standards (DocBlock fixes) 360 | * fix uninstall to use `$wpdb->prepare()`, necessary for potential security issues 361 | * add remove admin bar menu option back (removed since v2.5.0) to make it easier for Superadmin in Multisite setup to remove it globally 362 | * set defaults from defaults listed in `get_defaults()` 363 | * change radio to checkbox_multi 364 | * fix for errors on update 365 | * fix checkbox_multi options to use in_array 366 | * fix need to check empty not in_array 367 | * add plugin's location on Github to make plugin suitable for use with Github Updater by @afragen 368 | * update settings page text 369 | * update admin styling 370 | * update screenshot-1 371 | * update readme.txt and README.MD 372 | 373 | ### 2.6.1 374 | 375 | * release date 2017.3.31 376 | * revert admin columns settings that were changed in v2.6.0 (last week): checkboxes return to select multiple options, title, meta description and focus keyword can be selected again for "removal" and additional checkbox for readability column 377 | * remove [forgotten about-nag setting](https://wordpress.org/support/topic/i-have-updated-to-2-6-0-but-still-see-setting-for-about-nag/) 378 | * update readme.txt 379 | 380 | ### 2.6.0 381 | 382 | * release date 2017.3.24 383 | * add option to hide Readability column on Posts/Pages screens 384 | * update hide email support (see 2.5.5), all tabs have a different class, so need more CSS rules to hide them 385 | * update robots nag 386 | * reintroduce the setting to hide the tagline nag, which was removed in 2.1.1 387 | * modify hide add keyword button in edit Post/Page screens to give remaining tab enough width to show entire text "Enter your focus keyword" 388 | * clarify text Content (Readability)/Keyword (SEO) Score 389 | * edit setting admin columns from 4 to 2 (SEO score and Readability score) and make it radio button option instead of checkboxes; thanks to [Curtis](https://github.com/soaro77) for [bringing it to our attention](https://github.com/senlin/so-clean-up-wp-seo/issues/23) 390 | * remove hide about nag as it no longer is a site-wide nag 391 | * update readme.txt 392 | 393 | ### 2.5.5 394 | 395 | * release date 2017.2.28 (triggered by release of Yoast SEO 4.4) 396 | * hide the email support of the help center as it is a premium-only feature and therefore an "ad in disguise" 397 | 398 | ### 2.5.4 399 | 400 | * release date 2016.12.22 (triggered by release of Yoast SEO 4.0) 401 | * fix: change robots nag hiding via settings instead of globally 402 | * improvement: content analysis - hide readability tab 403 | * improvement: upsell notice: hide entire notifications box 404 | * add FAQ 405 | 406 | ### 2.5.3 407 | 408 | * release date 2016.11.29 (triggered by release of Yoast SEO 3.9) 409 | * hide "Go Premium" text from adminbar dropdown 410 | * hide dismissed notices and warnings in Yoast SEO Dashboard 411 | * new setting: globally hide upsell notice in Yoast SEO Dashboard 412 | 413 | ### 2.5.2 414 | 415 | * release date 2016.10.11 (triggered by release of Yoast SEO 3.7) 416 | * once again hide red premium star, this time from the opposite side of the metabox on the Edit Post/Page screen 417 | 418 | ### 2.5.1 419 | 420 | * release date 2016.10.09 421 | * add rule to hide additional star tab of Yoast SEO metabox 422 | 423 | ### 2.5.0 (2016.10.06) 424 | 425 | * release date 2016.10.06 426 | * remove tour setting (redundant since v3.6 of Yoast SEO) 427 | * remove adminbar setting (redundant since v3.6 of Yoast SEO) 428 | * add new setting that hides the red star behind the "Go Premium" submenu that was added in v3.6 of Yoast SEO (it is probably necessary to save the settings page for this change to take effect). Thanks to Jake Jackson for reporting [this issue](https://github.com/senlin/so-clean-up-wp-seo/issues/19). 429 | 430 | ### 2.4.0 (2016.08.13) 431 | 432 | * release date 2016.08.13 433 | * with a BIG THANK YOU to [Andy Fragen](https://github.com/afragen) who made the plugin fully Multisite compatible and therewith we have been able to finally close [this issue](https://github.com/senlin/so-clean-up-wp-seo/issues/4). 434 | * Andy also cleaned up some misc spacing and refactored part of the code for it to work smoother. People interested can see the full [PR](https://github.com/senlin/so-clean-up-wp-seo/pull/16). 435 | * tested with WP version 4.6 436 | 437 | ### 2.3.0 (2016.06.20) 438 | 439 | * release date 2016.06.20 triggered by changes made with version 3.3 of the Yoast SEO plugin 440 | * hide coloured ball of content analysis also from metabox tab (edit Post/Page screens) 441 | * substitute hide wpseo-score traffic light (v1.7.4) with hide content and SEO score (Yoast SEO 3.3.0), thanks to [Andrea Balzarini](https://github.com/andrebalza) [issue 15](https://github.com/senlin/so-clean-up-wp-seo/pull/15), because "a SEO plugin telling you that your content is poor while saving a new post, is not just nagging, but offensive too" 442 | * hide yoast-issue-counter "enhancement" introduced in Yoast SEO 3.3 from adminbar and sidebar 443 | * move minimum WordPress version up to 4.3 444 | 445 | ### 2.2.0 (2016.04.21) 446 | 447 | * release date 2016.04.21 triggered by changes made with version 3.2 of the Yoast SEO plugin 448 | * hide the ad for the premium version in the help center or hide the whole help center (added to v3.2 of Yoast SEO plugin) 449 | * tested up to WP 4.5 450 | 451 | ### 2.1.0 (2016.03.02) 452 | 453 | * simplify the CSS rules and add the rule to hide the seo-score column on taxonomies (added to v3.1.0 of Yoast SEO plugin) 454 | * remove option to hide tagline nag (temporarily disabled in v3.1 of Yoast SEO plugin) 455 | * partly remove option to hide robots nag (partly temporarily disabled in v3.1 of Yoast SEO plugin) 456 | * remove option to hide GSC nag (temporarily disabled in v3.1 of Yoast SEO plugin) 457 | * remove option to hide recalculate nag (temporarily disabled in v3.1 of Yoast SEO plugin) 458 | * adjust readme files 459 | 460 | ### 2.0.2 (2016.02.26) 461 | 462 | * add translator details Dutch language file 463 | * update readme files (text and tags) 464 | * PR [#11](https://github.com/senlin/so-clean-up-wp-seo/pull/11) add empty array as default for `get_option cuws_hide_admin_columns` to avoid warnings form subsequent `in_array` checks - credits [Ronny Myhre Njaastad](https://github.com/ronnymn) 465 | * remove whitespace 466 | 467 | ### 2.0.1 (2016.02.05) 468 | 469 | * include text-domain in plugin header which I forgot to do in the 2.0.0 release; apologies 470 | 471 | ### 2.0.0 (2016.02.04) 472 | 473 | * complete rewrite of the plugin 474 | * new Settings page to fine tune what is hidden/removed to your liking 475 | * new screenshots 476 | * tested up to WP 4.4.2 477 | 478 | ### 1.8.0 (2016.01.28) 479 | 480 | * name change to avoid "Yoast" trademark violation 481 | 482 | ### 1.7.5 (2015.12.26) 483 | 484 | * remove SEO score algorithm recalculate nag 485 | 486 | ### 1.7.4 (2015.11.19) 487 | 488 | * remove wpseo-score traffic light next to Move to trash on Edit Post/Page screen 489 | 490 | ### 1.7.3 (2015.11.19) 491 | 492 | * version 3.0 of Yoast SEO has introduced a cool new UI for the Edit screens. This also shows a + icon and when clicking that, you'll have a big fat ad in your face. This is a premium feature and the only function of the + icon therefore is to irritate you with an ad. We have therefore made it invisible. 493 | * tested up to WP 4.4 494 | * adjust readme files 495 | 496 | ### 1.7.2 (2015.09.30) 497 | 498 | * [BUG FIX] fix bug that slipped in (forgot to remove) 1.7.1 release, thanks for the [report](https://wordpress.org/support/topic/171-update-problem) [@stansbury](https://wordpress.org/support/profile/stansbury) 499 | 500 | ### 1.7.1 (2015.09.30) 501 | 502 | * remove function that checks whether Yoast SEO has been installed; reason is to simplify things a bit. 503 | * adjust readme files 504 | 505 | ### 1.7 (2015.09.16) 506 | 507 | * remove yst_opengraph_image_warning nag that was added to Yoast SEO 2.1, but we never noticed it before. In the changelog it has been described as "validation error", which of course is nonsense, because the world is larger than social media. The nag manifests itself by placing thick red borders around your Featured Image as well as a red-bordered warning message when your Featured Image is smaller than 200x200 pixels. 508 | * change function name 509 | * add screenshot of before/after yst_opengraph_image_warning nag 510 | * adjust readme files 511 | 512 | ### 1.6 (2015.08.07) 513 | 514 | * remove GSC (Google Search Console) nag that was introduced in Yoast SEO 2.3.3 515 | 516 | ### 1.5 (2015.07.22) 517 | 518 | * remove overview dashboard widget that was introduced in Yoast SEO 2.3 519 | * change plugin name to reflect the name-change of the plugin it cleans up for ([WordPress SEO became Yoast SEO](https://yoast.com/yoast-seo-2-3/)) 520 | 521 | ### 1.4 (2015.06.17) 522 | 523 | * remove updated nag (introduced with Yoast SEO version 2.2.1) 524 | * remove previous so_cuws_remove_about_tour() function that has become redundant from Yoast SEO 2.2.1 onwards; replaced with with so_cuws_ignore_tour() function 525 | 526 | ### 1.3.2.1 (2015.05.15) 527 | 528 | * Clean up white space 529 | 530 | ### 1.3.2 (2015.05.14) 531 | 532 | * Fix issue that WP SEO columns were still showing on Edit Posts/Pages pages 533 | 534 | ### 1.3.1 (2015.05.01) 535 | 536 | * Added styling to remove Tour Intro and button to start tour 537 | * Added screenshots 538 | * Removed redundant dashboard widget function 539 | 540 | ### 1.3 (2015.04.30) 541 | 542 | * Added function to remove Yoast SEO Settings from Admin Bar, inspired by comment of [Lee Rickler](https://profiles.wordpress.org/lee-rickler/) in discussion on Google+ (no longer available) 543 | * put code actions/filters in order 544 | 545 | ### 1.2 (2015.04.30) 546 | 547 | * Release on wordpress.org Repo 548 | 549 | ### 1.1 (2015.04.27) 550 | 551 | * Release version 552 | * banner image (in assets folder) by [Leigh Kendell](https://unsplash.com/leighkendell) 553 | 554 | ### 1.0 (2015.04.24) 555 | 556 | * Initial plugin [code snippet](https://github.com/senlin/Code-Snippets/blob/0ae24e6fc069efe26e52007c05c7375012ee688a/Functions/Admin-Dashboard/remove-yoast-crap.php) 557 | 558 | ## Update Notice 559 | 560 | ### 2.6.0 561 | 562 | * As some settings have changed, it is probably necessary to save the settings page for these changes to take effect 563 | 564 | ### 2.5.0 565 | 566 | * To hide the red star behind the new "Go Premium" submenu, it is probably necessary to save the settings page for this change to take effect 567 | 568 | ### 2.0.0 569 | 570 | * Version 2.0.0 is a complete rewrite of the SO Hide SEO Bloat plugin. Please visit the Settings page after you have updated to this version, so you can fine tune what is hidden/removed. 571 | 572 | ### 1.8.0 573 | 574 | * name change to avoid "Yoast" trademark violation 575 | 576 | ### 1.5 577 | 578 | * We have changed the name of our plugin to reflect the name change of the plugin it cleans up after 579 | 580 | ### 1.4 581 | 582 | * Version 2.2.1 of the Yoast SEO plugin changes a lot of things around. The automatic redirect to the plugin's About page is no longer, so we have removed the function that disables it. The new version introduced an updated nag that doesn't let itself be dismissed easily, so we have simply hidden it altogether. The super irritating balloon to follow the intro tour was back again too, we have countered that with a functiobn that sets the user_meta of that intro tour to true, which means "seen". 583 | -------------------------------------------------------------------------------- /admin/class-so-clean-up-wp-seo-admin-api.php: -------------------------------------------------------------------------------- 1 | _token . '_settings' ); 28 | 29 | // Get field info 30 | //$field = isset( $data['field'] ) ? $data['field'] : $data; 31 | if ( isset( $data['field'] ) ) { 32 | $field = $data['field']; 33 | } else { 34 | $field = $data; 35 | } 36 | 37 | // Check for prefix on option name 38 | //$prefix = isset( $data['prefix'] ) ? $data['prefix'] : ''; 39 | if ( isset( $data['prefix'] ) ) { 40 | $prefix = $data['prefix']; 41 | } else { 42 | $prefix = ''; 43 | } 44 | 45 | // Get saved data 46 | $data = ''; 47 | $option_name = $field['id']; 48 | if ( $post ) { 49 | // Get saved field data 50 | $option = get_post_meta( $post->ID, $field['id'], true ); 51 | 52 | // Get data to display in field 53 | if ( isset( $option ) ) { 54 | $data = $option; 55 | } 56 | } else { 57 | // Get saved option 58 | $option = $options[ $option_name ]; 59 | 60 | // Get data to display in field 61 | if ( isset( $option ) ) { 62 | $data = $option; 63 | } 64 | } 65 | 66 | // Show default data if no option saved and default is supplied 67 | if ( $data === false && isset( $field['default'] ) ) { 68 | $data = $field['default']; 69 | } elseif ( $data === false ) { 70 | $data = ''; 71 | } 72 | 73 | $html = ''; 74 | 75 | switch ( $field['type'] ) { 76 | 77 | case 'checkbox': 78 | $checked = ''; 79 | if ( $data && 'on' == $data ) { 80 | $checked = 'checked="checked"'; 81 | } 82 | $html .= '' . "\n"; 83 | break; 84 | 85 | case 'checkbox_multi': 86 | if ( empty( $data ) ) { 87 | $data = array(); 88 | } 89 | foreach ( $field['options'] as $k => $v ) { 90 | $checked = false; 91 | if ( in_array( $k, $data ) ) { 92 | $checked = true; 93 | } 94 | $html .= ' '; 95 | } 96 | break; 97 | 98 | case 'radio': 99 | foreach ( $field['options'] as $k => $v ) { 100 | $checked = false; 101 | if ( $k == $data ) { 102 | $checked = true; 103 | } 104 | $html .= ' '; 105 | } 106 | break; 107 | 108 | } 109 | 110 | switch ( $field['type'] ) { 111 | 112 | case 'checkbox_multi': 113 | case 'radio': 114 | $html .= '
' . $field['description'] . ''; 115 | break; 116 | 117 | default: 118 | if ( ! $post ) { 119 | $html .= '' . "\n"; 126 | } 127 | break; 128 | } 129 | 130 | if ( ! $echo ) { 131 | return $html; 132 | } 133 | 134 | echo $html; 135 | } 136 | 137 | } 138 | -------------------------------------------------------------------------------- /assets/banner-1544x500.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senlin/so-clean-up-wp-seo/7c0a090ab004d953f28bcdaade468fbc5df90fff/assets/banner-1544x500.jpg -------------------------------------------------------------------------------- /assets/banner-772x250.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senlin/so-clean-up-wp-seo/7c0a090ab004d953f28bcdaade468fbc5df90fff/assets/banner-772x250.jpg -------------------------------------------------------------------------------- /css/admin.css: -------------------------------------------------------------------------------- 1 | /** 2 | * All of the CSS for the admin-specific functionality is included in this file. 3 | * @since v2.0.0 4 | */ 5 | 6 | #cuws_settings.wrap > p, 7 | #cuws_settings.wrap > ol { 8 | font-size: 16px; 9 | } 10 | 11 | #cuws_settings.wrap .form-table tr { 12 | border-bottom: 1px solid rgba(66, 66, 66, 0.1); 13 | } 14 | #cuws_settings .form-table th { 15 | font-weight: 400; 16 | width: 300px; 17 | } 18 | #cuws_settings.wrap > form span.description { 19 | font-size: 14px; 20 | } 21 | .rate-this-plugin { 22 | color: #0074A2; 23 | font-style: italic; 24 | font-size: 16px; 25 | } 26 | .seo_page_cuws_settings .support, 27 | .seo_page_cuws_settings .translate { 28 | font-size: 16px; 29 | } 30 | .author.postbox { 31 | max-width: 500px; 32 | } 33 | .author.postbox .hndle { 34 | border-bottom: 1px solid #DDD; 35 | margin-bottom: 0; 36 | padding: 5px; 37 | } 38 | .author.postbox .inside { 39 | display: block; 40 | margin: 0; 41 | overflow: hidden; 42 | } 43 | .author.postbox .inside .top { 44 | min-height: 90px; 45 | } 46 | .author.postbox .inside > .top > .author-image { 47 | border: 1px solid #DFDFDF; 48 | float: left; 49 | margin-right: 10px; 50 | padding: 3px; 51 | } 52 | .author.postbox .inside > ul { 53 | clear: both; 54 | } 55 | .author.postbox .inside li { 56 | float: left; 57 | width: 50%; 58 | } 59 | -------------------------------------------------------------------------------- /images/pieterbos.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/senlin/so-clean-up-wp-seo/7c0a090ab004d953f28bcdaade468fbc5df90fff/images/pieterbos.jpeg -------------------------------------------------------------------------------- /includes/class-so-clean-up-wp-seo-settings.php: -------------------------------------------------------------------------------- 1 | parent = $parent; 52 | 53 | $this->base = 'cuws_'; 54 | 55 | $plugin_slug = plugin_basename( $this->parent->file ); 56 | 57 | // Initialise settings 58 | add_action( 'init', array( $this, 'init_settings' ), 11 ); 59 | 60 | // Register plugin settings 61 | add_action( 'admin_init', array( $this, 'register_settings' ) ); 62 | 63 | // Add settings page to menu 64 | //add_action( is_multisite() ? 'network_admin_menu' : 'admin_menu', array( $this, 'add_menu_item' ), 15 ); 65 | if ( is_multisite() ) { 66 | add_action( 'network_admin_menu', array( $this, 'add_menu_item' ), 15 ); 67 | } else { 68 | add_action( 'admin_menu', array( $this, 'add_menu_item' ), 15 ); 69 | } 70 | // Add settings link to plugins page 71 | //add_filter( is_multisite() ? 'network_admin_plugin_action_links_' . $plugin_slug : 'plugin_action_links_' . $plugin_slug, array( $this, 'add_settings_link' ) ); 72 | if ( is_multisite() ) { 73 | add_filter( 'network_admin_plugin_action_links_' . $plugin_slug, array( $this, 'add_settings_link' ) ); 74 | } else { 75 | add_filter( 'plugin_action_links_' . $plugin_slug, array( $this, 'add_settings_link' ) ); 76 | } 77 | 78 | // Save setting in Multisite 79 | add_action( 'network_admin_edit_' . $this->parent->_token . '_settings', array( 80 | $this, 81 | 'update_settings', 82 | ) ); 83 | 84 | } 85 | 86 | /** 87 | * Save settings when on single-site or multisite network admin. 88 | * 89 | * @access public 90 | * @since 2.x 91 | */ 92 | public function update_settings() { 93 | 94 | // suggestion by @afragen to try and fix [issue #37](https://github.com/senlin/so-clean-up-wp-seo/issues/37) 95 | if ( ! isset( $_POST['option_page'], $_POST['action'] ) ) { 96 | return; 97 | } 98 | 99 | $cuws = CUWS::instance(); 100 | $options_list = array_keys( $cuws->get_defaults() ); 101 | $multi_options = array( 102 | 'hide_admincolumns', 103 | 'hide_dashboard_problems_notifications', 104 | 'hide_helpcenter', 105 | ); 106 | 107 | if ( $this->parent->_token . '_settings' === $_POST['option_page'] && 108 | 'update' === $_POST['action'] 109 | ) { 110 | foreach ( $options_list as $option ) { 111 | if ( ! isset( $_POST[ $this->parent->_token . '_' . $option ] ) ) { 112 | $_POST[ $this->parent->_token . '_' . $option ] = null; 113 | if ( in_array( $option, $multi_options ) ) { 114 | $_POST[ $this->parent->_token . '_' . $option ] = array(); 115 | } 116 | } 117 | $options[ $option ] = $_POST[ $this->parent->_token . '_' . $option ]; 118 | } 119 | update_site_option( $this->parent->_token . '_settings', $options ); 120 | 121 | $location = add_query_arg( 122 | array( 'page' => $this->parent->_token . '_settings', ), 123 | network_admin_url( 'admin.php' ) 124 | ); 125 | wp_redirect( $location ); 126 | exit; 127 | } 128 | } 129 | 130 | /** 131 | * Initialise settings 132 | * 133 | * @return void 134 | * @since v2.0.0 135 | */ 136 | public function init_settings() { 137 | $this->settings = $this->settings_fields(); 138 | } 139 | 140 | /** 141 | * Add settings page to admin menu 142 | * 143 | * @return void 144 | * @since v2.0.0 145 | */ 146 | public function add_menu_item() { 147 | $capability = is_multisite() ? 'manage_network' : 'manage_options'; 148 | add_submenu_page( 149 | 'wpseo_dashboard', 150 | __( 'Hide SEO Bloat Settings', 'so-clean-up-wp-seo' ), 151 | __( 'Hide Bloat', 'so-clean-up-wp-seo' ), 152 | $capability, 153 | $this->parent->_token . '_settings', 154 | array( $this, 'settings_page' ) 155 | ); 156 | } 157 | 158 | /** 159 | * Add settings link to plugin list table 160 | * 161 | * @param array $links Existing links 162 | * 163 | * @return array Modified links 164 | * @since v2.0.0 165 | */ 166 | public function add_settings_link( $links ) { 167 | $settings_link = '' . __( 'Settings', 'so-clean-up-wp-seo' ) . ''; 168 | array_unshift( $links, $settings_link ); 169 | 170 | return $links; 171 | } 172 | 173 | /** 174 | * Build settings fields 175 | * 176 | * @return array Fields to be displayed on settings page 177 | * @since v2.0.0 178 | */ 179 | private function settings_fields() { 180 | $cuws = CUWS::instance(); 181 | $options = $cuws->get_defaults(); 182 | 183 | $settings['section_1'] = array( 184 | 'title' => __( 'Yoast SEO Settings pages', 'so-clean-up-wp-seo' ), 185 | //'description' => __( 'description' ), 186 | 'fields' => array( 187 | array( 188 | 'id' => 'hide_dashboard_problems_notifications', 189 | 'label' => __( 'General > Dashboard tab > Problems/Notifications boxes', 'so-clean-up-wp-seo' ), 190 | 'description' => '
' . __( 'Hide entire Problems/Notifications boxes from the Dashboard tab under General Settings.', 'so-clean-up-wp-seo' ), 191 | 'type' => 'checkbox_multi', 192 | 'options' => array( 193 | 'problems' => __( 'Hide entire Problems box', 'so-clean-up-wp-seo' ), 194 | 'notifications' => __( 'Hide entire Notifications box', 'so-clean-up-wp-seo' ), 195 | ), 196 | 'default' => $options['hide_dashboard_problems_notifications'], 197 | ), 198 | array( 199 | 'id' => 'hide_ads', 200 | 'label' => __( 'Settings page > Yoast Premium', 'so-clean-up-wp-seo' ), 201 | 'description' => __( 'Hide as many as possible ads, premium features or upsells from the Yoast Settings pages.', 'so-clean-up-wp-seo' ), 202 | 'type' => 'checkbox', 203 | 'default' => $options['hide_ads'], 204 | ), 205 | array( 206 | 'id' => 'hide_premium_submenu', 207 | 'label' => __( 'Premium submenus and issue counter', 'so-clean-up-wp-seo' ), 208 | 'description' => __( 'Hides the "Premium", "Workouts" and "Redirects" submenus as well as the issue counter from the admin sidebar.', 'so-clean-up-wp-seo' ), 209 | 'type' => 'checkbox', 210 | 'default' => $options['hide_premium_submenu'], 211 | ), 212 | ) 213 | ); 214 | 215 | $settings['section_2'] = array( 216 | 'title' => __( 'Posts, Pages, Custom post type, Taxonomy pages', 'so-clean-up-wp-seo' ), 217 | 'fields' => array( 218 | array( 219 | 'id' => 'hide_admincolumns', 220 | 'label' => __( 'Admin columns', 'so-clean-up-wp-seo' ), 221 | 'description' => '
' . __( 'There are so many admin columns added to Posts/Pages/taxonomies that it is impossible to see the things that matter, such as the Title. Multiple selections are allowed.', 'so-clean-up-wp-seo' ), 222 | 'type' => 'checkbox_multi', 223 | 'options' => array( 224 | 'seoscore' => __( 'Remove SEO score column', 'so-clean-up-wp-seo' ), 225 | 'readability' => __( 'Remove Readability score column', 'so-clean-up-wp-seo' ), 226 | 'title' => __( 'Remove SEO title column', 'so-clean-up-wp-seo' ), 227 | 'metadescr' => __( 'Remove Meta Desc. column', 'so-clean-up-wp-seo' ), 228 | 'focuskw' => __( 'Remove keyphrase column', 'so-clean-up-wp-seo' ), 229 | 'outgoing_internal_links' => __( 'Remove outgoing/received internal links column', 'so-clean-up-wp-seo' ), 230 | ), 231 | 'default' => $options['hide_admincolumns'], 232 | ), 233 | array( 234 | 'id' => 'remove_seo_scores_dropdown_filters', 235 | 'label' => __( 'SEO/Readability Scores Dropdown Filters', 'so-clean-up-wp-seo' ), 236 | 'description' => __( 'Remove SEO Scores and Readability Scores Dropdown Filters on the Edit Posts/Pages screen', 'so-clean-up-wp-seo' ), 237 | 'type' => 'checkbox', 238 | 'default' => $options['remove_seo_scores_dropdown_filters'], 239 | ), 240 | array( 241 | 'id' => 'hide_imgwarning_nag', 242 | 'label' => __( 'Featured image nag', 'so-clean-up-wp-seo' ), 243 | 'description' => __( 'Hide image warning nag that shows in edit Post/Page screen when featured image is smaller than 200x200 pixels.', 'so-clean-up-wp-seo' ), 244 | 'type' => 'checkbox', 245 | 'default' => $options['hide_imgwarning_nag'], 246 | ), 247 | array( 248 | 'id' => 'hide_content_keyword_score', 249 | 'label' => __( 'Keyword/Content Score', 'so-clean-up-wp-seo' ), 250 | 'description' => __( 'Hide the Keyword/Content Score from the Publish/Update Metabox on the Edit Post/Page/CPT screen.', 'so-clean-up-wp-seo' ), 251 | 'type' => 'checkbox', 252 | 'default' => $options['hide_content_keyword_score'], 253 | ), 254 | array( 255 | 'id' => 'hide_premium_features_yoast_metabox', 256 | 'label' => __( 'Hide Premium features on new/edit post-type screens', 'so-clean-up-wp-seo' ), 257 | 'description' => __( 'Hide Premium features in the Yoast SEO metabox when publishing or editing content.', 'so-clean-up-wp-seo' ), 258 | 'type' => 'checkbox', 259 | 'default' => $options['hide_premium_features_yoast_metabox'], 260 | ), 261 | array( 262 | 'id' => 'hide_ad_after_trashing_content', 263 | 'label' => __( 'Hide Ad after trashing content', 'so-clean-up-wp-seo' ), 264 | 'description' => __( 'When deleting content (Post, Page, Product and other Custom Post Type) a new notice appears on the edit screen that is an upsell ad for the premium version of Yoast SEO. This setting hides that notice.', 'so-clean-up-wp-seo' ), 265 | 'type' => 'checkbox', 266 | 'default' => $options['hide_ad_after_trashing_content'], 267 | ), 268 | ) 269 | ); 270 | 271 | $settings['section_3'] = array( 272 | 'title' => __( 'Miscellaneous', 'so-clean-up-wp-seo' ), 273 | 'fields' => array( 274 | array( 275 | 'id' => 'remove_adminbar', 276 | 'label' => __( 'SEO menu admin bar', 'so-clean-up-wp-seo' ), 277 | 'description' => __( 'Remove Yoast SEO icon and drop-down menu with more premium buttons from the admin bar.', 'so-clean-up-wp-seo' ), 278 | 'type' => 'checkbox', 279 | 'default' => $options['remove_adminbar'], 280 | ), 281 | array( 282 | 'id' => 'remove_dbwidget', 283 | 'label' => __( 'Dashboard widget', 'so-clean-up-wp-seo' ), 284 | 'description' => __( 'Remove the Yoast SEO widget from the WordPress Dashboard.', 'so-clean-up-wp-seo' ), 285 | 'type' => 'checkbox', 286 | 'default' => $options['remove_dbwidget'], 287 | ), 288 | array( 289 | 'id' => 'remove_permalinks_warning', 290 | 'label' => __( 'Remove Permalinks Warning Notice', 'so-clean-up-wp-seo' ), 291 | 'description' => __( 'Remove the notice that shows when changing permalinks informing the user that it is not a good idea', 'so-clean-up-wp-seo' ), 292 | 'type' => 'checkbox', 293 | 'default' => $options['remove_permalinks_warning'], 294 | ), 295 | array( 296 | 'id' => 'hide_seo_settings_profile_page', 297 | 'label' => __( 'Profile page', 'so-clean-up-wp-seo' ), 298 | 'description' => __( 'Hide SEO Settings on individual profile page.', 'so-clean-up-wp-seo' ), 299 | 'type' => 'checkbox', 300 | 'default' => $options['hide_seo_settings_profile_page'], 301 | ), 302 | array( 303 | 'id' => 'remove_html_comments', 304 | 'label' => __( 'Remove HTML Comments', 'so-clean-up-wp-seo' ), 305 | 'description' => __( 'Remove the HTML Comments from the source code (frontend) of the site', 'so-clean-up-wp-seo' ), 306 | 'type' => 'checkbox', 307 | 'default' => $options['remove_html_comments'], 308 | ), 309 | ), 310 | ); 311 | 312 | $settings = apply_filters( $this->parent->_token . '_settings_fields', $settings ); 313 | 314 | return $settings; 315 | } 316 | 317 | /** 318 | * Register plugin settings 319 | * 320 | * @return void 321 | * @since v2.0.0 322 | */ 323 | public function register_settings() { 324 | $settings = $this->settings_fields(); 325 | 326 | if ( is_array( $settings ) ) { 327 | foreach ( $settings as $section => $data ) { 328 | register_setting( $this->parent->_token . '_settings', 'settings' ); 329 | add_settings_section( $section, $data['title'], array( $this, 'settings_section' ), $this->parent->_token . '_settings' ); 330 | 331 | foreach ( $data['fields'] as $field ) { 332 | add_settings_field( $field['id'], $field['label'], array( $this->parent->admin, 'display_field' ), $this->parent->_token . '_settings', $section, array( 'field' => $field, 'prefix' => $this->base ) ); 333 | } 334 | } 335 | } 336 | 337 | if ( isset( $_POST['action'] ) && 'update' === $_POST['action'] ) { 338 | $this->update_settings(); 339 | } 340 | } 341 | 342 | 343 | /** 344 | * @access public 345 | * 346 | * @param $section 347 | */ 348 | public function settings_section( $section ) { 349 | $html = "\n"; 350 | echo $html; 351 | } 352 | 353 | /** 354 | * Load settings page content 355 | * 356 | * @return void 357 | * @since v2.0.0 358 | */ 359 | public function settings_page() { 360 | 361 | // Build page HTML 362 | $html = '
' . "\n"; 363 | $html .= '

' . esc_attr( __( 'Hide SEO Bloat Settings', 'so-clean-up-wp-seo' ) ) . '

' . "\n"; 364 | 365 | $html .= '

' . esc_attr( __( 'On this settings page you can adjust things here and there to your liking.', 'so-clean-up-wp-seo' ) ) . '
' . esc_attr( __( 'Although some settings are for "features" that can easily be dismissed on a per user basis, hiding or removing them here, has two advantages:', 'so-clean-up-wp-seo' ) ) . '

  1. ' . esc_attr( __( 'the settings here are global, for all users', 'so-clean-up-wp-seo' ) ) . '
  2. ' . esc_attr( __( 'these settings are centralised on one page, no need to keep dismissing stuff all over the site\'s backend', 'so-clean-up-wp-seo' ) ) . '

' . "\n"; 366 | 367 | $html .= '

' . esc_attr( __( 'The default settings, when you activate the plugin, are that almost all boxes have been ticked; why else would you install this plugin?', 'so-clean-up-wp-seo' ) ) . '

' . "\n"; 368 | 369 | $html .= '

' . esc_attr( __( 'If you ever want to remove the Hide SEO Bloat plugin, then you can rest assured that it cleans up after itself:', 'so-clean-up-wp-seo' ) ) . '
' . esc_attr( __( 'upon deletion it removes all options automatically.', 'so-clean-up-wp-seo' ) ) . '

' . "\n"; 370 | 371 | $html .= '

' . esc_attr( __( 'Without further ado: Hide the bloat', 'so-clean-up-wp-seo' ) ) . '


' . "\n"; 372 | 373 | //$action = is_network_admin() ? 'edit.php?action=' . $this->parent->_token . '_settings' : 'options.php'; 374 | if ( is_network_admin() ) { 375 | $action = 'edit.php?action=' . $this->parent->_token . '_settings'; 376 | } else { 377 | $action = 'options.php'; 378 | } 379 | 380 | $html .= '
' . "\n"; 381 | 382 | // Get settings fields 383 | ob_start(); 384 | settings_fields( $this->parent->_token . '_settings' ); 385 | do_settings_sections( $this->parent->_token . '_settings' ); 386 | $html .= ob_get_clean(); 387 | 388 | $html .= '

' . "\n"; 389 | 390 | $html .= '' . "\n"; 391 | $html .= '

' . "\n"; 392 | $html .= '
' . "\n"; 393 | 394 | 395 | // see //codex.wordpress.org/I18n_for_WordPress_Developers#HTML for instructions on i18n of $html 396 | $rateurl = 'https://wordpress.org/support/view/plugin-reviews/so-clean-up-wp-seo?rate=5#postform'; 397 | $html .= '

' . sprintf( wp_kses( __( 'If you have found this plugin at all useful, please give it a favourable rating in the WordPress Plugin Repository.', 'so-clean-up-wp-seo' ), array( 'a' => array( 'href' => array() ) ) ), esc_url( $rateurl ) ) . '

' . "\n"; 398 | 399 | $translateurl = 'https://translate.wordpress.org/projects/wp-plugins/so-clean-up-wp-seo'; 400 | $html .= '

' . sprintf( wp_kses( __( 'You can also help a great deal by translating the plugin into your own language.', 'so-clean-up-wp-seo' ), array( 'a' => array( 'href' => array() ) ) ), esc_url( $translateurl ) ) . '

' . "\n"; 401 | 402 | $supporturl = 'https://github.com/senlin/so-clean-up-wp-seo/issues'; 403 | $html .= '

' . sprintf( wp_kses( __( 'If you have an issue with this plugin or want to leave a feature request, please note that we give support via Github only.', 'so-clean-up-wp-seo' ), array( 'a' => array( 'href' => array() ) ) ), esc_url( $supporturl ) ) . '

' . "\n"; 404 | 405 | $html .= '
' . "\n"; 406 | 407 | $html .= '

' . esc_attr( __( 'About the Author', 'so-clean-up-wp-seo' ) ) . '

' . "\n"; 408 | 409 | $html .= '
' . "\n"; 410 | $html .= '
' . "\n"; 411 | 412 | $html .= 'plugin author Pieter Bos' . "\n"; 413 | 414 | $sowpurl = 'https://so-wp.com'; 415 | $html .= '

' . sprintf( wp_kses( __( 'Hi, my name is Pieter Bos, I hope you like this plugin! Please check out any of my other plugins on SO WP. You can find out more information about me via the following links:', 'so-clean-up-wp-seo' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'title' => array() ) ) ), esc_url( $sowpurl ) ) . '

' . "\n"; 416 | 417 | $html .= '
' . "\n"; // end .top 418 | 419 | $html .= '' . "\n"; 426 | 427 | $html .= '
' . "\n"; // end .inside 428 | 429 | $html .= '
' . "\n"; // end .postbox 430 | 431 | $html .= '

' . esc_attr( __( 'Mission statement:', 'so-clean-up-wp-seo' ) ) . '

' . "\n"; 432 | $html .= '

' . esc_attr( __( 'The first version of the Hide SEO Bloat plugin was released in April 2015 and ever since team Yoast and I have been playing a game of cat and mouse.', 'so-clean-up-wp-seo' ) ) . '

' . "\n"; 433 | $html .= '

' . esc_attr( __( 'Since version 20.0 of Yoast SEO however, the Settings page has received a complete overhaul, which made the Hide SEO Bloat plugin almost obsolete!', 'so-clean-up-wp-seo' ) ) . '

' . "\n"; 434 | $html .= '

' . esc_attr( __( 'Things have become much, much more trickier to remove/hide now and some things simply can no longer be hidden (believe me, I have tried).', 'so-clean-up-wp-seo' ) ) . '

' . "\n"; 435 | $html .= '

' . esc_attr( __( 'Why are there still people using Yoast SEO one might ask? There are so many great alternatives that come without screaming ads and hiding features behind a paywall!', 'so-clean-up-wp-seo' ) ) . '

' . "\n"; 436 | $ceaurl = 'https://wordpress.org/plugins/classic-editor-addon/'; 437 | $html .= '

' . sprintf( wp_kses( __( 'And the only reason that I have to keep Yoast SEO installed (on a sandbox that is) is because of the mere 10K installs where Hide SEO Bloat is running. Compare that with my popular Classic Editor + plugin, which has more than 30,000 active installs!', 'so-clean-up-wp-seo' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'title' => array() ) ) ), esc_url( $ceaurl ) ) . '

' . "\n"; 438 | $html .= '

' . esc_attr( __( 'For everyone to become much more productive and happier, my proposal therefore is to hang the Yoast SEO plugin from a tree and switch to SEOPress, The SEO Framework, Rankmath, or any other SEO plugin out there! Did you know that most SEO plugins come with easy one-click migration tools?', 'so-clean-up-wp-seo' ) ) . '

' . "\n"; 439 | $html .= '

' . esc_attr( __( 'The goal is to bring the active installs of Hide SEO Bloat to zero, so I can finally quit this nonsense and focus on work that actually pays my bills!', 'so-clean-up-wp-seo' ) ) . '

' . "\n"; 440 | 441 | $html .= '
' . "\n"; 442 | 443 | echo $html; 444 | } 445 | 446 | /** 447 | * Main CUWS_Settings Instance 448 | * 449 | * Ensures only one instance of CUWS_Settings is loaded or can be loaded. 450 | * 451 | * @since v2.0.0 452 | * @static 453 | * @see CUWS() 454 | * 455 | * @param CUWS $parent Instance of main class. 456 | * 457 | * @return CUWS_Settings $_instance 458 | */ 459 | public static function instance( $parent ) { 460 | if ( null === self::$_instance ) { 461 | self::$_instance = new self( $parent ); 462 | } 463 | 464 | return self::$_instance; 465 | } // End instance() 466 | 467 | /** 468 | * Cloning is forbidden. 469 | * 470 | * @since v2.0.0 471 | */ 472 | public function __clone() { 473 | _doing_it_wrong( __FUNCTION__, __( 'Access denied' ), $this->parent->_version ); 474 | } // End __clone() 475 | 476 | /** 477 | * Unserializing instances of this class is forbidden. 478 | * 479 | * @since v2.0.0 480 | */ 481 | public function __wakeup() { 482 | _doing_it_wrong( __FUNCTION__, __( 'Access denied' ), $this->parent->_version ); 483 | } // End __wakeup() 484 | 485 | } 486 | -------------------------------------------------------------------------------- /includes/class-so-clean-up-wp-seo.php: -------------------------------------------------------------------------------- 1 | _version = $version; 113 | $this->_token = 'cuws'; 114 | 115 | // Load plugin environment variables 116 | $this->file = $file; 117 | $this->dir = dirname( $this->file ); 118 | $this->assets_dir = trailingslashit( $this->dir ) . 'css'; 119 | $this->assets_url = esc_url( trailingslashit( plugins_url( '/css/', $this->file ) ) ); 120 | 121 | register_activation_hook( $this->file, array( $this, 'install' ) ); 122 | 123 | // Load admin CSS 124 | add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_styles' ), 10, 1 ); 125 | 126 | // Handle localisation 127 | add_action( 'plugins_loaded', array( $this, 'i18n' ), 0 ); 128 | 129 | /*** PLUGIN FUNCTIONS ***/ 130 | 131 | // @since v1.3.0 132 | add_action( 'admin_bar_menu', array( $this, 'so_cuws_remove_adminbar_settings' ), 999 ); 133 | // @since 1.5.0 134 | add_action( 'wp_dashboard_setup', array( $this, 'so_cuws_remove_dashboard_widget' ) ); 135 | // @since 2.0.0 136 | add_action( 'admin_head', array( $this, 'so_cuws_hide_visibility_css' ) ); 137 | // @since 3.10.0 138 | add_action( 'admin_menu', array( $this, 'so_cuws_remove_menu_item'), 999 ); 139 | // @since 3.11.0 140 | add_action( 'plugins_loaded', array( $this, 'so_cuws_remove_frontend_html_comments' ), 999 ); 141 | // @since 3.13.0 142 | add_action( 'admin_init', array( $this, 'so_cuws_remove_class_hook' ) ); 143 | // @since 3.13.0 144 | add_action( 'admin_menu', array( $this, 'so_cuws_remove_admin_columns_init' ), 11 ); 145 | // @since 3.13.0 146 | add_action( 'admin_init', array( $this, 'so_cuws_remove_seo_scores_dropdown_filters' ), 20 ); 147 | 148 | 149 | // Load API for generic admin functions 150 | if ( is_admin() ) { 151 | $this->admin = new CUWS_Admin_API(); 152 | } 153 | 154 | $this->options = $this->_get_options(); 155 | } // End __construct () 156 | 157 | /** 158 | * Remove Settings submenu in admin bar 159 | * Since Yoast SEO 3.6 it is possible to disable the adminbar menu within 160 | * Dashboard > Features but only in individual sites, not network admin 161 | * 162 | * inspired by [Lee Rickler](https://profiles.wordpress.org/lee-rickler/) 163 | * 164 | * @since v1.3.0 165 | */ 166 | public function so_cuws_remove_adminbar_settings() { 167 | if ( empty( $this->options['remove_adminbar'] ) ) { 168 | return; 169 | } 170 | global $wp_admin_bar; 171 | $nodes = array_keys( $wp_admin_bar->get_nodes() ); 172 | foreach ( $nodes as $node ) { 173 | if ( false !== strpos( $node, 'wpseo' ) ) { 174 | $wp_admin_bar->remove_node( $node ); 175 | } 176 | } 177 | } 178 | 179 | /** 180 | * Version 2.3 of Yoast SEO introduced a dashboard widget 181 | * This function removes this widget 182 | * 183 | * @since v1.5.0 184 | */ 185 | public function so_cuws_remove_dashboard_widget() { 186 | 187 | if ( ! empty( $this->options['remove_dbwidget'] ) ) { 188 | 189 | remove_meta_box( 'wpseo-dashboard-overview', 'dashboard', 'side' ); 190 | 191 | } 192 | } 193 | 194 | /** 195 | * at some point Yoast SEO has introduced "Primary Category Feature" 196 | * This function removes this "feature" 197 | * 198 | * @since v3.6.0 199 | */ 200 | public function so_cuws_remove_primary_category_feature() { 201 | 202 | if ( ! empty( $this->options['remove_primarycatfeat'] ) ) { 203 | 204 | add_filter( 'wpseo_primary_term_taxonomies', '__return_empty_array' ); 205 | 206 | } 207 | } 208 | 209 | /** 210 | * Remove Search Console 211 | * 212 | * @since v3.10.0 213 | */ 214 | public function so_cuws_remove_menu_item() { 215 | 216 | // Google has discontinued its Crawl Errors API so the Search Console page in Yoast is useless now; thanks [@Dibbyo456](https://github.com/senlin/so-clean-up-wp-seo/issues/69); @since v3.12.0 217 | remove_submenu_page( 'wpseo_dashboard', 'wpseo_search_console' ); 218 | 219 | } 220 | 221 | /** 222 | * Upon request by many the plugin now also removes the frontend HTML comments left by Yoast 223 | * improvements of v3.11.1 via [Robert Went](https://gist.github.com/robwent/f36e97fdd648a40775379a86bd97b332) 224 | * v3.14.6: added conditional for new filter tip from [Emanuel-23](https://github.com/senlin/so-clean-up-wp-seo/issues/95) 225 | * 226 | * @since v3.11.0 227 | * @modified v3.11.1 228 | * @modified v3.14.6 229 | */ 230 | public function so_cuws_remove_frontend_html_comments() { 231 | 232 | if ( ! empty( $this->options['remove_html_comments'] ) ) { 233 | 234 | if ( defined( 'WPSEO_VERSION' ) ) { 235 | 236 | $wpseo_version = constant( 'WPSEO_VERSION' ); 237 | 238 | // the wpseo_debug_markers() filter was added in WP SEO version 14.1 239 | if ( version_compare ( $wpseo_version , '14.1', '<' ) ) { 240 | 241 | add_action( 'get_header', function () { ob_start( function ( $o ) { 242 | return preg_replace( '/\n?<.*?Yoast SEO plugin.*?>/mi', '', $o ); } ); } ); 243 | add_action( 'wp_head',function (){ ob_end_flush(); }, 999 ); 244 | 245 | } else { 246 | 247 | add_filter( 'wpseo_debug_markers', '__return_false' ); 248 | 249 | } 250 | 251 | } 252 | 253 | } 254 | } 255 | 256 | /** 257 | * Remove warning notice when changing permalinks 258 | * 259 | * Removes the permalink notice action (see includes/remove-class.php) 260 | * Uses @remove_class_hook. 261 | * 262 | * @since v3.13.0 263 | */ 264 | public function so_cuws_remove_class_hook() { 265 | 266 | if ( ! empty( $this->options['remove_permalinks_warning'] ) ) { 267 | 268 | remove_class_hook( 'admin_notices', 'WPSEO_Admin_Init', 'permalink_settings_notice' ); 269 | 270 | } 271 | } 272 | 273 | /* 274 | * Remove admin columns 275 | * @since v2.0.0 remove seo columns one by one 276 | * @modified 2.0.2 add empty array as default to avoid warnings form subsequent 277 | * in_array checks - credits [Ronny Myhre Njaastad](https://github.com/ronnymn) 278 | * @modified 2.1 simplify the CSS rules and add the rule to hide the seo-score 279 | * column on taxonomies (added to v3.1 of Yoast SEO plugin) 280 | * @modified 2.6.0 only 2 columns left change from checkboxes to radio 281 | * @modified 2.6.1 revert radio to checkboxes and removing the options 282 | * for focus keyword, title and meta-description 283 | * @modified 3.10.1 add checkbox to hide outgoing internal links column 284 | * @modified 3.13.0 recode the function to **remove** columns instead of hiding them - credits [Dibbyo456](https://github.com/Dibbyo456) 285 | */ 286 | public function so_cuws_remove_admin_columns_init() { 287 | 288 | // post, page and custom post types 289 | $all_post_types = array_merge( array( 'post', 'page' ), get_post_types( array( '_builtin' => false ) ) ); 290 | 291 | foreach( $all_post_types as $post_type ) { 292 | add_filter( 'manage_edit-'. $post_type .'_columns', array( $this, 'so_cuws_remove_admin_columns' ), 10, 1 ); 293 | } 294 | 295 | } 296 | 297 | public function so_cuws_remove_admin_columns( $columns ) { 298 | 299 | // if empty return columns right away. 300 | if ( empty( $this->options['hide_admincolumns'] ) ) { 301 | return $columns; 302 | } 303 | 304 | // seo score column 305 | if ( in_array( 'seoscore', $this->options['hide_admincolumns'] ) ) { 306 | unset( $columns['wpseo-score'] ); 307 | } 308 | 309 | // readability column 310 | if ( in_array( 'readability', $this->options['hide_admincolumns'] ) ) { 311 | unset( $columns['wpseo-score-readability'] ); 312 | } 313 | 314 | // title column 315 | if ( in_array( 'title', $this->options['hide_admincolumns'] ) ) { 316 | unset( $columns['wpseo-title'] ); 317 | } 318 | 319 | // meta description column 320 | if ( in_array( 'metadescr', $this->options['hide_admincolumns'] ) ) { 321 | unset( $columns['wpseo-metadesc'] ); 322 | } 323 | 324 | // focus keyword column 325 | if ( in_array( 'focuskw', $this->options['hide_admincolumns'] ) ) { 326 | unset( $columns['wpseo-focuskw'] ); 327 | } 328 | 329 | // outgoing internal links column 330 | if ( in_array( 'outgoing_internal_links', $this->options['hide_admincolumns'] ) ) { 331 | unset( $columns['wpseo-links'] ); 332 | unset( $columns['wpseo-linked'] ); 333 | } 334 | 335 | return $columns; 336 | 337 | } 338 | 339 | 340 | /** 341 | * Remove (as opposed to hide) SEO/readability Scores dropdown filters on edit posts screens 342 | * 343 | * credits [Dibbyo456](https://github.com/Dibbyo456) 344 | */ 345 | public function so_cuws_remove_seo_scores_dropdown_filters() { 346 | if ( ! empty( $this->options['remove_seo_scores_dropdown_filters'] ) ) { 347 | global $wpseo_meta_columns ; 348 | if ( $wpseo_meta_columns ) { 349 | remove_action( 'restrict_manage_posts', array( $wpseo_meta_columns , 'posts_filter_dropdown' ) ); 350 | remove_action( 'restrict_manage_posts', array( $wpseo_meta_columns , 'posts_filter_dropdown_readability' ) ); 351 | } 352 | } 353 | } 354 | 355 | 356 | /** 357 | * CSS needed to hide the various options ticked with checkboxes 358 | * 359 | * @since v2.0.0 360 | * @modified v2.1.0 remove options for nags that have been temporarily 361 | * disabled in v3.1 of Yoast SEO plugin 362 | */ 363 | public function so_cuws_hide_visibility_css() { 364 | 365 | echo ''; 536 | } 537 | 538 | 539 | /** 540 | * Load admin CSS. 541 | * 542 | * @access public 543 | * @since v2.0.0 544 | * @return void 545 | */ 546 | public function admin_enqueue_styles( $hook = '' ) { 547 | wp_register_style( $this->_token . '-admin', esc_url( $this->assets_url ) . 'admin.css', array(), $this->_version ); 548 | wp_enqueue_style( $this->_token . '-admin' ); 549 | } // End admin_enqueue_styles () 550 | 551 | /** 552 | * Loads the translation file. 553 | * 554 | * @since v1.0.0 555 | */ 556 | function i18n() { 557 | load_plugin_textdomain( 'so-clean-up-wp-seo', false, basename( dirname( __FILE__ ) ) . '/languages/' ); 558 | } 559 | 560 | /** 561 | * Main CUWS Instance 562 | * 563 | * Ensures only one instance of CUWS is loaded or can be loaded. 564 | * 565 | * @since v2.0.0 566 | * @static 567 | * @see CUWS() 568 | * 569 | * @param string $file 570 | * @param string $version Version number. 571 | * 572 | * @return CUWS $_instance 573 | */ 574 | public static function instance( $file = '', $version = '4.0.0' ) { 575 | if ( null === self::$_instance ) { 576 | self::$_instance = new self( $file, $version ); 577 | } 578 | 579 | return self::$_instance; 580 | } // End instance () 581 | 582 | /** 583 | * Cloning is forbidden. 584 | * 585 | * @since v2.0.0 586 | */ 587 | public function __clone() { 588 | _doing_it_wrong( __FUNCTION__, __( 'No Access' ), $this->_version ); 589 | } // End __clone () 590 | 591 | /** 592 | * Unserializing instances of this class is forbidden. 593 | * 594 | * @since v2.0.0 595 | */ 596 | public function __wakeup() { 597 | _doing_it_wrong( __FUNCTION__, __( 'No Access' ), $this->_version ); 598 | } // End __wakeup () 599 | 600 | /** 601 | * Installation. Runs on activation. 602 | * 603 | * @access public 604 | * @since v2.0.0 605 | * @return void 606 | */ 607 | public function install() { 608 | $this->_log_version_number(); 609 | $this->_set_defaults(); 610 | } // End install () 611 | 612 | /** 613 | * Log the plugin version number. 614 | * 615 | * @access private 616 | * @since v2.0.0 617 | * @return void 618 | */ 619 | private function _log_version_number() { 620 | update_site_option( $this->_token . '_version', $this->_version ); 621 | } // End _log_version_number () 622 | 623 | /** 624 | * Array containing the default values. 625 | * Use `array_keys()` to return the key names. 626 | * 627 | * @return array 628 | */ 629 | public function get_defaults() { 630 | $defaults = array( 631 | 'hide_dashboard_problems_notifications' => array( 632 | 'problems', 633 | 'notifications' 634 | ), 635 | 'hide_ads' => 'on', 636 | 'hide_premium_submenu' => 'on', 637 | 'hide_admincolumns' => array( 638 | 'seoscore', 639 | 'readability', 640 | 'title', 641 | 'metadescr', 642 | 'outgoing_internal_links' 643 | ), 644 | 'remove_seo_scores_dropdown_filters' => 'on', 645 | 'hide_imgwarning_nag' => 'on', 646 | 'hide_content_keyword_score' => 'on', 647 | 'hide_premium_features_yoast_metabox' => 'on', 648 | 'hide_ad_after_trashing_content' => 'on', 649 | 'remove_adminbar' => 'on', 650 | 'remove_dbwidget' => 'on', 651 | 'remove_permalinks_warning' => 'on', 652 | 'hide_seo_settings_profile_page' => 'on', 653 | 'remove_html_comments' => 'on' 654 | ); 655 | 656 | return $defaults; 657 | } 658 | 659 | /** 660 | * Set default values on activation. 661 | * 662 | * @access private 663 | * @return void 664 | */ 665 | private function _set_defaults() { 666 | $defaults = $this->get_defaults(); 667 | update_site_option( $this->_token . '_settings', $defaults ); 668 | } // End _set_defaults () 669 | 670 | /** 671 | * Get plugin options. 672 | * Add new default options if missing from saved options. 673 | * 674 | * @return array $options Plugin options. 675 | * @since 3.8.1 676 | */ 677 | private function _get_options() { 678 | $options = get_site_option( $this->_token . '_settings', array() ); 679 | $defaults = $this->get_defaults(); 680 | $diff = array_diff_key( $defaults, $options ); 681 | 682 | if ( ! empty( $diff ) ) { 683 | $options = array_merge( $options, $diff ); 684 | update_site_option( $this->_token . '_settings', $options ); 685 | } 686 | 687 | return $options; 688 | } 689 | 690 | } 691 | -------------------------------------------------------------------------------- /includes/remove-class.php: -------------------------------------------------------------------------------- 1 | callbacks[ $priority ] ) ) { 27 | 28 | $methods = array_filter( wp_list_pluck( 29 | $wp_filter[ $tag ]->callbacks[ $priority ], 30 | 'function' 31 | ), function ( $method ) { 32 | /** 33 | * Allow only array & string notation for hooks, since we're 34 | * looking to remove an exact method of a class anyway. And the 35 | * method of the class is passed in as a string anyway. 36 | */ 37 | return is_string( $method ) || is_array( $method ); 38 | } ); 39 | 40 | $found_hooks = ! empty( $methods ) ? wp_list_filter( $methods, array( 1 => $method_name ) ) : array(); 41 | 42 | foreach( $found_hooks as $hook_key => $hook ) { 43 | if ( ! empty( $hook[0] ) && is_object( $hook[0] ) && get_class( $hook[0] ) === $class_name ) { 44 | $wp_filter[ $tag ]->remove_filter( $tag, $hook, $priority ); 45 | $is_hook_removed = true; 46 | } 47 | } 48 | } 49 | return $is_hook_removed; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | required)." 115 | msgstr "" 116 | 117 | #: includes/class-so-clean-up-wp-seo-settings.php:161 118 | msgid "Hide all columns" 119 | msgstr "" 120 | 121 | #: includes/class-so-clean-up-wp-seo-settings.php:161 122 | msgid "Hide SEO score column" 123 | msgstr "" 124 | 125 | #: includes/class-so-clean-up-wp-seo-settings.php:161 126 | msgid "Hide title column" 127 | msgstr "" 128 | 129 | #: includes/class-so-clean-up-wp-seo-settings.php:161 130 | msgid "Hide meta description column" 131 | msgstr "" 132 | 133 | #: includes/class-so-clean-up-wp-seo-settings.php:161 134 | msgid "Hide focus keyword column" 135 | msgstr "" 136 | 137 | #: includes/class-so-clean-up-wp-seo-settings.php:161 138 | msgid "Show all columns" 139 | msgstr "" 140 | 141 | #: includes/class-so-clean-up-wp-seo-settings.php:166 142 | msgid "SEO menu admin bar" 143 | msgstr "" 144 | 145 | #: includes/class-so-clean-up-wp-seo-settings.php:167 146 | msgid "" 147 | "The adminbar contains an SEO menu with 2 options; select here what to remove." 148 | msgstr "" 149 | 150 | #: includes/class-so-clean-up-wp-seo-settings.php:169 151 | msgid "SEO Settings" 152 | msgstr "" 153 | 154 | #: includes/class-so-clean-up-wp-seo-settings.php:169 155 | msgid "Keyword Research" 156 | msgstr "" 157 | 158 | #: includes/class-so-clean-up-wp-seo-settings.php:169 159 | msgid "Both" 160 | msgstr "" 161 | 162 | #: includes/class-so-clean-up-wp-seo-settings.php:169 163 | msgid "None" 164 | msgstr "" 165 | 166 | #: includes/class-so-clean-up-wp-seo-settings.php:174 167 | msgid "Dashboard widget" 168 | msgstr "" 169 | 170 | #: includes/class-so-clean-up-wp-seo-settings.php:175 171 | msgid "Remove the Yoast SEO widget from the WordPress Dashboard." 172 | msgstr "" 173 | 174 | #: includes/class-so-clean-up-wp-seo-settings.php:249 175 | msgid "" 176 | "With version 2.0.0 we have added this settings page, so you can adjust " 177 | "things here and there to your liking." 178 | msgstr "" 179 | 180 | #: includes/class-so-clean-up-wp-seo-settings.php:251 181 | msgid "" 182 | "The default setting, when you activate the plugin, is that almost all boxes " 183 | "have been ticked; why else would you install our plugin?" 184 | msgstr "" 185 | 186 | #: includes/class-so-clean-up-wp-seo-settings.php:253 187 | msgid "" 188 | "The intro tour pop up balloon is set to \"seen\" by default and there is no " 189 | "setting to show it as you can find it in the Yoast SEO Settings." 190 | msgstr "" 191 | 192 | #: includes/class-so-clean-up-wp-seo-settings.php:255 193 | msgid "" 194 | "If you ever want to remove the SO Hide SEO Bloat plugin, then you can rest " 195 | "assured that it cleans up after itself:" 196 | msgstr "" 197 | 198 | #: includes/class-so-clean-up-wp-seo-settings.php:255 199 | msgid "upon deletion it removes all options automatically." 200 | msgstr "" 201 | 202 | #: includes/class-so-clean-up-wp-seo-settings.php:267 203 | msgid "Save Settings" 204 | msgstr "" 205 | 206 | #: includes/class-so-clean-up-wp-seo-settings.php:274 207 | #, php-format 208 | msgid "" 209 | "If you have found this plugin at all useful, please give it a favourable " 210 | "rating in the WordPress Plugin " 211 | "Repository." 212 | msgstr "" 213 | 214 | #: includes/class-so-clean-up-wp-seo-settings.php:277 215 | #, php-format 216 | msgid "" 217 | "You can also help a great deal by translating the plugin into your own " 219 | "language." 220 | msgstr "" 221 | 222 | #: includes/class-so-clean-up-wp-seo-settings.php:280 223 | #, php-format 224 | msgid "" 225 | "If you have an issue with this plugin or want to leave a feature request, " 226 | "please note that we give support via Github only." 228 | msgstr "" 229 | 230 | #: includes/class-so-clean-up-wp-seo-settings.php:284 231 | msgid "About the Author" 232 | msgstr "" 233 | 234 | #: includes/class-so-clean-up-wp-seo-settings.php:292 235 | #, php-format 236 | msgid "" 237 | "Hi, my name is Piet Bos, I hope you like this plugin! Please check out any " 238 | "of my other plugins on SO WP Plugins. You can find out more information about me via the following links:" 240 | msgstr "" 241 | 242 | #: includes/class-so-clean-up-wp-seo-settings.php:297 243 | msgid "Senlin Online" 244 | msgstr "" 245 | 246 | #: includes/class-so-clean-up-wp-seo-settings.php:298 247 | msgid "WP Tips" 248 | msgstr "" 249 | 250 | #: includes/class-so-clean-up-wp-seo-settings.php:299 251 | msgid "LinkedIn" 252 | msgstr "" 253 | 254 | #: includes/class-so-clean-up-wp-seo-settings.php:300 255 | msgid "Github" 256 | msgstr "" 257 | 258 | #: includes/class-so-clean-up-wp-seo-settings.php:301 259 | msgid "WordPress.org Profile" 260 | msgstr "" 261 | 262 | #: includes/class-so-clean-up-wp-seo-settings.php:336 263 | #: includes/class-so-clean-up-wp-seo-settings.php:345 264 | msgid "Access denied" 265 | msgstr "" 266 | 267 | #: includes/class-so-clean-up-wp-seo.php:316 268 | #: includes/class-so-clean-up-wp-seo.php:325 269 | msgid "No Access" 270 | msgstr "" 271 | 272 | #. Plugin Name of the plugin/theme 273 | msgid "SO Hide SEO Bloat" 274 | msgstr "" 275 | 276 | #. Plugin URI of the plugin/theme 277 | msgid "http://so-wp.com/plugin/so-clean-up-wp-seo/" 278 | msgstr "" 279 | 280 | #. Description of the plugin/theme 281 | msgid "" 282 | "Hide most of the bloat that the Yoast SEO plugin adds to your WordPress " 283 | "Dashboard" 284 | msgstr "" 285 | 286 | #. Author of the plugin/theme 287 | msgid "SO WP" 288 | msgstr "" 289 | 290 | #. Author URI of the plugin/theme 291 | msgid "http://so-wp.com/plugins/" 292 | msgstr "" 293 | -------------------------------------------------------------------------------- /readme.txt: -------------------------------------------------------------------------------- 1 | === Hide SEO Bloat === 2 | Contributors: senlin, afragen 3 | Donate link: https://so-wp.com/donations 4 | Tags: hide, seo, bloat, remove, ads, cartoon, wordpress seo addon, admin columns, nags, dashboard widget, hide premium 5 | Requires at least: 4.9 6 | Requires PHP: 5.6 7 | Tested up to: 6.4 8 | Stable tag: 4.0.2 9 | License: GPL-3.0+ 10 | License URI: http://www.gnu.org/licenses/gpl-3.0.txt 11 | 12 | Free addon for the Yoast SEO plugin to hide the bloat it adds to the WordPress backend. See [changelog](https://wordpress.org/plugins/so-clean-up-wp-seo/#developers) for what's new in this release. 13 | 14 | == Description == 15 | 16 | Hides (sidebar) ads and premium version buttons of Yoast SEO from their settings pages and your website's dashboard (and frontend). 17 | 18 |
19 | 20 | The first version of the Hide SEO Bloat plugin was released in April 2015 and ever since team Yoast and I have been playing a game of cat and mouse. 21 | 22 | Since version 20.0 of Yoast SEO however, the Settings page has received a complete overhaul, which made the Hide SEO Bloat plugin almost obsolete! 23 | 24 | Things have become much, much more trickier to remove/hide now and some things simply can no longer be hidden (believe me, I have tried). 25 | 26 | Why are there still people using Yoast SEO one might ask? There are so many great alternatives that come without screaming ads and hiding features behind a paywall! 27 | 28 | And the only reason that I have to keep Yoast SEO installed (on a sandbox that is) is because of the mere 10K installs where Hide SEO Bloat is running. Compare that with my popular [Classic Editor + plugin](https://wordpress.org/plugins/classic-editor-addon/), which has more than 30,000 active installs! 29 | 30 | For everyone to become much more productive and happier, my proposal therefore is to switch to any of the other SEO plugins, such as SEOPress, The SEO Framework, Rankmath, or any other one out there! Did you know that most SEO plugins come with easy one-click migration tools? 31 | 32 |
33 | 34 | I support this plugin exclusively through [Github](https://github.com/senlin/so-clean-up-wp-seo/issues). Therefore, if you have any questions, need help and/or want to make a feature request, please open an issue over at Github. You can also browse through open and closed issues to find what you are looking for and perhaps even help others. 35 | 36 | Thanks for your understanding and cooperation. 37 | 38 | If you like the Hide SEO Bloat plugin, please consider leaving a [review](https://wordpress.org/support/view/plugin-reviews/so-clean-up-wp-seo?rate=5#postform). You can also help a great deal by [translating the plugin](https://translate.wordpress.org/projects/wp-plugins/so-clean-up-wp-seo) into your own language. 39 | Alternatively you are welcome to make a [donation](https://so-wp.com/donations). Thanks! 40 | 41 | [Hide SEO Bloat](https://so-wp.com/plugin/hide-seo-bloat) by SO WP. 42 | 43 | == Frequently Asked Questions == 44 | 45 | = Where is the settings page? = 46 | 47 | The link to the page has been added to the Yoast SEO menu and of course there is also a link to it from the Plugins page. 48 | 49 | = Can I use Hide SEO Bloat on Multisite? = 50 | 51 | Yes, you can. 52 | For version 2.4.0 [Andy Fragen](https://github.com/afragen) has refactored that part of the plugin to make it fully Multisite compatible. The Settings screen only shows in Network Admin as it doesn't make sense that individual sites override the Network Settings. 53 | 54 | = The name of the plugin is confusing, it hides bloat of which SEO plugin? = 55 | 56 | Yes, you are right, the name is a bit vague (see Changelog v1.8.0). On the other hand there is only one SEO plugin that adds a lot of bloat to the WordPress Dashboard and that is the Yoast SEO plugin. 57 | 58 | = The plugin doesn't do anything! = 59 | 60 | Do you have the Yoast SEO plugin installed? It hides the bloat from that plugin only. 61 | If you have and the plugin still doesn't do anything, then please open a [support ticket](https://github.com/senlin/so-clean-up-wp-seo/issues). 62 | 63 | = With a settings page comes additional entries in the database; what happens on uninstall? = 64 | 65 | Great question! 66 | Indeed the Hide SEO Bloat plugin writes its settings to the database. The included `uninstall.php` file removes all the plugin-related entries from the database once you remove the plugin via the WordPress Plugins page (not on deactivation). 67 | 68 | = I have an issue with this plugin, where can I get support? = 69 | 70 | Please open an issue on [Github](https://github.com/senlin/so-clean-up-wp-seo/issues) 71 | 72 | == Changelog == 73 | 74 | = 4.0.2 = 75 | 76 | * release date January 15, 2024 77 | * remove rule that hides crawl optimisation menu in Yoast SEO settings thanks for reporting [@melcarthus](https://wordpress.org/support/topic/non-bloatware-link-removed-by-plugin/) 78 | * hide premium Redirects submenu from left admin bar, which had become visible again after Yoast added the Academy submenu 79 | 80 | = 4.0.1 = 81 | 82 | * release date July 30, 2023 83 | * Fix PHP 8.2 deprecation notices ([PR #106](https://github.com/senlin/so-clean-up-wp-seo/pull/106)) (thanks Brandon) 84 | * compatible up to WP 6.3 85 | 86 | = 4.0.0 = 87 | 88 | * release date February 10, 2023 89 | * redo many styles that hide features, due to dashboard makeover release of Yoast SEO version 20.0 90 | * merge many settings (from 23 to 14) 91 | * new sections on the settings page with assistance of [ChatGPT](https://chat.openai.com/) 92 | * simplify register_settings() function with assistance of [ChatGPT](https://chat.openai.com/) 93 | 94 | = 3.14.13 = 95 | 96 | * release date January 31, 2023 97 | * fix issue where Hide SEO Bloat link to settings page was made invisible due to Yoast SEO switching around menu items in admin sidebar 98 | * hide Premium SEO Analysis button on Publish/Update Post metabox 99 | 100 | = 3.14.12 = 101 | 102 | * release date December 2, 2022 103 | * hide "Unlock with Premium" button and options in Yoast dashboard (Features tab) 104 | * hide "Social Settings" box and "Unlock with Premium" button in Yoast dashboard (Search Appearance, Content types and Taxonomies tabs) 105 | 106 | = 3.14.11 = 107 | 108 | * release date November 7, 2022 109 | * slight correction on hiding the submenu items of 3.14.10 110 | 111 | = 3.14.10 = 112 | 113 | * release date November 7, 2022 114 | * hide ["Redirects"-submenu](https://github.com/senlin/so-clean-up-wp-seo/pull/103) and hide ["Crawl Settings"-tab](https://github.com/senlin/so-clean-up-wp-seo/pull/104), both courtesy of [Chris Johnson](https://github.com/workeffortwaste) 115 | 116 | = 3.14.9 = 117 | 118 | * release date November 7, 2022 119 | * hide "Connect Yoast SEO with Zapier"-text in post publish sidebar 120 | * remove link to blog from plugin's settings page 121 | 122 | = 3.14.8 = 123 | 124 | * release date August 16, 2021 125 | * include hiding "Workouts" submenu (https://github.com/senlin/so-clean-up-wp-seo/issues/102) 126 | * adjust admin CSS to not affect other plugins (https://wordpress.org/support/topic/css-affect-other-plugin/) 127 | 128 | = 3.14.7 = 129 | 130 | * release date February 23, 2021 131 | * use version_compare for wpseo_debug_markers() filter; see [this comment](https://github.com/senlin/so-clean-up-wp-seo/commit/441613bd83ee59882cfff4859b0b2c4f8fdb209a#r47454525) 132 | 133 | = 3.14.6 = 134 | 135 | * release date February 4, 2021 136 | * add condition to use new-ish `wpseo_debug_markers` filter to remove frontend comments in a backward compatible way; fixes [issue #95](https://github.com/senlin/so-clean-up-wp-seo/issues/95) 137 | 138 | = 3.14.5 = 139 | 140 | * release date February 3, 2021 141 | * fix React hide tabs conflict ([issue #94](https://github.com/senlin/so-clean-up-wp-seo/issues/94)) 142 | 143 | = 3.14.4 = 144 | 145 | * release date December 18, 2020 146 | * hides ad for premium version on post type analysis dropdown 147 | * delete function added in 3.13.0 that removes advanced accordion menu at bottom of SEO metabox for post- and custom post types, since it no longer functions properly ([issue #67](https://github.com/senlin/so-clean-up-wp-seo/issues/67)) 148 | 149 | = 3.14.3 = 150 | 151 | * release date August 11, 2020 152 | * fixed bug that occurred with some themes due to introduction of `is_object()` in WP 5.5. Thanks for the patch @andreiglingeanu! 153 | 154 | = 3.14.2 = 155 | 156 | * release date August 1, 2020 157 | * improved hiding notice (added to v3.14.0) that shows after content deletion as it also shows after deleting taxonomies (thanks @KoolPal) 158 | 159 | = 3.14.1 = 160 | 161 | * release date August 1, 2020 162 | * hide premium upsell ad from social tab of Yoast SEO Metabox (thanks @allanrehhoff) 163 | * tested up to WP 5.5 164 | 165 | = 3.14.0 = 166 | 167 | * release date May 20, 2020 168 | * hide new notice that shows after deleting content (post, page, product, other CPT), address issue #83, thanks [@Kagan Akbas](https://github.com/remaindeer) 169 | 170 | = 3.13.6 = 171 | 172 | * release date March 7, 2019 173 | * previous hide readability features setting (our v3.9.0) was blocking the icons of SEO and Readability tab of Yoast metabox; now not anymore. Thanks for reporting [@koolpad](https://wordpress.org/support/topic/non-critical-seo-readability-icons-disappear/) 174 | * cleanup 175 | 176 | = 3.13.5 = 177 | 178 | * release date February 25, 2020 179 | * fix issue where updates from other plugins are hidden in admin sidebar 180 | 181 | = 3.13.4 = 182 | 183 | * release date February 5, 2020 184 | * hide additional keyphrase "option" from metabox as it is ad for premium too 185 | 186 | = 3.13.3 = 187 | 188 | * release date January 9, 2020 189 | * update help center classes 190 | * hide help beacon (issue #77 - thanks for the fix [@allanrehhoff](https://github.com/allanrehhoff)) 191 | 192 | = 3.13.2 = 193 | 194 | * release date November 19, 2019 195 | * put CSS rules back to fix bug when using quick edit function (issue #75) 196 | * adjust CSS to fix bug (issue #76 - thanks for the fix [@allanrehhoff](https://github.com/allanrehhoff)) 197 | 198 | = 3.13.1 = 199 | 200 | * release date October 1, 2019 201 | * adjust the hiding of the Problems box (General settings Yoast) which received new class name 202 | 203 | = 3.13.0 = 204 | 205 | * release date August 29, 2019 206 | * remove notice on permalinks page that warns the user of the implications of changing them, fixes [issue #58](https://github.com/senlin/so-clean-up-wp-seo/issues/58) 207 | * recode hiding of the admin columns into actually removing them, fixes [issue #65](https://github.com/senlin/so-clean-up-wp-seo/issues/65) 208 | * recode hiding of the seo score/readability score filters into actually removing them, fixes [issue #65](https://github.com/senlin/so-clean-up-wp-seo/issues/65) 209 | * remove advanced accordion menu at bottom of SEO metabox for post- and custom post types, fixes [issue #67](https://github.com/senlin/so-clean-up-wp-seo/issues/67) 210 | 211 | Credits of all the above improvements go to [@Dibbyo456](https://github.com/Dibbyo456); many thanks Harry! 212 | 213 | = 3.12.0 = 214 | 215 | * release date August 17, 2019 216 | * remove Search Console submenu, redundant since Google has discontinued its Crawl Errors API; thanks [@Dibbyo456](https://github.com/senlin/so-clean-up-wp-seo/issues/69) 217 | 218 | = 3.11.1 = 219 | 220 | * release date July 27, 2019 221 | * refactor remove HTML comments from source code (frontend) with thanks to [Robert Went](https://www.robertwent.com/blog/remove-yoast-html-comments-in-version-11-0/) 222 | * hide upsell ad for local seo; addresses [issue #57](https://github.com/senlin/so-clean-up-wp-seo/issues/57) 223 | 224 | = 3.11.0 = 225 | 226 | * release date June 17, 2019 227 | * remove HTML comments from source code (frontend) 228 | 229 | = 3.10.1 = 230 | 231 | * release date April 27, 2019 232 | * hide outgoing internal links columns on edit Posts/Pages/CPTs screens; addresses [issue #55](https://github.com/senlin/so-clean-up-wp-seo/issues/55) 233 | 234 | = 3.10.0 = 235 | 236 | * release date April 22, 2019 237 | * add function that removes course sub menu, addresses [issue #54](https://github.com/senlin/so-clean-up-wp-seo/issues/54); thanks [Igor](https://github.com/artifex404) 238 | * hide SEO Scores dropdown filters as well as Readability Scores filter dropdown from edit Posts/Pages/CPTs; addresses [issue #43](https://github.com/senlin/so-clean-up-wp-seo/issues/43) 239 | * hide content/keyword score from Publish/Update Metabox on Edit Post/Page/CPT screen 240 | 241 | = 3.9.2 = 242 | 243 | * release date November 19, 2018 244 | * fix issue where Go Premium metabox option makes snippet preview box blank (https://wordpress.org/support/topic/go-premium-metabox-option-makes-snippet-preview-box-blank/); thanks for reporting @pxlar8 245 | 246 | = 3.9.1 = 247 | 248 | * release date October 29, 2018 249 | * fix hiding "Add related keyphrase" in metabox as it only serves as an ad for premium version 250 | 251 | = 3.9.0 = 252 | 253 | * release date October 28, 2018 254 | * hide new readability "features" of Post/Page metabox incl. "Add related keyphrase" menu as it is nothing more than an ad for premium version 255 | * update hide Go Premium rules 256 | * compatible with ClassicPress 1.0.0 257 | 258 | = 3.8.1 = 259 | 260 | * release date September 25, 2018 261 | * refactor options to ensure that additional settings will have default values. Fixes [issue #44](https://github.com/senlin/so-clean-up-wp-seo/issues/44) 262 | 263 | = 3.8.0 = 264 | 265 | * release date September 20, 2018 266 | * add option to hide the Premium ad that shows after a Post, Page or Taxonomy is deleted (see [issue #44](https://github.com/senlin/so-clean-up-wp-seo/issues/44)) 267 | 268 | = 3.7.0 = 269 | 270 | * release date September 2, 2018 271 | * add option to hide the check Configuration wizard box that shows on top of most admin screens 272 | * removed option to hide Post/Page content analysis incl. content/keyword score, because it can now be turned off in the Features tab of the General Settings of Yoast SEO 273 | * removed option to hide "add keyword box" (which is an ad for Premium), because it can now be turned off from within Yoast SEO Features tab 274 | * make flow of Setting page a little more clear 275 | 276 | = 3.6.0 = 277 | 278 | * release date June 11, 2018 279 | * address issues [#40](https://github.com/senlin/so-clean-up-wp-seo/issues/40) 280 | * NEW: remove primary category feature 281 | * NEW: hide SEO settings on individual profile page 282 | * remove option to hide red star for Premium submenu as there doesn't seem to be a red star anymore 283 | * NEW: hide Premium submenu in its entirety 284 | * NEW: hide "Go Premium" metabox on edit Post/Page screens 285 | * update hide help center ads 286 | 287 | = 3.5.0 = 288 | 289 | * release date January 2, 2018 290 | * fix issue #37 291 | * remove Github Branch in header info 292 | * change link to personal LI profile 293 | 294 | = 3.4.1 = 295 | 296 | * release date October 25, 2017 297 | * add `!important` to CSS rule to enforce it 298 | 299 | = 3.4.0 = 300 | 301 | * release date October 25, 2017 302 | * change hiding of sidebar ads from `visibility: hidden` to `display: none` to avoid conflict with screen width 303 | 304 | = 3.3.0 = 305 | 306 | * release date October 10, 2017 307 | * adjust the settings of Help Center that received overhaul in Yoast SEO 5.6 308 | * updated links due to renewal of SO WP website 309 | 310 | = 3.2.1 = 311 | 312 | * release date September 25, 2017 313 | * modified issue counter of sidebar which was showing orange background again 314 | 315 | = 3.2.0 = 316 | 317 | * release date August 25, 2017 318 | * hide Upsell Notice in social tab of Yoast Post/Page metabox 319 | * styling adjustments settings page 320 | 321 | = 3.1.0 = 322 | 323 | * release date July 25, 2017 324 | * hide the Premium Upsell Admin Block that was introduced in version 5.1 (of Yoast SEO) and shows in the entire Yoast SEO backend 325 | 326 | = 3.0.0 = 327 | 328 | * release date April 6, 2017 329 | * IMPORTANT: as this is a major release, most likely you will need to save the settings again; apologies for any inconvenience. 330 | * another massive rewrite by [Andy Fragen](https://github.com/afragen); big thank you Andy who now also has become an _official_ contributor to the plugin! 331 | * rewrite of settings to single array, making it the same for single site and multisite installs 332 | * use better capabilities for both single site and mulitsite 333 | * update for WordPress Coding Standards (DocBlock fixes) 334 | * fix uninstall to use `$wpdb->prepare()`, necessary for potential security issues 335 | * add remove admin bar menu option back (removed since v2.5.0) to make it easier for Superadmin in Multisite setup to remove it globally 336 | * set defaults from defaults listed in `get_defaults()` 337 | * change radio to checkbox_multi 338 | * fix for errors on update 339 | * fix checkbox_multi options to use in_array 340 | * fix need to check empty not in_array 341 | * add plugin's location on Github to make plugin suitable for use with Github Updater by @afragen 342 | * update settings page text 343 | * update admin styling 344 | * update screenshot-1 345 | * update readme.txt 346 | 347 | = 2.6.1 = 348 | 349 | * release date 2017.3.31 350 | * revert admin columns settings that were changed in v2.6.0 (last week): checkboxes return to select multiple options, title, meta description and focus keyword can be selected again for "removal" and additional checkbox for readability column 351 | * remove [forgotten about nag setting](https://wordpress.org/support/topic/i-have-updated-to-2-6-0-but-still-see-setting-for-about-nag/) 352 | * update readme.txt 353 | 354 | = 2.6.0 = 355 | 356 | * release date 2017.3.24 357 | * add option to hide Readability column on Posts/Pages screens 358 | * update hide email support (see 2.5.5), all tabs have a different class, so need more CSS rules to hide them 359 | * update robots nag 360 | * reintroduce the setting to hide the tagline nag, which was removed in 2.1.1 361 | * modify hide add keyword button in edit Post/Page screens to give remaining tab enough width to show entire text "Enter your focus keyword" 362 | * clarify text Content (Readability)/Keyword (SEO) Score 363 | * edit setting admin columns from 4 to 2 (SEO score and Readability score) and make it radio button option instead of checkboxes; thanks to [Curtis](https://github.com/soaro77) for [bringing it to our attention](https://github.com/senlin/so-clean-up-wp-seo/issues/23) 364 | * remove hide about nag as it no longer is a site-wide nag 365 | * update readme.txt 366 | 367 | = 2.5.5 = 368 | 369 | * release date 2017.2.28 (triggered by release of Yoast SEO 4.4) 370 | * hide the email support of the help center as it is a premium-only feature and therefore an "ad in disguise" 371 | 372 | = 2.5.4 = 373 | 374 | * Happy Holidays! 375 | * release date 2016.12.22 (triggered by release of Yoast SEO 4.0) 376 | * fix: change robots nag hiding via settings instead of globally 377 | * improvement: content analysis - hide readability tab 378 | * improvement: upsell notice: hide entire notifications box 379 | * add FAQ 380 | 381 | = 2.5.3 = 382 | 383 | * release date 2016.11.29 (triggered by release of Yoast SEO 3.9) 384 | * hide "Go Premium" text from adminbar dropdown 385 | * hide dismissed notices and warnings in Yoast SEO Dashboard 386 | * new setting: globally hide upsell notice in Yoast SEO Dashboard 387 | 388 | = 2.5.2 = 389 | 390 | * release date 2016.10.11 (triggered by release of Yoast SEO 3.7) 391 | * once again hide red premium star, this time from the opposite side of the metabox on the Edit Post/Page screen 392 | 393 | = 2.5.1 = 394 | 395 | * release date 2016.10.09 396 | * add rule to hide additional star tab of Yoast SEO metabox 397 | 398 | = 2.5.0 = 399 | 400 | * release date 2016.10.06 401 | * remove tour setting (redundant since v3.6 of Yoast SEO) 402 | * remove adminbar setting (redundant since v3.6 of Yoast SEO) 403 | * add new setting that hides the red star behind the "Go Premium" submenu that was added in v3.6 of Yoast SEO (it is probably necessary to save the settings page for this change to take effect). Thanks to Jake Jackson for reporting [this issue](https://github.com/senlin/so-clean-up-wp-seo/issues/19). 404 | 405 | = 2.4.0 = 406 | 407 | * release date 2016.08.13 408 | * with a BIG THANK YOU to [Andy Fragen](https://github.com/afragen) who made the plugin fully Multisite compatible and therewith we have been able to finally close [this issue](https://github.com/senlin/so-clean-up-wp-seo/issues/4). 409 | * Andy also cleaned up some misc spacing and refactored part of the code for it to work smoother. People interested can see the full [PR](https://github.com/senlin/so-clean-up-wp-seo/pull/16). 410 | * tested with WP version 4.6 411 | 412 | = 2.3.0 = 413 | 414 | * release date 2016.06.20 triggered by changes made with version 3.3 of the Yoast SEO plugin 415 | * hide coloured ball of content analysis also from metabox tab (edit Post/Page screens) 416 | * substitute hide wpseo-score traffic light (v1.7.4) with hide content and SEO score (Yoast SEO 3.3.0), thanks to [Andrea Balzarini](https://github.com/andrebalza) [issue 15](https://github.com/senlin/so-clean-up-wp-seo/pull/15), because "a SEO plugin telling you that your content is poor while saving a new post, is not just nagging, but offensive too" 417 | * hide yoast-issue-counter "enhancement" introduced in Yoast SEO 3.3 from adminbar and sidebar 418 | * move minimum WordPress version up to 4.3 419 | 420 | = 2.2.0 = 421 | 422 | * release date 2016.04.21 triggered by changes made with version 3.2 of the Yoast SEO plugin 423 | * hide the ad for the premium version in the help center or hide the whole help center (added to v3.2 of Yoast SEO plugin) 424 | * tested up to WP 4.5 425 | 426 | = 2.1.0 = 427 | 428 | * release date 2016.03.02 triggered by changes made with version 3.1 of the Yoast SEO plugin 429 | * simplify the CSS rules and add the rule to hide the seo-score column on taxonomies (added to v3.1.0 of Yoast SEO plugin) 430 | * remove option to hide tagline nag (temporarily disabled in v3.1 of Yoast SEO plugin) 431 | * partly remove option to hide robots nag (partly temporarily disabled in v3.1 of Yoast SEO plugin) 432 | * remove option to hide GSC nag (temporarily disabled in v3.1 of Yoast SEO plugin) 433 | * remove option to hide recalculate nag (temporarily disabled in v3.1 of Yoast SEO plugin) 434 | * adjust readme file 435 | 436 | 437 | = 2.0.2 = 438 | 439 | * release date 2016.02.26 440 | * add translator details Dutch language file 441 | * update readme files (text and tags) 442 | * PR [#11](https://github.com/senlin/so-clean-up-wp-seo/pull/11) add empty array as default for `get_option cuws_hide_admin_columns` to avoid warnings form subsequent `in_array` checks - credits [Ronny Myhre Njaastad](https://github.com/ronnymn) 443 | * remove whitespace 444 | 445 | = 2.0.1 = 446 | 447 | * release date 2016.02.05 448 | * include text-domain in plugin header which I forgot to do in the 2.0.0 release; apologies 449 | 450 | = 2.0.0 = 451 | 452 | * release date 2016.02.04 453 | * complete rewrite of the plugin 454 | * new Settings page to fine tune what is hidden/removed to your liking 455 | * new screenshots 456 | * tested up to WP 4.4.2 457 | 458 | = 1.8.0 = 459 | 460 | * release date 2016.01.28 461 | * name change to avoid "Yoast" trademark violation 462 | 463 | = 1.7.5 = 464 | 465 | * release date 2015.12.26 466 | * remove SEO score algorithm recalculate nag 467 | 468 | = 1.7.4 = 469 | 470 | * release date 2015.11.19 471 | * remove wpseo-score traffic light next to Move to trash on Edit Post/Page screen 472 | 473 | = 1.7.3 = 474 | 475 | * release date 2015.11.19 476 | * version 3.0 of Yoast SEO has introduced a cool new UI for the Edit screens. This also shows a + icon and when clicking that, you'll have a big fat ad in your face. This is a premium feature and the only function of the + icon therefore is to irritate you with an ad. We have therefore made it invisible. 477 | * tested up to WP 4.4 478 | * adjust readme files 479 | 480 | = 1.7.2 = 481 | 482 | * release date 2015.09.30 483 | * [BUG FIX] fix bug that slipped in (forgot to remove) 1.7.1 release, thanks for the [report](https://wordpress.org/support/topic/171-update-problem) [@stansbury](https://wordpress.org/support/profile/stansbury) 484 | 485 | = 1.7.1 = 486 | 487 | * release date 2015.09.30 488 | * remove function that checks whether Yoast SEO has been installed; reason is to simplify things a bit. 489 | * adjust readme files 490 | 491 | = 1.7.0 = 492 | 493 | * release date 2015.09.16 494 | * remove yst_opengraph_image_warning nag that was added to Yoast SEO 2.1, but we never noticed it before. In the changelog it has been described as "validation error", which of course is nonsense, because the world is larger than social media. The nag manifests itself by placing thick red borders around your Featured Image as well as a red-bordered warning message when your Featured Image is smaller than 200x200 pixels. 495 | * change function name 496 | * add screenshot of before/after yst_opengraph_image_warning nag 497 | * adjust readme files 498 | 499 | = 1.6.0 = 500 | 501 | * release date 2015.08.07 502 | * remove GSC (Google Search Console) nag that was introduced in Yoast SEO 2.3.3 503 | 504 | = 1.5.0 = 505 | 506 | * release date 2015.07.22 507 | * remove overview dashboard widget that was introduced in Yoast SEO 2.3 508 | * change plugin name to reflect the name-change of the plugin it cleans up for ([WordPress SEO became Yoast SEO](https://yoast.com/yoast-seo-2-3/)) 509 | 510 | = 1.4.0 = 511 | 512 | * release date 2015.06.17 513 | * remove updated nag (introduced with Yoast SEO version 2.2.1) 514 | * remove previous so_cuws_remove_about_tour() function that has become redundant from Yoast SEO 2.2.1 onwards; replaced with with so_cuws_ignore_tour() function 515 | 516 | = 1.3.2.1 = 517 | 518 | * release date 2015.05.15 519 | * Clean up white space 520 | 521 | = 1.3.2 = 522 | 523 | * release date 2015.05.14 524 | * Fix issue that WP SEO columns were still showing on Edit Posts/Pages pages 525 | 526 | = 1.3.1 = 527 | 528 | * release date 2015.05.01 529 | * Added styling to remove Tour Intro and button to start tour 530 | * Added screenshots 531 | * Removed redundant dashboard widget function 532 | 533 | = 1.3.0 = 534 | 535 | * release date 2015.04.30 536 | * Added function to remove Yoast SEO Settings from Admin Bar, inspired by comment of [Lee Rickler](https://profiles.wordpress.org/lee-rickler/) in discussion on Google+ (no longer available) 537 | * put code actions/filters in order 538 | 539 | = 1.2.0 = 540 | 541 | * release date 2015.04.30 542 | * Release on wordpress.org Repo 543 | 544 | = 1.1.0 = 545 | 546 | * release date 2015.04.27 547 | * Release version 548 | * banner image (in assets folder) by [Leigh Kendell](https://unsplash.com/leighkendell) 549 | 550 | = 1.0.0 = 551 | 552 | * release date 2015.04.24 553 | * Initial plugin [code snippet](https://github.com/senlin/Code-Snippets/blob/0ae24e6fc069efe26e52007c05c7375012ee688a/Functions/Admin-Dashboard/remove-yoast-crap.php) 554 | 555 | == Upgrade Notice == 556 | 557 | = 3.8.0 = 558 | 559 | * new option that hides Post/Page/Taxonomy Deletion Premium Ad has been added, check settings of Hide SEO Bloat if you like it hidden 560 | 561 | = 3.7.0 = 562 | 563 | * new option that hides "check configuration wizard"-box has been added, check settings of Hide SEO Bloat if you like it hidden 564 | 565 | = 2.6.0 = 566 | 567 | * As some settings have changed, it is probably necessary to save the settings page for these changes to take effect 568 | 569 | = 2.5.0 = 570 | 571 | * To hide the red star behind the new "Go Premium" submenu, it is probably necessary to save the settings page for this change to take effect 572 | 573 | = 2.0.0 = 574 | 575 | * Version 2.0.0 is a complete rewrite of the SO Hide SEO Bloat plugin. Please visit the Settings page after you have updated to this version, so you can fine tune what is hidden/removed. 576 | 577 | = 1.8.0 = 578 | 579 | * name change to avoid "Yoast" trademark violation 580 | 581 | = 1.5.0 = 582 | 583 | * We have changed the name of our plugin to reflect the name change of the plugin it cleans up after 584 | 585 | = 1.4.0 = 586 | 587 | * Version 2.2.1 of the Yoast SEO plugin changes a lot of things around. The automatic redirect to the plugin's About page is no longer, so we have removed the function that disables it. The new version introduced an updated nag that doesn't let itself be dismissed easily, so we have simply hidden it altogether. The super irritating balloon to follow the intro tour was back again too, we have countered that with a function that sets the user_meta of that intro tour to true, which means "seen". 588 | 589 | -------------------------------------------------------------------------------- /so-clean-up-wp-seo.php: -------------------------------------------------------------------------------- 1 | settings ) { 40 | $instance->settings = CUWS_Settings::instance( $instance ); 41 | } 42 | 43 | return $instance; 44 | } 45 | 46 | CUWS(); 47 | -------------------------------------------------------------------------------- /uninstall.php: -------------------------------------------------------------------------------- 1 | base_prefix . 'sitemeta' : $wpdb->base_prefix . 'options'; 26 | $column = is_multisite() ? 'meta_key' : 'option_name'; 27 | $delete_string = 'DELETE FROM ' . $table . ' WHERE ' . $column . ' LIKE %s LIMIT 1000'; 28 | $wpdb->query( $wpdb->prepare( $delete_string, array( '%cuws_%' ) ) ); 29 | --------------------------------------------------------------------------------