Version Description
Download this release
Release Info
Developer | jipmoors |
Plugin | Yoast SEO |
Version | 8.1 |
Comparing to | |
See all releases |
Code changes from version 8.0 to 8.1
- admin/capabilities/class-capability-manager-factory.php +1 -0
- admin/capabilities/class-capability-manager-vip.php +1 -0
- admin/capabilities/class-capability-manager-wp.php +1 -0
- admin/capabilities/class-capability-manager.php +1 -0
- admin/capabilities/class-capability-utils.php +1 -0
- admin/capabilities/class-register-capabilities.php +1 -0
- admin/class-admin-asset-analysis-worker-location.php +56 -0
- admin/class-admin-asset-manager.php +16 -2
- admin/class-admin-asset-yoast-components-l10n.php +1 -0
- admin/class-admin-init.php +1 -27
- admin/class-admin-user-profile.php +1 -0
- admin/class-admin-utils.php +5 -8
- admin/class-admin.php +2 -49
- admin/class-bulk-editor-list-table.php +0 -10
- admin/class-customizer.php +0 -1
- admin/class-export.php +0 -1
- admin/class-expose-shortlinks.php +31 -5
- admin/class-extension.php +0 -1
- admin/class-gutenberg-compatibility.php +1 -1
- admin/class-premium-benefits-for-synonyms-list.php +0 -54
- admin/class-premium-benefits-list.php +0 -53
- admin/class-primary-term-admin.php +91 -21
- admin/class-unsupported-php-message.php +0 -70
- admin/class-yoast-form.php +0 -1
- admin/class-yoast-plugin-conflict.php +0 -2
- admin/config-ui/class-configuration-page.php +0 -3
- admin/config-ui/components/interface-component.php +1 -0
- admin/config-ui/fields/class-field-connect-google-search-console.php +1 -0
- admin/config-ui/fields/class-field-environment.php +1 -0
- admin/config-ui/fields/class-field-mailchimp-signup.php +0 -1
- admin/config-ui/fields/class-field-multiple-authors.php +1 -0
- admin/formatter/class-metabox-formatter.php +0 -3
- admin/formatter/interface-metabox-formatter.php +0 -1
- admin/google_search_console/class-gsc-issues.php +1 -0
- admin/google_search_console/class-gsc.php +0 -1
- admin/import/plugins/class-import-platinum-seo-pack.php +0 -1
- admin/import/plugins/class-import-premium-seo-pack.php +0 -1
- admin/import/plugins/class-import-woothemes-seo.php +0 -1
- admin/interface-collection.php +0 -1
- admin/metabox/class-metabox-keyword-synonyms-config.php +0 -3
- admin/metabox/class-metabox-multiple-keywords-config.php +0 -3
- admin/metabox/class-metabox-null-tab.php +1 -0
- admin/metabox/class-metabox.php +16 -10
- admin/notifiers/class-post-type-archive-notification-handler.php +1 -1
- admin/onpage/class-onpage.php +1 -1
- admin/recalculate/class-recalculate.php +0 -1
- admin/roles/class-register-roles.php +1 -0
- admin/roles/class-role-manager-factory.php +1 -0
- admin/roles/class-role-manager-vip.php +1 -0
- admin/roles/class-role-manager.php +1 -0
- admin/statistics/class-statistics-integration.php +1 -0
- admin/taxonomy/class-taxonomy-columns.php +0 -2
- admin/taxonomy/class-taxonomy.php +8 -0
- admin/views/js-templates-primary-term.php +0 -9
- admin/views/tabs/metas/paper-content/post-type-content.php +1 -1
- admin/views/tabs/metas/paper-content/post_type/woocommerce-shop-page.php +1 -0
- css/dist/{admin-global-800-rtl.min.css → admin-global-810-rtl.min.css} +0 -0
- css/dist/{admin-global-800.min.css → admin-global-810.min.css} +0 -0
- css/dist/{adminbar-800-rtl.min.css → adminbar-810-rtl.min.css} +0 -0
- css/dist/{adminbar-800.min.css → adminbar-810.min.css} +0 -0
- css/dist/{alerts-800-rtl.min.css → alerts-810-rtl.min.css} +1 -1
- css/dist/{alerts-800.min.css → alerts-810.min.css} +1 -1
- css/dist/{dashboard-800-rtl.min.css → dashboard-810-rtl.min.css} +0 -0
- css/dist/{dashboard-800.min.css → dashboard-810.min.css} +0 -0
- css/dist/{edit-page-800-rtl.min.css → edit-page-810-rtl.min.css} +0 -0
- css/dist/{edit-page-800.min.css → edit-page-810.min.css} +0 -0
- css/dist/{featured-image-800-rtl.min.css → featured-image-810-rtl.min.css} +0 -0
- css/dist/{featured-image-800.min.css → featured-image-810.min.css} +0 -0
- css/dist/{filter-explanation-800-rtl.min.css → filter-explanation-810-rtl.min.css} +0 -0
- css/dist/{filter-explanation-800.min.css → filter-explanation-810.min.css} +0 -0
- css/dist/{inside-editor-800-rtl.min.css → inside-editor-810-rtl.min.css} +0 -0
- css/dist/{inside-editor-800.min.css → inside-editor-810.min.css} +0 -0
- css/dist/metabox-800-rtl.min.css +0 -1
- css/dist/metabox-800.min.css +0 -1
- css/dist/metabox-810-rtl.min.css +1 -0
- css/dist/metabox-810.min.css +1 -0
- css/dist/{metabox-primary-category-800-rtl.min.css → metabox-primary-category-810-rtl.min.css} +0 -0
- css/dist/{metabox-primary-category-800.min.css → metabox-primary-category-810.min.css} +0 -0
- css/dist/{search-appearance-800-rtl.min.css → search-appearance-810-rtl.min.css} +0 -0
- css/dist/{search-appearance-800.min.css → search-appearance-810.min.css} +0 -0
- css/dist/structured-data-blocks-800-rtl.min.css +0 -1
- css/dist/structured-data-blocks-800.min.css +0 -1
- css/dist/structured-data-blocks-810-rtl.min.css +1 -0
- css/dist/structured-data-blocks-810.min.css +1 -0
- css/dist/{toggle-switch-800-rtl.min.css → toggle-switch-810-rtl.min.css} +0 -0
- css/dist/{toggle-switch-800.min.css → toggle-switch-810.min.css} +0 -0
- css/dist/{wpseo-dismissible-800-rtl.min.css → wpseo-dismissible-810-rtl.min.css} +0 -0
- css/dist/{wpseo-dismissible-800.min.css → wpseo-dismissible-810.min.css} +0 -0
- css/dist/{yoast-components-800-rtl.min.css → yoast-components-810-rtl.min.css} +1 -1
- css/dist/{yoast-components-800.min.css → yoast-components-810.min.css} +1 -1
- css/dist/{yoast-extensions-800-rtl.min.css → yoast-extensions-810-rtl.min.css} +0 -0
- css/dist/{yoast-extensions-800.min.css → yoast-extensions-810.min.css} +0 -0
- css/dist/{yst_plugin_tools-800-rtl.min.css → yst_plugin_tools-810-rtl.min.css} +0 -0
- css/dist/{yst_plugin_tools-800.min.css → yst_plugin_tools-810.min.css} +0 -0
- css/dist/{yst_seo_score-800-rtl.min.css → yst_seo_score-810-rtl.min.css} +0 -0
- css/dist/{yst_seo_score-800.min.css → yst_seo_score-810.min.css} +0 -0
- frontend/class-breadcrumbs.php +0 -4
- frontend/class-opengraph-image.php +0 -1
- frontend/class-opengraph.php +1 -3
- frontend/class-twitter.php +0 -2
- {admin → inc}/class-structured-data-blocks.php +15 -1
- inc/class-upgrade.php +1 -0
- inc/class-wpseo-admin-bar-menu.php +20 -5
- inc/class-wpseo-content-images.php +1 -0
- inc/class-wpseo-custom-fields.php +2 -1
- inc/class-wpseo-image-utils.php +1 -2
- inc/class-wpseo-meta.php +0 -11
- inc/class-wpseo-replace-vars.php +1 -19
- inc/class-wpseo-shortlinker.php +1 -0
- inc/class-wpseo-utils.php +0 -1
- inc/language-utils.php +1 -0
- inc/options/class-wpseo-option-ms.php +0 -7
- inc/options/class-wpseo-option-social.php +0 -2
- inc/options/class-wpseo-option-titles.php +0 -3
- inc/options/class-wpseo-option-wpseo.php +0 -3
- inc/options/class-wpseo-option.php +0 -14
- inc/options/class-wpseo-options.php +1 -1
- inc/options/class-wpseo-taxonomy-meta.php +0 -7
- inc/sitemaps/class-sitemap-timezone.php +1 -0
- inc/sitemaps/class-sitemaps-cache.php +0 -1
- inc/structured-data-blocks/class-faq-block.php +124 -0
- inc/structured-data-blocks/class-how-to-block.php +115 -0
- js/dist/analysis-800.min.js +0 -13
admin/capabilities/class-capability-manager-factory.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Capability Manager Factory.
|
10 |
*/
|
11 |
class WPSEO_Capability_Manager_Factory {
|
|
|
12 |
/**
|
13 |
* Returns the Manager to use.
|
14 |
*
|
9 |
* Capability Manager Factory.
|
10 |
*/
|
11 |
class WPSEO_Capability_Manager_Factory {
|
12 |
+
|
13 |
/**
|
14 |
* Returns the Manager to use.
|
15 |
*
|
admin/capabilities/class-capability-manager-vip.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* VIP implementation of the Capability Manager.
|
10 |
*/
|
11 |
final class WPSEO_Capability_Manager_VIP extends WPSEO_Abstract_Capability_Manager {
|
|
|
12 |
/**
|
13 |
* Adds the registered capabilities to the system.
|
14 |
*
|
9 |
* VIP implementation of the Capability Manager.
|
10 |
*/
|
11 |
final class WPSEO_Capability_Manager_VIP extends WPSEO_Abstract_Capability_Manager {
|
12 |
+
|
13 |
/**
|
14 |
* Adds the registered capabilities to the system.
|
15 |
*
|
admin/capabilities/class-capability-manager-wp.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Default WordPress capability manager implementation.
|
10 |
*/
|
11 |
final class WPSEO_Capability_Manager_WP extends WPSEO_Abstract_Capability_Manager {
|
|
|
12 |
/**
|
13 |
* Adds the capabilities to the roles.
|
14 |
*
|
9 |
* Default WordPress capability manager implementation.
|
10 |
*/
|
11 |
final class WPSEO_Capability_Manager_WP extends WPSEO_Abstract_Capability_Manager {
|
12 |
+
|
13 |
/**
|
14 |
* Adds the capabilities to the roles.
|
15 |
*
|
admin/capabilities/class-capability-manager.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Capability Manager interface.
|
10 |
*/
|
11 |
interface WPSEO_Capability_Manager {
|
|
|
12 |
/**
|
13 |
* Registers a capability.
|
14 |
*
|
9 |
* Capability Manager interface.
|
10 |
*/
|
11 |
interface WPSEO_Capability_Manager {
|
12 |
+
|
13 |
/**
|
14 |
* Registers a capability.
|
15 |
*
|
admin/capabilities/class-capability-utils.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Capability Utils collection.
|
10 |
*/
|
11 |
class WPSEO_Capability_Utils {
|
|
|
12 |
/**
|
13 |
* Checks if the user has the proper capabilities.
|
14 |
*
|
9 |
* Capability Utils collection.
|
10 |
*/
|
11 |
class WPSEO_Capability_Utils {
|
12 |
+
|
13 |
/**
|
14 |
* Checks if the user has the proper capabilities.
|
15 |
*
|
admin/capabilities/class-register-capabilities.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Capabilities registration class.
|
10 |
*/
|
11 |
class WPSEO_Register_Capabilities implements WPSEO_WordPress_Integration {
|
|
|
12 |
/**
|
13 |
* Registers the hooks.
|
14 |
*
|
9 |
* Capabilities registration class.
|
10 |
*/
|
11 |
class WPSEO_Register_Capabilities implements WPSEO_WordPress_Integration {
|
12 |
+
|
13 |
/**
|
14 |
* Registers the hooks.
|
15 |
*
|
admin/class-admin-asset-analysis-worker-location.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Admin
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Represents a way to determine the analysis worker asset location.
|
10 |
+
*/
|
11 |
+
final class WPSEO_Admin_Asset_Analysis_Worker_Location implements WPSEO_Admin_Asset_Location {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* @var WPSEO_Admin_Asset_Location $asset_location.
|
15 |
+
*/
|
16 |
+
protected $asset_location;
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @var WPSEO_Admin_Asset $asset.
|
20 |
+
*/
|
21 |
+
protected $asset;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Constructs the location of the analysis worker asset.
|
25 |
+
*
|
26 |
+
* @param string $flat_version The flat version of the asset.
|
27 |
+
* @param string $name The name of the analysis worker asset.
|
28 |
+
*/
|
29 |
+
public function __construct( $flat_version = '', $name = 'analysis-worker' ) {
|
30 |
+
if ( $flat_version === '' ) {
|
31 |
+
$asset_manager = new WPSEO_Admin_Asset_Manager();
|
32 |
+
$flat_version = $asset_manager->flatten_version( WPSEO_VERSION );
|
33 |
+
}
|
34 |
+
|
35 |
+
$this->asset_location = WPSEO_Admin_Asset_Manager::create_default_location();
|
36 |
+
$this->asset = new WPSEO_Admin_Asset( array(
|
37 |
+
'name' => $name,
|
38 |
+
'src' => 'wp-seo-' . $name . '-' . $flat_version,
|
39 |
+
) );
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Determines the URL of the asset on the dev server.
|
44 |
+
*
|
45 |
+
* @param WPSEO_Admin_Asset $asset The asset to determine the URL for.
|
46 |
+
* @param string $type The type of asset. Usually JS or CSS.
|
47 |
+
*
|
48 |
+
* @return string The URL of the asset.
|
49 |
+
*/
|
50 |
+
public function get_url( WPSEO_Admin_Asset $asset = null, $type = WPSEO_Admin_Asset::TYPE_JS ) {
|
51 |
+
if ( $asset === null ) {
|
52 |
+
$asset = $this->asset;
|
53 |
+
}
|
54 |
+
return $this->asset_location->get_url( $asset, $type );
|
55 |
+
}
|
56 |
+
}
|
admin/class-admin-asset-manager.php
CHANGED
@@ -217,8 +217,8 @@ class WPSEO_Admin_Asset_Manager {
|
|
217 |
}
|
218 |
else {
|
219 |
if ( ! wp_script_is( self::PREFIX . 'lodash', 'registered' ) ) {
|
220 |
-
wp_register_script( self::PREFIX . 'lodash', plugins_url( 'js/vendor/lodash.min.js', WPSEO_FILE ) );
|
221 |
-
|
222 |
}
|
223 |
$backport_wp_dependencies[] = self::PREFIX . 'lodash';
|
224 |
}
|
@@ -246,6 +246,7 @@ class WPSEO_Admin_Asset_Manager {
|
|
246 |
'deps' => array(
|
247 |
'jquery',
|
248 |
self::PREFIX . 'wp-globals-backport',
|
|
|
249 |
),
|
250 |
),
|
251 |
array(
|
@@ -254,6 +255,7 @@ class WPSEO_Admin_Asset_Manager {
|
|
254 |
'deps' => array(
|
255 |
'jquery',
|
256 |
self::PREFIX . 'wp-globals-backport',
|
|
|
257 |
),
|
258 |
),
|
259 |
array(
|
@@ -335,6 +337,7 @@ class WPSEO_Admin_Asset_Manager {
|
|
335 |
self::PREFIX . 'wp-globals-backport',
|
336 |
self::PREFIX . 'analysis',
|
337 |
self::PREFIX . 'react-dependencies',
|
|
|
338 |
),
|
339 |
),
|
340 |
array(
|
@@ -344,6 +347,7 @@ class WPSEO_Admin_Asset_Manager {
|
|
344 |
self::PREFIX . 'replacevar-plugin',
|
345 |
self::PREFIX . 'wp-globals-backport',
|
346 |
self::PREFIX . 'analysis',
|
|
|
347 |
),
|
348 |
),
|
349 |
array(
|
@@ -352,6 +356,7 @@ class WPSEO_Admin_Asset_Manager {
|
|
352 |
'deps' => array(
|
353 |
self::PREFIX . 'react-dependencies',
|
354 |
self::PREFIX . 'analysis',
|
|
|
355 |
),
|
356 |
),
|
357 |
array(
|
@@ -407,6 +412,7 @@ class WPSEO_Admin_Asset_Manager {
|
|
407 |
'deps' => array(
|
408 |
'jquery',
|
409 |
self::PREFIX . 'wp-globals-backport',
|
|
|
410 |
),
|
411 |
),
|
412 |
array(
|
@@ -452,6 +458,7 @@ class WPSEO_Admin_Asset_Manager {
|
|
452 |
self::PREFIX . 'api',
|
453 |
'jquery',
|
454 |
self::PREFIX . 'wp-globals-backport',
|
|
|
455 |
),
|
456 |
),
|
457 |
array(
|
@@ -466,6 +473,10 @@ class WPSEO_Admin_Asset_Manager {
|
|
466 |
'name' => 'analysis',
|
467 |
'src' => 'analysis-' . $flat_version,
|
468 |
),
|
|
|
|
|
|
|
|
|
469 |
array(
|
470 |
'name' => 'structured-data-blocks',
|
471 |
'src' => 'wp-seo-structured-data-blocks-' . $flat_version,
|
@@ -559,6 +570,9 @@ class WPSEO_Admin_Asset_Manager {
|
|
559 |
array(
|
560 |
'name' => 'search-appearance',
|
561 |
'src' => 'search-appearance-' . $flat_version,
|
|
|
|
|
|
|
562 |
),
|
563 |
array(
|
564 |
'name' => 'structured-data-blocks',
|
217 |
}
|
218 |
else {
|
219 |
if ( ! wp_script_is( self::PREFIX . 'lodash', 'registered' ) ) {
|
220 |
+
wp_register_script( self::PREFIX . 'lodash-base', plugins_url( 'js/vendor/lodash.min.js', WPSEO_FILE ), array(), false, true );
|
221 |
+
wp_register_script( self::PREFIX . 'lodash', plugins_url( 'js/vendor/lodash-noconflict.js', WPSEO_FILE ), array( self::PREFIX . 'lodash-base' ), false, true );
|
222 |
}
|
223 |
$backport_wp_dependencies[] = self::PREFIX . 'lodash';
|
224 |
}
|
246 |
'deps' => array(
|
247 |
'jquery',
|
248 |
self::PREFIX . 'wp-globals-backport',
|
249 |
+
self::PREFIX . 'components',
|
250 |
),
|
251 |
),
|
252 |
array(
|
255 |
'deps' => array(
|
256 |
'jquery',
|
257 |
self::PREFIX . 'wp-globals-backport',
|
258 |
+
self::PREFIX . 'components',
|
259 |
),
|
260 |
),
|
261 |
array(
|
337 |
self::PREFIX . 'wp-globals-backport',
|
338 |
self::PREFIX . 'analysis',
|
339 |
self::PREFIX . 'react-dependencies',
|
340 |
+
self::PREFIX . 'components',
|
341 |
),
|
342 |
),
|
343 |
array(
|
347 |
self::PREFIX . 'replacevar-plugin',
|
348 |
self::PREFIX . 'wp-globals-backport',
|
349 |
self::PREFIX . 'analysis',
|
350 |
+
self::PREFIX . 'components',
|
351 |
),
|
352 |
),
|
353 |
array(
|
356 |
'deps' => array(
|
357 |
self::PREFIX . 'react-dependencies',
|
358 |
self::PREFIX . 'analysis',
|
359 |
+
self::PREFIX . 'components',
|
360 |
),
|
361 |
),
|
362 |
array(
|
412 |
'deps' => array(
|
413 |
'jquery',
|
414 |
self::PREFIX . 'wp-globals-backport',
|
415 |
+
self::PREFIX . 'components',
|
416 |
),
|
417 |
),
|
418 |
array(
|
458 |
self::PREFIX . 'api',
|
459 |
'jquery',
|
460 |
self::PREFIX . 'wp-globals-backport',
|
461 |
+
self::PREFIX . 'components',
|
462 |
),
|
463 |
),
|
464 |
array(
|
473 |
'name' => 'analysis',
|
474 |
'src' => 'analysis-' . $flat_version,
|
475 |
),
|
476 |
+
array(
|
477 |
+
'name' => 'components',
|
478 |
+
'src' => 'components-' . $flat_version,
|
479 |
+
),
|
480 |
array(
|
481 |
'name' => 'structured-data-blocks',
|
482 |
'src' => 'wp-seo-structured-data-blocks-' . $flat_version,
|
570 |
array(
|
571 |
'name' => 'search-appearance',
|
572 |
'src' => 'search-appearance-' . $flat_version,
|
573 |
+
'deps' => array(
|
574 |
+
self::PREFIX . 'components',
|
575 |
+
),
|
576 |
),
|
577 |
array(
|
578 |
'name' => 'structured-data-blocks',
|
admin/class-admin-asset-yoast-components-l10n.php
CHANGED
@@ -7,6 +7,7 @@
|
|
7 |
* Localizes JavaScript files.
|
8 |
*/
|
9 |
final class WPSEO_Admin_Asset_Yoast_Components_L10n {
|
|
|
10 |
/**
|
11 |
* Localizes the given script with the JavaScript translations.
|
12 |
*
|
7 |
* Localizes JavaScript files.
|
8 |
*/
|
9 |
final class WPSEO_Admin_Asset_Yoast_Components_L10n {
|
10 |
+
|
11 |
/**
|
12 |
* Localizes the given script with the JavaScript translations.
|
13 |
*
|
admin/class-admin-init.php
CHANGED
@@ -445,34 +445,8 @@ class WPSEO_Admin_Init {
|
|
445 |
* @return void
|
446 |
*/
|
447 |
public function unsupported_php_notice() {
|
448 |
-
$info_message = sprintf(
|
449 |
-
/* translators: 1: The strong opening tag; 2: The strong closing tag; 3: the Yoast SEO version that is dropping support; 4: The release date of the version of Yoast SEO that is dropping support; 5: The PHP version no longer being supported; */
|
450 |
-
__( '%1$sAction is needed%2$s: As of version %3$s, due to be released on %4$s, Yoast SEO will no longer work with PHP %5$s. Unfortunately, your site is running on PHP %5$s right now, so action is needed. Thankfully, you can update your PHP yourself.', 'wordpress-seo' ),
|
451 |
-
'<strong>',
|
452 |
-
'</strong>',
|
453 |
-
'7.7',
|
454 |
-
date_i18n( get_option( 'date_format' ), strtotime( '11-06-2018' ) ),
|
455 |
-
'5.2'
|
456 |
-
);
|
457 |
-
|
458 |
-
$unsupported_php_notification = new Yoast_Notification(
|
459 |
-
$info_message,
|
460 |
-
array(
|
461 |
-
'type' => Yoast_Notification::ERROR,
|
462 |
-
'id' => 'wpseo-dismiss-unsupported-php',
|
463 |
-
'capabilities' => 'wpseo_manage_options',
|
464 |
-
)
|
465 |
-
);
|
466 |
-
|
467 |
$notification_center = Yoast_Notification_Center::get();
|
468 |
-
|
469 |
-
if ( WPSEO_Admin_Utils::is_supported_php_version_installed() === false ) {
|
470 |
-
$notification_center->add_notification( $unsupported_php_notification );
|
471 |
-
|
472 |
-
return;
|
473 |
-
}
|
474 |
-
|
475 |
-
$notification_center->remove_notification( $unsupported_php_notification );
|
476 |
}
|
477 |
|
478 |
/**
|
445 |
* @return void
|
446 |
*/
|
447 |
public function unsupported_php_notice() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
448 |
$notification_center = Yoast_Notification_Center::get();
|
449 |
+
$notification_center->remove_notification_by_id( 'wpseo-dismiss-unsupported-php' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
450 |
}
|
451 |
|
452 |
/**
|
admin/class-admin-user-profile.php
CHANGED
@@ -10,6 +10,7 @@
|
|
10 |
* Customizes user profile.
|
11 |
*/
|
12 |
class WPSEO_Admin_User_Profile {
|
|
|
13 |
/**
|
14 |
* Class constructor.
|
15 |
*/
|
10 |
* Customizes user profile.
|
11 |
*/
|
12 |
class WPSEO_Admin_User_Profile {
|
13 |
+
|
14 |
/**
|
15 |
* Class constructor.
|
16 |
*/
|
admin/class-admin-utils.php
CHANGED
@@ -54,7 +54,7 @@ class WPSEO_Admin_Utils {
|
|
54 |
* @return string The link to the plugin install. Returns the title if the plugin is deemed a Premium product.
|
55 |
*/
|
56 |
public static function get_install_link( $plugin ) {
|
57 |
-
$install_url =
|
58 |
|
59 |
if ( $install_url === '' || ( isset( $plugin['premium'] ) && $plugin['premium'] === true ) ) {
|
60 |
return $plugin['title'];
|
@@ -65,20 +65,17 @@ class WPSEO_Admin_Utils {
|
|
65 |
$install_url,
|
66 |
$plugin['title']
|
67 |
);
|
68 |
-
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
* Determines whether or not the user has an invalid version of PHP installed.
|
73 |
*
|
|
|
|
|
74 |
* @return bool Whether or not PHP 5.2 or lower is installed.
|
75 |
*/
|
76 |
public static function is_supported_php_version_installed() {
|
77 |
-
|
78 |
-
|
79 |
-
$checker->addRequirement( Whip_VersionRequirement::fromCompareString( 'php', '>=5.3' ) );
|
80 |
-
$checker->check();
|
81 |
-
|
82 |
-
return $checker->hasMessages() === false;
|
83 |
}
|
84 |
}
|
54 |
* @return string The link to the plugin install. Returns the title if the plugin is deemed a Premium product.
|
55 |
*/
|
56 |
public static function get_install_link( $plugin ) {
|
57 |
+
$install_url = self::get_install_url( $plugin['slug'] );
|
58 |
|
59 |
if ( $install_url === '' || ( isset( $plugin['premium'] ) && $plugin['premium'] === true ) ) {
|
60 |
return $plugin['title'];
|
65 |
$install_url,
|
66 |
$plugin['title']
|
67 |
);
|
|
|
68 |
}
|
69 |
|
70 |
/**
|
71 |
* Determines whether or not the user has an invalid version of PHP installed.
|
72 |
*
|
73 |
+
* @deprecated 8.1
|
74 |
+
*
|
75 |
* @return bool Whether or not PHP 5.2 or lower is installed.
|
76 |
*/
|
77 |
public static function is_supported_php_version_installed() {
|
78 |
+
// Intentionally left blank.
|
79 |
+
return true;
|
|
|
|
|
|
|
|
|
80 |
}
|
81 |
}
|
admin/class-admin.php
CHANGED
@@ -49,9 +49,6 @@ class WPSEO_Admin {
|
|
49 |
|
50 |
if ( WPSEO_Metabox::is_post_overview( $pagenow ) || WPSEO_Metabox::is_post_edit( $pagenow ) ) {
|
51 |
$this->admin_features['primary_category'] = new WPSEO_Primary_Term_Admin();
|
52 |
-
if ( defined( 'YOAST_FEATURE_GUTENBERG_STRUCTURED_DATA_BLOCKS' ) ) {
|
53 |
-
$this->admin_features['structured_data_blocks'] = new WPSEO_Structured_Data_Blocks();
|
54 |
-
}
|
55 |
}
|
56 |
|
57 |
if ( filter_input( INPUT_GET, 'page' ) === 'wpseo_tools' && filter_input( INPUT_GET, 'tool' ) === null ) {
|
@@ -74,8 +71,6 @@ class WPSEO_Admin {
|
|
74 |
|
75 |
add_action( 'admin_init', array( $this, 'map_manage_options_cap' ) );
|
76 |
|
77 |
-
add_action( 'admin_init', array( $this, 'check_php_version' ) );
|
78 |
-
|
79 |
WPSEO_Sitemaps_Cache::register_clear_on_option_update( 'wpseo' );
|
80 |
WPSEO_Sitemaps_Cache::register_clear_on_option_update( 'home' );
|
81 |
|
@@ -323,54 +318,12 @@ class WPSEO_Admin {
|
|
323 |
/**
|
324 |
* Initializes Whip to show a notice for outdated PHP versions.
|
325 |
*
|
326 |
-
* @
|
327 |
*
|
328 |
* @return void
|
329 |
*/
|
330 |
public function check_php_version() {
|
331 |
-
//
|
332 |
-
if ( ! current_user_can( 'manage_options' ) ) {
|
333 |
-
return;
|
334 |
-
}
|
335 |
-
|
336 |
-
// Check if the user is running PHP 5.2.
|
337 |
-
if ( WPSEO_Admin_Utils::is_supported_php_version_installed() === false ) {
|
338 |
-
$this->show_unsupported_php_message();
|
339 |
-
|
340 |
-
return;
|
341 |
-
}
|
342 |
-
|
343 |
-
/*
|
344 |
-
* The Whip message shouldn't be shown from WordPress 5.0.0 and higher because
|
345 |
-
* that version introduces Serve Happy which is almost similar to Whip.
|
346 |
-
*/
|
347 |
-
$minimal_wp_version = '5.0.0';
|
348 |
-
if ( version_compare( $GLOBALS['wp_version'], $minimal_wp_version, '>=' ) ) {
|
349 |
-
return;
|
350 |
-
}
|
351 |
-
|
352 |
-
if ( ! $this->on_dashboard_page() ) {
|
353 |
-
return;
|
354 |
-
}
|
355 |
-
|
356 |
-
whip_wp_check_versions( array(
|
357 |
-
'php' => '>=5.4',
|
358 |
-
) );
|
359 |
-
}
|
360 |
-
|
361 |
-
/**
|
362 |
-
* Creates a new message to display regarding the usage of PHP 5.2 (or lower).
|
363 |
-
*
|
364 |
-
* @return void
|
365 |
-
*/
|
366 |
-
protected function show_unsupported_php_message() {
|
367 |
-
$presenter = new Whip_WPMessagePresenter(
|
368 |
-
new WPSEO_Unsupported_PHP_Message(),
|
369 |
-
new Whip_MessageDismisser( time(), ( WEEK_IN_SECONDS * 4 ), new Whip_WPDismissOption() ),
|
370 |
-
__( 'Remind me again in 4 weeks.', 'wordpress-seo' )
|
371 |
-
);
|
372 |
-
|
373 |
-
$presenter->register_hooks();
|
374 |
}
|
375 |
|
376 |
/**
|
49 |
|
50 |
if ( WPSEO_Metabox::is_post_overview( $pagenow ) || WPSEO_Metabox::is_post_edit( $pagenow ) ) {
|
51 |
$this->admin_features['primary_category'] = new WPSEO_Primary_Term_Admin();
|
|
|
|
|
|
|
52 |
}
|
53 |
|
54 |
if ( filter_input( INPUT_GET, 'page' ) === 'wpseo_tools' && filter_input( INPUT_GET, 'tool' ) === null ) {
|
71 |
|
72 |
add_action( 'admin_init', array( $this, 'map_manage_options_cap' ) );
|
73 |
|
|
|
|
|
74 |
WPSEO_Sitemaps_Cache::register_clear_on_option_update( 'wpseo' );
|
75 |
WPSEO_Sitemaps_Cache::register_clear_on_option_update( 'home' );
|
76 |
|
318 |
/**
|
319 |
* Initializes Whip to show a notice for outdated PHP versions.
|
320 |
*
|
321 |
+
* @deprecated 8.1
|
322 |
*
|
323 |
* @return void
|
324 |
*/
|
325 |
public function check_php_version() {
|
326 |
+
// Intentionally left empty.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
327 |
}
|
328 |
|
329 |
/**
|
admin/class-bulk-editor-list-table.php
CHANGED
@@ -122,7 +122,6 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
122 |
$this->page_url = "&nonce={$this->nonce}&type={$this->page_type}#top#{$this->page_type}";
|
123 |
|
124 |
$this->populate_editable_post_types();
|
125 |
-
|
126 |
}
|
127 |
|
128 |
/**
|
@@ -207,7 +206,6 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
207 |
}
|
208 |
}
|
209 |
|
210 |
-
|
211 |
/**
|
212 |
* Will shown the navigation for the table like pagenavigation and pagefilter;
|
213 |
*
|
@@ -278,7 +276,6 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
278 |
return $subquery;
|
279 |
}
|
280 |
|
281 |
-
|
282 |
/**
|
283 |
* @return array
|
284 |
*/
|
@@ -364,7 +361,6 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
364 |
return $status_links;
|
365 |
}
|
366 |
|
367 |
-
|
368 |
/**
|
369 |
* @param string $which Table nav location (such as top).
|
370 |
*/
|
@@ -488,7 +484,6 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
488 |
$_GET['post_status'] = $current_status;
|
489 |
$_GET['orderby'] = $current_order['orderby'];
|
490 |
$_GET['order'] = $current_order['order'];
|
491 |
-
|
492 |
}
|
493 |
|
494 |
/**
|
@@ -513,7 +508,6 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
513 |
|
514 |
// Get the metadata for the current items ($this->items).
|
515 |
$this->get_meta_data();
|
516 |
-
|
517 |
}
|
518 |
|
519 |
/**
|
@@ -605,7 +599,6 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
605 |
'per_page' => $per_page,
|
606 |
'offset' => ( $paged - 1 ) * $per_page,
|
607 |
);
|
608 |
-
|
609 |
}
|
610 |
|
611 |
/**
|
@@ -845,7 +838,6 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
845 |
$return .= $this->row_actions( $actions );
|
846 |
|
847 |
return $return;
|
848 |
-
|
849 |
}
|
850 |
|
851 |
/**
|
@@ -942,7 +934,6 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
942 |
|
943 |
// Little housekeeping.
|
944 |
unset( $post_ids, $meta_data );
|
945 |
-
|
946 |
}
|
947 |
|
948 |
/**
|
@@ -992,7 +983,6 @@ class WPSEO_Bulk_List_Table extends WP_List_Table {
|
|
992 |
foreach ( $meta_data as $row ) {
|
993 |
$this->meta_data[ $row->post_id ][ $row->meta_key ] = $row->meta_value;
|
994 |
}
|
995 |
-
|
996 |
}
|
997 |
|
998 |
/**
|
122 |
$this->page_url = "&nonce={$this->nonce}&type={$this->page_type}#top#{$this->page_type}";
|
123 |
|
124 |
$this->populate_editable_post_types();
|
|
|
125 |
}
|
126 |
|
127 |
/**
|
206 |
}
|
207 |
}
|
208 |
|
|
|
209 |
/**
|
210 |
* Will shown the navigation for the table like pagenavigation and pagefilter;
|
211 |
*
|
276 |
return $subquery;
|
277 |
}
|
278 |
|
|
|
279 |
/**
|
280 |
* @return array
|
281 |
*/
|
361 |
return $status_links;
|
362 |
}
|
363 |
|
|
|
364 |
/**
|
365 |
* @param string $which Table nav location (such as top).
|
366 |
*/
|
484 |
$_GET['post_status'] = $current_status;
|
485 |
$_GET['orderby'] = $current_order['orderby'];
|
486 |
$_GET['order'] = $current_order['order'];
|
|
|
487 |
}
|
488 |
|
489 |
/**
|
508 |
|
509 |
// Get the metadata for the current items ($this->items).
|
510 |
$this->get_meta_data();
|
|
|
511 |
}
|
512 |
|
513 |
/**
|
599 |
'per_page' => $per_page,
|
600 |
'offset' => ( $paged - 1 ) * $per_page,
|
601 |
);
|
|
|
602 |
}
|
603 |
|
604 |
/**
|
838 |
$return .= $this->row_actions( $actions );
|
839 |
|
840 |
return $return;
|
|
|
841 |
}
|
842 |
|
843 |
/**
|
934 |
|
935 |
// Little housekeeping.
|
936 |
unset( $post_ids, $meta_data );
|
|
|
937 |
}
|
938 |
|
939 |
/**
|
983 |
foreach ( $meta_data as $row ) {
|
984 |
$this->meta_data[ $row->post_id ][ $row->meta_key ] = $row->meta_value;
|
985 |
}
|
|
|
986 |
}
|
987 |
|
988 |
/**
|
admin/class-customizer.php
CHANGED
@@ -56,7 +56,6 @@ class WPSEO_Customizer {
|
|
56 |
'active_callback' => array( $this, 'breadcrumbs_active_callback' ),
|
57 |
)
|
58 |
);
|
59 |
-
|
60 |
}
|
61 |
|
62 |
/**
|
56 |
'active_callback' => array( $this, 'breadcrumbs_active_callback' ),
|
57 |
)
|
58 |
);
|
|
|
59 |
}
|
60 |
|
61 |
/**
|
admin/class-export.php
CHANGED
@@ -50,7 +50,6 @@ class WPSEO_Export {
|
|
50 |
*/
|
51 |
private $dir = array();
|
52 |
|
53 |
-
|
54 |
/**
|
55 |
* Class constructor
|
56 |
*
|
50 |
*/
|
51 |
private $dir = array();
|
52 |
|
|
|
53 |
/**
|
54 |
* Class constructor
|
55 |
*
|
admin/class-expose-shortlinks.php
CHANGED
@@ -11,21 +11,47 @@
|
|
11 |
class WPSEO_Expose_Shortlinks implements WPSEO_WordPress_Integration {
|
12 |
|
13 |
/**
|
14 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
*/
|
16 |
public function register_hooks() {
|
17 |
add_filter( 'wpseo_admin_l10n', array( $this, 'expose_shortlinks' ) );
|
18 |
}
|
19 |
|
20 |
/**
|
|
|
|
|
21 |
* @param array $input The array to add shortlinks to.
|
22 |
*
|
23 |
-
* @return array
|
24 |
*/
|
25 |
public function expose_shortlinks( $input ) {
|
26 |
-
$
|
27 |
-
|
28 |
-
|
29 |
|
30 |
return $input;
|
31 |
}
|
11 |
class WPSEO_Expose_Shortlinks implements WPSEO_WordPress_Integration {
|
12 |
|
13 |
/**
|
14 |
+
* @var array Array containing the keys and shortlinks.
|
15 |
+
*/
|
16 |
+
private $shortlinks = array(
|
17 |
+
'shortlinks.focus_keyword_info' => 'https://yoa.st/focus-keyword',
|
18 |
+
'shortlinks.snippet_preview_info' => 'https://yoa.st/snippet-preview',
|
19 |
+
'shortlinks.cornerstone_content_info' => 'https://yoa.st/1i9',
|
20 |
+
'shortlinks.upsell.sidebar.focus_keyword_synonyms_link' => 'https://yoa.st/textlink-synonyms-popup-sidebar',
|
21 |
+
'shortlinks.upsell.sidebar.focus_keyword_synonyms_button' => 'https://yoa.st/keyword-synonyms-popup-sidebar',
|
22 |
+
'shortlinks.upsell.sidebar.focus_keyword_additional_link' => 'https://yoa.st/textlink-keywords-popup-sidebar',
|
23 |
+
'shortlinks.upsell.sidebar.focus_keyword_additional_button' => 'https://yoa.st/add-keywords-popup-sidebar',
|
24 |
+
'shortlinks.upsell.sidebar.additional_link' => 'https://yoa.st/textlink-keywords-sidebar',
|
25 |
+
'shortlinks.upsell.sidebar.additional_button' => 'https://yoa.st/add-keywords-sidebar',
|
26 |
+
'shortlinks.upsell.metabox.go_premium' => 'https://yoa.st/pe-premium-page',
|
27 |
+
'shortlinks.upsell.metabox.focus_keyword_synonyms_link' => 'https://yoa.st/textlink-synonyms-popup-metabox',
|
28 |
+
'shortlinks.upsell.metabox.focus_keyword_synonyms_button' => 'https://yoa.st/keyword-synonyms-popup',
|
29 |
+
'shortlinks.upsell.metabox.focus_keyword_additional_link' => 'https://yoa.st/textlink-keywords-popup-metabox',
|
30 |
+
'shortlinks.upsell.metabox.focus_keyword_additional_button' => 'https://yoa.st/add-keywords-popup',
|
31 |
+
'shortlinks.upsell.metabox.additional_link' => 'https://yoa.st/textlink-keywords-metabox',
|
32 |
+
'shortlinks.upsell.metabox.additional_button' => 'https://yoa.st/add-keywords-metabox',
|
33 |
+
);
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Registers all hooks to WordPress.
|
37 |
+
*
|
38 |
+
* @return void
|
39 |
*/
|
40 |
public function register_hooks() {
|
41 |
add_filter( 'wpseo_admin_l10n', array( $this, 'expose_shortlinks' ) );
|
42 |
}
|
43 |
|
44 |
/**
|
45 |
+
* Adds shortlinks to the passed array.
|
46 |
+
*
|
47 |
* @param array $input The array to add shortlinks to.
|
48 |
*
|
49 |
+
* @return array The passed array with the additional shortlinks.
|
50 |
*/
|
51 |
public function expose_shortlinks( $input ) {
|
52 |
+
foreach ( $this->shortlinks as $key => $shortlink ) {
|
53 |
+
$input[ $key ] = WPSEO_Shortlinker::get( $shortlink );
|
54 |
+
}
|
55 |
|
56 |
return $input;
|
57 |
}
|
admin/class-extension.php
CHANGED
@@ -69,7 +69,6 @@ class WPSEO_Extension {
|
|
69 |
}
|
70 |
|
71 |
return $this->get_title();
|
72 |
-
|
73 |
}
|
74 |
|
75 |
/**
|
69 |
}
|
70 |
|
71 |
return $this->get_title();
|
|
|
72 |
}
|
73 |
|
74 |
/**
|
admin/class-gutenberg-compatibility.php
CHANGED
@@ -18,7 +18,7 @@ class WPSEO_Gutenberg_Compatibility {
|
|
18 |
/**
|
19 |
* The minimally supported version of Gutenberg by the plugin.
|
20 |
*/
|
21 |
-
const MINIMUM_SUPPORTED = '
|
22 |
|
23 |
/**
|
24 |
* @var string
|
18 |
/**
|
19 |
* The minimally supported version of Gutenberg by the plugin.
|
20 |
*/
|
21 |
+
const MINIMUM_SUPPORTED = '3.5.0';
|
22 |
|
23 |
/**
|
24 |
* @var string
|
admin/class-premium-benefits-for-synonyms-list.php
DELETED
@@ -1,54 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* @package WPSEO\Admin
|
4 |
-
*/
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Class to print out a list of Premium benefits specific for the keyword synonyms.
|
8 |
-
*/
|
9 |
-
class WPSEO_Premium_Benefits_For_Synonyms_List {
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Returns the translations for the Premium benefits list.
|
13 |
-
*
|
14 |
-
* @return array Translated text strings for the Premium benefits list.
|
15 |
-
*/
|
16 |
-
public function get_translations() {
|
17 |
-
return array(
|
18 |
-
'<strong>' . __( 'Rank for up to 5 focus keywords per page', 'wordpress-seo' ) . '</strong>',
|
19 |
-
sprintf(
|
20 |
-
/* translators: %1$s expands to a 'strong' start tag, %2$s to a 'strong' end tag. */
|
21 |
-
__( '%1$sNo more dead links%2$s: easy redirect manager', 'wordpress-seo' ),
|
22 |
-
'<strong>', '</strong>'
|
23 |
-
),
|
24 |
-
'<strong>' . __( 'Superfast internal links suggestions', 'wordpress-seo' ) . '</strong>',
|
25 |
-
sprintf(
|
26 |
-
/* translators: %1$s expands to a 'strong' start tag, %2$s to a 'strong' end tag. */
|
27 |
-
__( '%1$sSocial media preview%2$s: Facebook & Twitter', 'wordpress-seo' ),
|
28 |
-
'<strong>', '</strong>'
|
29 |
-
),
|
30 |
-
'<strong>' . __( '24/7 support', 'wordpress-seo' ) . '</strong>',
|
31 |
-
'<strong>' . __( 'No ads!', 'wordpress-seo' ) . '</strong>',
|
32 |
-
);
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Passes translations to JS for the Add Keyword JS component Premium benefits list.
|
37 |
-
*
|
38 |
-
* @return array Translated text strings for the Premium benefits list component.
|
39 |
-
*/
|
40 |
-
public function get_translations_for_js() {
|
41 |
-
$translations = $this->get_translations();
|
42 |
-
return array(
|
43 |
-
'locale' => WPSEO_Utils::get_user_locale(),
|
44 |
-
'intl' => $translations,
|
45 |
-
);
|
46 |
-
}
|
47 |
-
|
48 |
-
/**
|
49 |
-
* Prints the localized Premium benefits translations for JS.
|
50 |
-
*/
|
51 |
-
public function enqueue_translations() {
|
52 |
-
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'admin-global-script', 'yoastPremiumBenefitsForSynonymsL10n', $this->get_translations_for_js() );
|
53 |
-
}
|
54 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/class-premium-benefits-list.php
DELETED
@@ -1,53 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* @package WPSEO\Admin
|
4 |
-
*/
|
5 |
-
|
6 |
-
/**
|
7 |
-
* Class to print out a list of Premium benefits.
|
8 |
-
*/
|
9 |
-
class WPSEO_Premium_Benefits_List {
|
10 |
-
|
11 |
-
/**
|
12 |
-
* Returns the translations for the Premium benefits list.
|
13 |
-
*
|
14 |
-
* @return array Translated text strings for the Premium benefits list.
|
15 |
-
*/
|
16 |
-
public function get_translations() {
|
17 |
-
return array(
|
18 |
-
sprintf(
|
19 |
-
/* translators: %1$s expands to a 'strong' start tag, %2$s to a 'strong' end tag. */
|
20 |
-
__( '%1$sNo more dead links%2$s: easy redirect manager', 'wordpress-seo' ),
|
21 |
-
'<strong>', '</strong>'
|
22 |
-
),
|
23 |
-
'<strong>' . __( 'Superfast internal links suggestions', 'wordpress-seo' ) . '</strong>',
|
24 |
-
sprintf(
|
25 |
-
/* translators: %1$s expands to a 'strong' start tag, %2$s to a 'strong' end tag. */
|
26 |
-
__( '%1$sSocial media preview%2$s: Facebook & Twitter', 'wordpress-seo' ),
|
27 |
-
'<strong>', '</strong>'
|
28 |
-
),
|
29 |
-
'<strong>' . __( '24/7 support', 'wordpress-seo' ) . '</strong>',
|
30 |
-
'<strong>' . __( 'No ads!', 'wordpress-seo' ) . '</strong>',
|
31 |
-
);
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* Pass tanslations to JS for the Add Keyword JS component Premium benefits list.
|
36 |
-
*
|
37 |
-
* @return array Translated text strings for the Premium benefits list component.
|
38 |
-
*/
|
39 |
-
public function get_translations_for_js() {
|
40 |
-
$translations = $this->get_translations();
|
41 |
-
return array(
|
42 |
-
'locale' => WPSEO_Utils::get_user_locale(),
|
43 |
-
'intl' => $translations,
|
44 |
-
);
|
45 |
-
}
|
46 |
-
|
47 |
-
/**
|
48 |
-
* Prints the localized Premium benefits translations for JS.
|
49 |
-
*/
|
50 |
-
public function enqueue_translations() {
|
51 |
-
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'admin-global-script', 'yoastPremiumBenefitsL10n', $this->get_translations_for_js() );
|
52 |
-
}
|
53 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/class-primary-term-admin.php
CHANGED
@@ -6,14 +6,15 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
* Adds the UI to change the primary term for a post
|
10 |
*/
|
11 |
class WPSEO_Primary_Term_Admin {
|
12 |
-
|
13 |
/**
|
14 |
* Constructor.
|
15 |
*/
|
16 |
public function __construct() {
|
|
|
|
|
17 |
add_action( 'admin_footer', array( $this, 'wp_footer' ), 10 );
|
18 |
|
19 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_assets' ) );
|
@@ -25,7 +26,7 @@ class WPSEO_Primary_Term_Admin {
|
|
25 |
}
|
26 |
|
27 |
/**
|
28 |
-
*
|
29 |
*
|
30 |
* @return integer The post ID.
|
31 |
*/
|
@@ -39,7 +40,62 @@ class WPSEO_Primary_Term_Admin {
|
|
39 |
}
|
40 |
|
41 |
/**
|
42 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
*/
|
44 |
public function wp_footer() {
|
45 |
$taxonomies = $this->get_primary_term_taxonomies();
|
@@ -72,10 +128,10 @@ class WPSEO_Primary_Term_Admin {
|
|
72 |
$asset_manager->enqueue_style( 'primary-category' );
|
73 |
$asset_manager->enqueue_script( 'primary-category' );
|
74 |
|
75 |
-
$
|
76 |
|
77 |
$data = array(
|
78 |
-
'taxonomies' => $
|
79 |
);
|
80 |
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'primary-category', 'wpseoPrimaryCategoryL10n', $data );
|
81 |
}
|
@@ -99,8 +155,7 @@ class WPSEO_Primary_Term_Admin {
|
|
99 |
}
|
100 |
|
101 |
/**
|
102 |
-
*
|
103 |
-
* Get the id of the primary term
|
104 |
*
|
105 |
* @param string $taxonomy_name Taxonomy name for the term.
|
106 |
*
|
@@ -119,7 +174,6 @@ class WPSEO_Primary_Term_Admin {
|
|
119 |
* @return array
|
120 |
*/
|
121 |
protected function get_primary_term_taxonomies( $post_id = null ) {
|
122 |
-
|
123 |
if ( null === $post_id ) {
|
124 |
$post_id = $this->get_current_id();
|
125 |
}
|
@@ -137,14 +191,14 @@ class WPSEO_Primary_Term_Admin {
|
|
137 |
}
|
138 |
|
139 |
/**
|
140 |
-
*
|
141 |
*/
|
142 |
protected function include_js_templates() {
|
143 |
include_once WPSEO_PATH . 'admin/views/js-templates-primary-term.php';
|
144 |
}
|
145 |
|
146 |
/**
|
147 |
-
*
|
148 |
*
|
149 |
* @param int $post_id Post ID to save primary term for.
|
150 |
* @param WP_Term $taxonomy Taxonomy to save primary term for.
|
@@ -160,7 +214,7 @@ class WPSEO_Primary_Term_Admin {
|
|
160 |
}
|
161 |
|
162 |
/**
|
163 |
-
*
|
164 |
*
|
165 |
* @param int $post_id ID of the post.
|
166 |
*
|
@@ -186,11 +240,22 @@ class WPSEO_Primary_Term_Admin {
|
|
186 |
}
|
187 |
|
188 |
/**
|
189 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
*
|
191 |
* @param stdClass $taxonomy The taxonomy to map.
|
192 |
*
|
193 |
-
* @return array
|
194 |
*/
|
195 |
private function map_taxonomies_for_js( $taxonomy ) {
|
196 |
$primary_term = $this->get_primary_term( $taxonomy->name );
|
@@ -199,20 +264,25 @@ class WPSEO_Primary_Term_Admin {
|
|
199 |
$primary_term = '';
|
200 |
}
|
201 |
|
|
|
|
|
202 |
return array(
|
203 |
-
'title'
|
204 |
-
'name'
|
205 |
-
'primary'
|
206 |
-
'
|
|
|
|
|
|
|
207 |
);
|
208 |
}
|
209 |
|
210 |
/**
|
211 |
-
* Returns an array suitable for use in the javascript
|
212 |
*
|
213 |
* @param stdClass $term The term to map.
|
214 |
*
|
215 |
-
* @return array
|
216 |
*/
|
217 |
private function map_terms_for_js( $term ) {
|
218 |
return array(
|
@@ -222,7 +292,7 @@ class WPSEO_Primary_Term_Admin {
|
|
222 |
}
|
223 |
|
224 |
/**
|
225 |
-
* Returns whether or not a taxonomy is hierarchical
|
226 |
*
|
227 |
* @param stdClass $taxonomy Taxonomy object.
|
228 |
*
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Adds the UI to change the primary term for a post.
|
10 |
*/
|
11 |
class WPSEO_Primary_Term_Admin {
|
|
|
12 |
/**
|
13 |
* Constructor.
|
14 |
*/
|
15 |
public function __construct() {
|
16 |
+
add_filter( 'wpseo_content_meta_section_content', array( $this, 'add_input_fields' ) );
|
17 |
+
|
18 |
add_action( 'admin_footer', array( $this, 'wp_footer' ), 10 );
|
19 |
|
20 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_assets' ) );
|
26 |
}
|
27 |
|
28 |
/**
|
29 |
+
* Gets the current post ID.
|
30 |
*
|
31 |
* @return integer The post ID.
|
32 |
*/
|
40 |
}
|
41 |
|
42 |
/**
|
43 |
+
* Adds hidden fields for primary taxonomies.
|
44 |
+
*
|
45 |
+
* @param string $content The metabox content.
|
46 |
+
*
|
47 |
+
* @return string The HTML content.
|
48 |
+
*/
|
49 |
+
public function add_input_fields( $content ) {
|
50 |
+
$taxonomies = $this->get_primary_term_taxonomies();
|
51 |
+
|
52 |
+
foreach ( $taxonomies as $taxonomy ) {
|
53 |
+
$content .= $this->primary_term_field( $taxonomy->name );
|
54 |
+
$content .= wp_nonce_field( 'save-primary-term', WPSEO_Meta::$form_prefix . 'primary_' . $taxonomy->name . '_nonce', false, false );
|
55 |
+
}
|
56 |
+
return $content;
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
* Generates the HTML for a hidden field for a primary taxonomy.
|
61 |
+
*
|
62 |
+
* @param string $taxonomy_name The taxonomy's slug.
|
63 |
+
*
|
64 |
+
* @return string The HTML for a hidden primary taxonomy field.
|
65 |
+
*/
|
66 |
+
protected function primary_term_field( $taxonomy_name ) {
|
67 |
+
return sprintf(
|
68 |
+
'<input class="yoast-wpseo-primary-term" type="hidden" id="%1$s" name="%2$s" value="%3$s" />',
|
69 |
+
esc_attr( $this->generate_field_id( $taxonomy_name ) ),
|
70 |
+
esc_attr( $this->generate_field_name( $taxonomy_name ) ),
|
71 |
+
esc_attr( $this->get_primary_term( $taxonomy_name ) )
|
72 |
+
);
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Generates an id for a primary taxonomy's hidden field.
|
77 |
+
*
|
78 |
+
* @param string $taxonomy_name The taxonomy's slug.
|
79 |
+
*
|
80 |
+
* @return string The field id.
|
81 |
+
*/
|
82 |
+
protected function generate_field_id( $taxonomy_name ) {
|
83 |
+
return 'yoast-wpseo-primary-' . $taxonomy_name;
|
84 |
+
}
|
85 |
+
|
86 |
+
/**
|
87 |
+
* Generates a name for a primary taxonomy's hidden field.
|
88 |
+
*
|
89 |
+
* @param string $taxonomy_name The taxonomy's slug.
|
90 |
+
*
|
91 |
+
* @return string The field id.
|
92 |
+
*/
|
93 |
+
protected function generate_field_name( $taxonomy_name ) {
|
94 |
+
return WPSEO_Meta::$form_prefix . 'primary_' . $taxonomy_name . '_term';
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* Adds primary term templates.
|
99 |
*/
|
100 |
public function wp_footer() {
|
101 |
$taxonomies = $this->get_primary_term_taxonomies();
|
128 |
$asset_manager->enqueue_style( 'primary-category' );
|
129 |
$asset_manager->enqueue_script( 'primary-category' );
|
130 |
|
131 |
+
$mapped_taxonomies = $this->get_mapped_taxonomies_for_js( $taxonomies );
|
132 |
|
133 |
$data = array(
|
134 |
+
'taxonomies' => $mapped_taxonomies,
|
135 |
);
|
136 |
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'primary-category', 'wpseoPrimaryCategoryL10n', $data );
|
137 |
}
|
155 |
}
|
156 |
|
157 |
/**
|
158 |
+
* Gets the id of the primary term
|
|
|
159 |
*
|
160 |
* @param string $taxonomy_name Taxonomy name for the term.
|
161 |
*
|
174 |
* @return array
|
175 |
*/
|
176 |
protected function get_primary_term_taxonomies( $post_id = null ) {
|
|
|
177 |
if ( null === $post_id ) {
|
178 |
$post_id = $this->get_current_id();
|
179 |
}
|
191 |
}
|
192 |
|
193 |
/**
|
194 |
+
* Includes templates file.
|
195 |
*/
|
196 |
protected function include_js_templates() {
|
197 |
include_once WPSEO_PATH . 'admin/views/js-templates-primary-term.php';
|
198 |
}
|
199 |
|
200 |
/**
|
201 |
+
* Saves the primary term for a specific taxonomy.
|
202 |
*
|
203 |
* @param int $post_id Post ID to save primary term for.
|
204 |
* @param WP_Term $taxonomy Taxonomy to save primary term for.
|
214 |
}
|
215 |
|
216 |
/**
|
217 |
+
* Generates the primary term taxonomies.
|
218 |
*
|
219 |
* @param int $post_id ID of the post.
|
220 |
*
|
240 |
}
|
241 |
|
242 |
/**
|
243 |
+
* Creates a map of taxonomies for localization.
|
244 |
+
*
|
245 |
+
* @param array $taxonomies The taxononmies that should be mapped.
|
246 |
+
*
|
247 |
+
* @return array The mapped taxonomies.
|
248 |
+
*/
|
249 |
+
protected function get_mapped_taxonomies_for_js( $taxonomies ) {
|
250 |
+
return array_map( array( $this, 'map_taxonomies_for_js' ), $taxonomies );
|
251 |
+
}
|
252 |
+
|
253 |
+
/**
|
254 |
+
* Returns an array suitable for use in the javascript.
|
255 |
*
|
256 |
* @param stdClass $taxonomy The taxonomy to map.
|
257 |
*
|
258 |
+
* @return array The mapped taxonomy.
|
259 |
*/
|
260 |
private function map_taxonomies_for_js( $taxonomy ) {
|
261 |
$primary_term = $this->get_primary_term( $taxonomy->name );
|
264 |
$primary_term = '';
|
265 |
}
|
266 |
|
267 |
+
$terms = get_terms( $taxonomy->name );
|
268 |
+
|
269 |
return array(
|
270 |
+
'title' => $taxonomy->labels->singular_name,
|
271 |
+
'name' => $taxonomy->name,
|
272 |
+
'primary' => $primary_term,
|
273 |
+
'singularLabel' => $taxonomy->labels->singular_name,
|
274 |
+
'fieldId' => $this->generate_field_id( $taxonomy->name ),
|
275 |
+
'restBase' => ( $taxonomy->rest_base ) ? $taxonomy->rest_base : $taxonomy->name,
|
276 |
+
'terms' => array_map( array( $this, 'map_terms_for_js' ), $terms ),
|
277 |
);
|
278 |
}
|
279 |
|
280 |
/**
|
281 |
+
* Returns an array suitable for use in the javascript.
|
282 |
*
|
283 |
* @param stdClass $term The term to map.
|
284 |
*
|
285 |
+
* @return array The mapped terms.
|
286 |
*/
|
287 |
private function map_terms_for_js( $term ) {
|
288 |
return array(
|
292 |
}
|
293 |
|
294 |
/**
|
295 |
+
* Returns whether or not a taxonomy is hierarchical.
|
296 |
*
|
297 |
* @param stdClass $taxonomy Taxonomy object.
|
298 |
*
|
admin/class-unsupported-php-message.php
DELETED
@@ -1,70 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPSEO plugin file.
|
4 |
-
*
|
5 |
-
* @package WPSEO\Admin
|
6 |
-
*/
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Class that creates the PHP 5.2 support message.
|
10 |
-
*/
|
11 |
-
class WPSEO_Unsupported_PHP_Message implements Whip_Message {
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Composes the body of the message to display.
|
15 |
-
*
|
16 |
-
* @return string The message to display.
|
17 |
-
*/
|
18 |
-
public function body() {
|
19 |
-
$message = array();
|
20 |
-
|
21 |
-
$message[] = Whip_MessageFormatter::strongParagraph( __( 'PHP update required.', 'wordpress-seo' ) ) . '<br />';
|
22 |
-
$message[] = Whip_MessageFormatter::paragraph(
|
23 |
-
sprintf(
|
24 |
-
/* translators: 1: The strong opening tag; 2: The strong closing tag; 3: the Yoast SEO version that is dropping support; 4: The release date of the version of Yoast SEO that is dropping support; 5: The PHP version no longer being supported; */
|
25 |
-
__( '%1$sAction is needed%2$s: As of version %3$s, due to be released on %4$s, Yoast SEO will no longer work with PHP %5$s. Unfortunately, your site is running on PHP %5$s right now, so action is needed. Thankfully, you can update your PHP yourself.', 'wordpress-seo' ),
|
26 |
-
'<strong>',
|
27 |
-
'</strong>',
|
28 |
-
'7.7',
|
29 |
-
date_i18n( get_option( 'date_format' ), strtotime( '11-06-2018' ) ),
|
30 |
-
'5.2'
|
31 |
-
)
|
32 |
-
) . '<br />';
|
33 |
-
|
34 |
-
$message[] = Whip_MessageFormatter::strongParagraph( __( 'Why?', 'wordpress-seo' ) ) . '<br />';
|
35 |
-
$message[] = Whip_MessageFormatter::paragraph(
|
36 |
-
sprintf(
|
37 |
-
/* translators: 1: the PHP version that will no longer be supported; 2: The year the unsupported PHP version was released; 3: The minimal PHP version that will be supported; 4: The year the minimally supported version of PHP was released; */
|
38 |
-
__( 'PHP is the programming language WordPress is developed in and your site runs on. PHP %1$s was released in %2$s and was replaced by PHP %3$s in %4$s. Newer versions of PHP are both faster and more secure, so updating will have a positive effect on your site. Plus, it it enables our developers to use the latest technologies to make Yoast SEO even better.', 'wordpress-seo' ),
|
39 |
-
'5.2',
|
40 |
-
'2006',
|
41 |
-
'5.3',
|
42 |
-
'2009'
|
43 |
-
)
|
44 |
-
) . '<br />';
|
45 |
-
|
46 |
-
$message[] = Whip_MessageFormatter::strongParagraph( __( 'How?', 'wordpress-seo' ) ) . '<br />';
|
47 |
-
$message[] = Whip_MessageFormatter::paragraph(
|
48 |
-
sprintf(
|
49 |
-
/* translators: 1: The link tag to the WordPress instructions page for upgrading to newer versions of PHP; 2: The link closing tag; 3: The recommended PHP version; 4: The Yoast article about testing plugin compatibility with newer PHP versions; */
|
50 |
-
__( 'For any questions you may have about updating your PHP version, WordPress %1$shas a great page with instructions here%2$s. We recommend going up to version %3$s. Not all plugins may be ready for PHP 7 though, so %4$swe wrote an article on how to test them before you update here%2$s.', 'wordpress-seo' ),
|
51 |
-
'<a href="https://wordpress.org/support/upgrade-php/" target="_blank" rel="noopener noreferrer">',
|
52 |
-
'</a>',
|
53 |
-
'7.2',
|
54 |
-
'<a href="' . WPSEO_Shortlinker::get( 'https://yoa.st/wg' ) . '" target="_blank">'
|
55 |
-
)
|
56 |
-
) . '<br />';
|
57 |
-
|
58 |
-
$message[] = Whip_MessageFormatter::paragraph(
|
59 |
-
sprintf(
|
60 |
-
/* translators: 1: The link tag to email examples page; 2: The link closing tag; 3: The link tag for the list of recommended WordPress hosting partners; */
|
61 |
-
__( 'If you cannot update your PHP yourself, you can send an email to your host. We have %1$sexamples%2$s here. If they don\'t want to upgrade your PHP version, we recommend switching hosts. Take a look at our list of %3$srecommended WordPress hosting partners%2$s, they\'ve been vetted by the Yoast support team and offer all the features a modern host should have.', 'wordpress-seo' ),
|
62 |
-
'<a href="' . WPSEO_Shortlinker::get( 'https://yoa.st/wh' ) . '" target="_blank">',
|
63 |
-
'</a>',
|
64 |
-
sprintf( '<a href="%1$s" target="_blank">', esc_url( Whip_Host::hostingPageUrl() ) )
|
65 |
-
)
|
66 |
-
) . '<br />';
|
67 |
-
|
68 |
-
return implode( $message, "\n" );
|
69 |
-
}
|
70 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/class-yoast-form.php
CHANGED
@@ -552,7 +552,6 @@ class Yoast_Form {
|
|
552 |
echo '</fieldset>';
|
553 |
}
|
554 |
|
555 |
-
|
556 |
/**
|
557 |
* Create a toggle switch input field using two radio buttons.
|
558 |
*
|
552 |
echo '</fieldset>';
|
553 |
}
|
554 |
|
|
|
555 |
/**
|
556 |
* Create a toggle switch input field using two radio buttons.
|
557 |
*
|
admin/class-yoast-plugin-conflict.php
CHANGED
@@ -256,7 +256,6 @@ class Yoast_Plugin_Conflict {
|
|
256 |
}
|
257 |
}
|
258 |
|
259 |
-
|
260 |
/**
|
261 |
* Check if given plugin exists in array with all_active_plugins
|
262 |
*
|
@@ -304,7 +303,6 @@ class Yoast_Plugin_Conflict {
|
|
304 |
return $plugin_section;
|
305 |
}
|
306 |
}
|
307 |
-
|
308 |
}
|
309 |
|
310 |
/**
|
256 |
}
|
257 |
}
|
258 |
|
|
|
259 |
/**
|
260 |
* Check if given plugin exists in array with all_active_plugins
|
261 |
*
|
303 |
return $plugin_section;
|
304 |
}
|
305 |
}
|
|
|
306 |
}
|
307 |
|
308 |
/**
|
admin/config-ui/class-configuration-page.php
CHANGED
@@ -48,7 +48,6 @@ class WPSEO_Configuration_Page {
|
|
48 |
exit;
|
49 |
}
|
50 |
|
51 |
-
|
52 |
/**
|
53 |
* Registers the page for the wizard.
|
54 |
*/
|
@@ -157,7 +156,6 @@ class WPSEO_Configuration_Page {
|
|
157 |
</body>
|
158 |
</html>
|
159 |
<?php
|
160 |
-
|
161 |
}
|
162 |
|
163 |
/**
|
@@ -267,5 +265,4 @@ class WPSEO_Configuration_Page {
|
|
267 |
private function remove_notification_option() {
|
268 |
WPSEO_Options::set( 'show_onboarding_notice', false );
|
269 |
}
|
270 |
-
|
271 |
}
|
48 |
exit;
|
49 |
}
|
50 |
|
|
|
51 |
/**
|
52 |
* Registers the page for the wizard.
|
53 |
*/
|
156 |
</body>
|
157 |
</html>
|
158 |
<?php
|
|
|
159 |
}
|
160 |
|
161 |
/**
|
265 |
private function remove_notification_option() {
|
266 |
WPSEO_Options::set( 'show_onboarding_notice', false );
|
267 |
}
|
|
|
268 |
}
|
admin/config-ui/components/interface-component.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Config Component interface
|
10 |
*/
|
11 |
interface WPSEO_Config_Component {
|
|
|
12 |
/**
|
13 |
* @return string
|
14 |
*/
|
9 |
* Config Component interface
|
10 |
*/
|
11 |
interface WPSEO_Config_Component {
|
12 |
+
|
13 |
/**
|
14 |
* @return string
|
15 |
*/
|
admin/config-ui/fields/class-field-connect-google-search-console.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Class WPSEO_Config_Field_Connect_Google_Search_Console
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Connect_Google_Search_Console extends WPSEO_Config_Field {
|
|
|
12 |
/**
|
13 |
* WPSEO_Config_Field_Connect_Google_Search_Console constructor.
|
14 |
*/
|
9 |
* Class WPSEO_Config_Field_Connect_Google_Search_Console
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Connect_Google_Search_Console extends WPSEO_Config_Field {
|
12 |
+
|
13 |
/**
|
14 |
* WPSEO_Config_Field_Connect_Google_Search_Console constructor.
|
15 |
*/
|
admin/config-ui/fields/class-field-environment.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Class WPSEO_Config_Field_Environment
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Environment extends WPSEO_Config_Field_Choice {
|
|
|
12 |
/**
|
13 |
* WPSEO_Config_Field_Environment constructor.
|
14 |
*/
|
9 |
* Class WPSEO_Config_Field_Environment
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Environment extends WPSEO_Config_Field_Choice {
|
12 |
+
|
13 |
/**
|
14 |
* WPSEO_Config_Field_Environment constructor.
|
15 |
*/
|
admin/config-ui/fields/class-field-mailchimp-signup.php
CHANGED
@@ -51,7 +51,6 @@ class WPSEO_Config_Field_Mailchimp_Signup extends WPSEO_Config_Field {
|
|
51 |
return array(
|
52 |
'hasSignup' => $this->has_mailchimp_signup(),
|
53 |
);
|
54 |
-
|
55 |
}
|
56 |
|
57 |
/**
|
51 |
return array(
|
52 |
'hasSignup' => $this->has_mailchimp_signup(),
|
53 |
);
|
|
|
54 |
}
|
55 |
|
56 |
/**
|
admin/config-ui/fields/class-field-multiple-authors.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Class WPSEO_Config_Field_Multiple_Authors
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Multiple_Authors extends WPSEO_Config_Field_Choice {
|
|
|
12 |
/**
|
13 |
* WPSEO_Config_Field_Multiple_Authors constructor.
|
14 |
*/
|
9 |
* Class WPSEO_Config_Field_Multiple_Authors
|
10 |
*/
|
11 |
class WPSEO_Config_Field_Multiple_Authors extends WPSEO_Config_Field_Choice {
|
12 |
+
|
13 |
/**
|
14 |
* WPSEO_Config_Field_Multiple_Authors constructor.
|
15 |
*/
|
admin/formatter/class-metabox-formatter.php
CHANGED
@@ -45,9 +45,6 @@ class WPSEO_Metabox_Formatter {
|
|
45 |
$analysis_seo = new WPSEO_Metabox_Analysis_SEO();
|
46 |
$analysis_readability = new WPSEO_Metabox_Analysis_Readability();
|
47 |
|
48 |
-
$premium_benefits = new WPSEO_Premium_Benefits_List();
|
49 |
-
$premium_benefits->enqueue_translations();
|
50 |
-
|
51 |
return array(
|
52 |
'language' => WPSEO_Language_Utils::get_site_language_name(),
|
53 |
'settings_link' => $this->get_settings_link(),
|
45 |
$analysis_seo = new WPSEO_Metabox_Analysis_SEO();
|
46 |
$analysis_readability = new WPSEO_Metabox_Analysis_Readability();
|
47 |
|
|
|
|
|
|
|
48 |
return array(
|
49 |
'language' => WPSEO_Language_Utils::get_site_language_name(),
|
50 |
'settings_link' => $this->get_settings_link(),
|
admin/formatter/interface-metabox-formatter.php
CHANGED
@@ -16,5 +16,4 @@ interface WPSEO_Metabox_Formatter_Interface {
|
|
16 |
* @return array
|
17 |
*/
|
18 |
public function get_values();
|
19 |
-
|
20 |
}
|
16 |
* @return array
|
17 |
*/
|
18 |
public function get_values();
|
|
|
19 |
}
|
admin/google_search_console/class-gsc-issues.php
CHANGED
@@ -44,6 +44,7 @@ class WPSEO_GSC_Issues {
|
|
44 |
$this->save_fetched_issues( $fetched_issues );
|
45 |
}
|
46 |
}
|
|
|
47 |
/**
|
48 |
* Getting the issues from the options.
|
49 |
*
|
44 |
$this->save_fetched_issues( $fetched_issues );
|
45 |
}
|
46 |
}
|
47 |
+
|
48 |
/**
|
49 |
* Getting the issues from the options.
|
50 |
*
|
admin/google_search_console/class-gsc.php
CHANGED
@@ -235,7 +235,6 @@ class WPSEO_GSC {
|
|
235 |
// Do the redirect.
|
236 |
wp_redirect( $url );
|
237 |
exit;
|
238 |
-
|
239 |
}
|
240 |
|
241 |
/**
|
235 |
// Do the redirect.
|
236 |
wp_redirect( $url );
|
237 |
exit;
|
|
|
238 |
}
|
239 |
|
240 |
/**
|
admin/import/plugins/class-import-platinum-seo-pack.php
CHANGED
@@ -134,5 +134,4 @@ class WPSEO_Import_Platinum_SEO extends WPSEO_Plugin_Importer {
|
|
134 |
}
|
135 |
return $posts;
|
136 |
}
|
137 |
-
|
138 |
}
|
134 |
}
|
135 |
return $posts;
|
136 |
}
|
|
|
137 |
}
|
admin/import/plugins/class-import-premium-seo-pack.php
CHANGED
@@ -35,5 +35,4 @@ class WPSEO_Import_Premium_SEO_Pack extends WPSEO_Import_Squirrly {
|
|
35 |
protected function retrieve_posts_query() {
|
36 |
return "SELECT URL AS identifier FROM {$this->table_name} WHERE blog_id = %d";
|
37 |
}
|
38 |
-
|
39 |
}
|
35 |
protected function retrieve_posts_query() {
|
36 |
return "SELECT URL AS identifier FROM {$this->table_name} WHERE blog_id = %d";
|
37 |
}
|
|
|
38 |
}
|
admin/import/plugins/class-import-woothemes-seo.php
CHANGED
@@ -134,5 +134,4 @@ class WPSEO_Import_WooThemes_SEO extends WPSEO_Plugin_Importer {
|
|
134 |
);
|
135 |
return $wpdb->__get( 'result' );
|
136 |
}
|
137 |
-
|
138 |
}
|
134 |
);
|
135 |
return $wpdb->__get( 'result' );
|
136 |
}
|
|
|
137 |
}
|
admin/interface-collection.php
CHANGED
@@ -16,5 +16,4 @@ interface WPSEO_Collection {
|
|
16 |
* @return array The collection data.
|
17 |
*/
|
18 |
public function get();
|
19 |
-
|
20 |
}
|
16 |
* @return array The collection data.
|
17 |
*/
|
18 |
public function get();
|
|
|
19 |
}
|
admin/metabox/class-metabox-keyword-synonyms-config.php
CHANGED
@@ -36,9 +36,6 @@ class WPSEO_Metabox_Keyword_Synonyms_Config {
|
|
36 |
$translations = new WPSEO_Keyword_Synonyms_Modal();
|
37 |
$translations->enqueue_translations();
|
38 |
|
39 |
-
$benefits = new WPSEO_Premium_Benefits_For_Synonyms_List();
|
40 |
-
$benefits->enqueue_translations();
|
41 |
-
|
42 |
Yoast_Modal::add( $keyword_synonyms_modal_config );
|
43 |
}
|
44 |
}
|
36 |
$translations = new WPSEO_Keyword_Synonyms_Modal();
|
37 |
$translations->enqueue_translations();
|
38 |
|
|
|
|
|
|
|
39 |
Yoast_Modal::add( $keyword_synonyms_modal_config );
|
40 |
}
|
41 |
}
|
admin/metabox/class-metabox-multiple-keywords-config.php
CHANGED
@@ -36,9 +36,6 @@ class WPSEO_Metabox_Multiple_Keywords_Config {
|
|
36 |
$translations = new WPSEO_Multiple_Keywords_Modal();
|
37 |
$translations->enqueue_translations();
|
38 |
|
39 |
-
$benefits = new WPSEO_Premium_Benefits_List();
|
40 |
-
$benefits->enqueue_translations();
|
41 |
-
|
42 |
Yoast_Modal::add( $multiple_keywords_modal_config );
|
43 |
}
|
44 |
}
|
36 |
$translations = new WPSEO_Multiple_Keywords_Modal();
|
37 |
$translations->enqueue_translations();
|
38 |
|
|
|
|
|
|
|
39 |
Yoast_Modal::add( $multiple_keywords_modal_config );
|
40 |
}
|
41 |
}
|
admin/metabox/class-metabox-null-tab.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Generates the HTML for a metabox tab.
|
10 |
*/
|
11 |
class WPSEO_Metabox_Null_Tab implements WPSEO_Metabox_Tab {
|
|
|
12 |
/**
|
13 |
* Returns the html for the tab link.
|
14 |
*
|
9 |
* Generates the HTML for a metabox tab.
|
10 |
*/
|
11 |
class WPSEO_Metabox_Null_Tab implements WPSEO_Metabox_Tab {
|
12 |
+
|
13 |
/**
|
14 |
* Returns the html for the tab link.
|
15 |
*
|
admin/metabox/class-metabox.php
CHANGED
@@ -371,6 +371,13 @@ class WPSEO_Metabox extends WPSEO_Meta {
|
|
371 |
private function get_content_meta_section() {
|
372 |
$content = $this->get_tab_content( 'general' );
|
373 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
374 |
return new WPSEO_Metabox_Section_React(
|
375 |
'content',
|
376 |
'<span class="screen-reader-text">' . __( 'Content optimization', 'wordpress-seo' ) . '</span><span class="yst-traffic-light-container">' . WPSEO_Utils::traffic_light_svg() . '</span>',
|
@@ -416,7 +423,7 @@ class WPSEO_Metabox extends WPSEO_Meta {
|
|
416 |
* @return string
|
417 |
*/
|
418 |
private function get_buy_premium_link() {
|
419 |
-
return sprintf( '<div class="%1$s"><a target="_blank" rel="noopener noreferrer" href="%2$s"
|
420 |
'wpseo-metabox-buy-premium',
|
421 |
esc_url( WPSEO_Shortlinker::get( 'https://yoa.st/pe-premium-page' ) ),
|
422 |
__( 'Go Premium', 'wordpress-seo' )
|
@@ -509,14 +516,6 @@ class WPSEO_Metabox extends WPSEO_Meta {
|
|
509 |
$description = '<p id="' . $esc_form_key . '-desc" class="yoast-metabox__description">' . $meta_field_def['description'] . '</p>';
|
510 |
}
|
511 |
|
512 |
-
if ( WPSEO_Utils::is_yoast_seo_premium() === false ) {
|
513 |
-
$button = new WPSEO_Metabox_Keyword_Synonyms_Config();
|
514 |
-
$button->enqueue_translations();
|
515 |
-
|
516 |
-
$multiple_keywords_button = new WPSEO_Metabox_Multiple_Keywords_Config();
|
517 |
-
$multiple_keywords_button->enqueue_translations();
|
518 |
-
}
|
519 |
-
|
520 |
switch ( $meta_field_def['type'] ) {
|
521 |
case 'text':
|
522 |
$ac = '';
|
@@ -787,6 +786,14 @@ class WPSEO_Metabox extends WPSEO_Meta {
|
|
787 |
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'post-scraper', 'wpseoPostScraperL10n', $this->localize_post_scraper_script() );
|
788 |
$yoast_components_l10n = new WPSEO_Admin_Asset_Yoast_Components_L10n();
|
789 |
$yoast_components_l10n->localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'post-scraper' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
790 |
/**
|
791 |
* Remove the emoji script as it is incompatible with both React and any
|
792 |
* contenteditable fields.
|
@@ -841,7 +848,6 @@ class WPSEO_Metabox extends WPSEO_Meta {
|
|
841 |
return array();
|
842 |
}
|
843 |
|
844 |
-
|
845 |
/**
|
846 |
* Returns an array with shortcode tags for all registered shortcodes.
|
847 |
*
|
371 |
private function get_content_meta_section() {
|
372 |
$content = $this->get_tab_content( 'general' );
|
373 |
|
374 |
+
/**
|
375 |
+
* Filter: 'wpseo_content_meta_section_content' - Allow filtering the metabox content before outputting.
|
376 |
+
*
|
377 |
+
* @api string $post_content The metabox content string.
|
378 |
+
*/
|
379 |
+
$content = apply_filters( 'wpseo_content_meta_section_content', $content );
|
380 |
+
|
381 |
return new WPSEO_Metabox_Section_React(
|
382 |
'content',
|
383 |
'<span class="screen-reader-text">' . __( 'Content optimization', 'wordpress-seo' ) . '</span><span class="yst-traffic-light-container">' . WPSEO_Utils::traffic_light_svg() . '</span>',
|
423 |
* @return string
|
424 |
*/
|
425 |
private function get_buy_premium_link() {
|
426 |
+
return sprintf( '<div class="%1$s"><a target="_blank" rel="noopener noreferrer" href="%2$s"><span class="dashicons dashicons-star-filled wpseo-buy-premium"></span>%3$s</a></div>',
|
427 |
'wpseo-metabox-buy-premium',
|
428 |
esc_url( WPSEO_Shortlinker::get( 'https://yoa.st/pe-premium-page' ) ),
|
429 |
__( 'Go Premium', 'wordpress-seo' )
|
516 |
$description = '<p id="' . $esc_form_key . '-desc" class="yoast-metabox__description">' . $meta_field_def['description'] . '</p>';
|
517 |
}
|
518 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
519 |
switch ( $meta_field_def['type'] ) {
|
520 |
case 'text':
|
521 |
$ac = '';
|
786 |
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'post-scraper', 'wpseoPostScraperL10n', $this->localize_post_scraper_script() );
|
787 |
$yoast_components_l10n = new WPSEO_Admin_Asset_Yoast_Components_L10n();
|
788 |
$yoast_components_l10n->localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'post-scraper' );
|
789 |
+
|
790 |
+
$analysis_worker_location = new WPSEO_Admin_Asset_Analysis_Worker_Location( $asset_manager->flatten_version( WPSEO_VERSION ) );
|
791 |
+
$used_keywords_assessment_location = new WPSEO_Admin_Asset_Analysis_Worker_Location( $asset_manager->flatten_version( WPSEO_VERSION ), 'used-keywords-assessment' );
|
792 |
+
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'post-scraper', 'wpseoAnalysisWorkerL10n', array(
|
793 |
+
'url' => $analysis_worker_location->get_url(),
|
794 |
+
'keywords_assessment_url' => $used_keywords_assessment_location->get_url(),
|
795 |
+
) );
|
796 |
+
|
797 |
/**
|
798 |
* Remove the emoji script as it is incompatible with both React and any
|
799 |
* contenteditable fields.
|
848 |
return array();
|
849 |
}
|
850 |
|
|
|
851 |
/**
|
852 |
* Returns an array with shortcode tags for all registered shortcodes.
|
853 |
*
|
admin/notifiers/class-post-type-archive-notification-handler.php
CHANGED
@@ -95,8 +95,8 @@ class WPSEO_Post_Type_Archive_Notification_Handler implements WPSEO_Listener, WP
|
|
95 |
);
|
96 |
$message .= PHP_EOL . PHP_EOL;
|
97 |
$message .= sprintf(
|
|
|
98 |
_n(
|
99 |
-
/* translators: %1$s is the archive template link start tag, %2$s is the link closing tag, %3$s is a comma separated string with content types. */
|
100 |
'Please check the %1$sarchive template%2$s for the following content type: %3$s.',
|
101 |
' Please check the %1$sarchive templates%2$s for the following content types: %3$s.',
|
102 |
count( $post_types ),
|
95 |
);
|
96 |
$message .= PHP_EOL . PHP_EOL;
|
97 |
$message .= sprintf(
|
98 |
+
/* translators: %1$s is the archive template link start tag, %2$s is the link closing tag, %3$s is a comma separated string with content types. */
|
99 |
_n(
|
|
|
100 |
'Please check the %1$sarchive template%2$s for the following content type: %3$s.',
|
101 |
' Please check the %1$sarchive templates%2$s for the following content types: %3$s.',
|
102 |
count( $post_types ),
|
admin/onpage/class-onpage.php
CHANGED
@@ -229,7 +229,7 @@ class WPSEO_OnPage implements WPSEO_WordPress_Integration {
|
|
229 |
* Let's start showing the notices to all admins by removing the hide-notice meta data for each admin resulting
|
230 |
* in popping up the notice again.
|
231 |
*/
|
232 |
-
delete_metadata( 'user', 0,
|
233 |
}
|
234 |
|
235 |
/**
|
229 |
* Let's start showing the notices to all admins by removing the hide-notice meta data for each admin resulting
|
230 |
* in popping up the notice again.
|
231 |
*/
|
232 |
+
delete_metadata( 'user', 0, self::USER_META_KEY, '', true );
|
233 |
}
|
234 |
|
235 |
/**
|
admin/recalculate/class-recalculate.php
CHANGED
@@ -40,7 +40,6 @@ abstract class WPSEO_Recalculate {
|
|
40 |
*/
|
41 |
abstract protected function item_to_response( $item );
|
42 |
|
43 |
-
|
44 |
/**
|
45 |
* Gets the items to recalculate
|
46 |
*
|
40 |
*/
|
41 |
abstract protected function item_to_response( $item );
|
42 |
|
|
|
43 |
/**
|
44 |
* Gets the items to recalculate
|
45 |
*
|
admin/roles/class-register-roles.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Role registration class.
|
10 |
*/
|
11 |
class WPSEO_Register_Roles implements WPSEO_WordPress_Integration {
|
|
|
12 |
/**
|
13 |
* Adds hooks.
|
14 |
*
|
9 |
* Role registration class.
|
10 |
*/
|
11 |
class WPSEO_Register_Roles implements WPSEO_WordPress_Integration {
|
12 |
+
|
13 |
/**
|
14 |
* Adds hooks.
|
15 |
*
|
admin/roles/class-role-manager-factory.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Role Manager Factory.
|
10 |
*/
|
11 |
class WPSEO_Role_Manager_Factory {
|
|
|
12 |
/**
|
13 |
* Retrieves the Role manager to use.
|
14 |
*
|
9 |
* Role Manager Factory.
|
10 |
*/
|
11 |
class WPSEO_Role_Manager_Factory {
|
12 |
+
|
13 |
/**
|
14 |
* Retrieves the Role manager to use.
|
15 |
*
|
admin/roles/class-role-manager-vip.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* VIP implementation of the Role Manager.
|
10 |
*/
|
11 |
final class WPSEO_Role_Manager_VIP extends WPSEO_Abstract_Role_Manager {
|
|
|
12 |
/**
|
13 |
* Adds a role to the system.
|
14 |
*
|
9 |
* VIP implementation of the Role Manager.
|
10 |
*/
|
11 |
final class WPSEO_Role_Manager_VIP extends WPSEO_Abstract_Role_Manager {
|
12 |
+
|
13 |
/**
|
14 |
* Adds a role to the system.
|
15 |
*
|
admin/roles/class-role-manager.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Role Manager interface.
|
10 |
*/
|
11 |
interface WPSEO_Role_Manager {
|
|
|
12 |
/**
|
13 |
* Registers a role.
|
14 |
*
|
9 |
* Role Manager interface.
|
10 |
*/
|
11 |
interface WPSEO_Role_Manager {
|
12 |
+
|
13 |
/**
|
14 |
* Registers a role.
|
15 |
*
|
admin/statistics/class-statistics-integration.php
CHANGED
@@ -9,6 +9,7 @@
|
|
9 |
* Class WPSEO_Statistic_Integration
|
10 |
*/
|
11 |
class WPSEO_Statistic_Integration implements WPSEO_WordPress_Integration {
|
|
|
12 |
/**
|
13 |
* Adds hooks to clear the cache.
|
14 |
*
|
9 |
* Class WPSEO_Statistic_Integration
|
10 |
*/
|
11 |
class WPSEO_Statistic_Integration implements WPSEO_WordPress_Integration {
|
12 |
+
|
13 |
/**
|
14 |
* Adds hooks to clear the cache.
|
15 |
*
|
admin/taxonomy/class-taxonomy-columns.php
CHANGED
@@ -244,6 +244,4 @@ class WPSEO_Taxonomy_Columns {
|
|
244 |
|
245 |
return WPSEO_Utils::is_metabox_active( $taxonomy, 'taxonomy' );
|
246 |
}
|
247 |
-
|
248 |
-
|
249 |
}
|
244 |
|
245 |
return WPSEO_Utils::is_metabox_active( $taxonomy, 'taxonomy' );
|
246 |
}
|
|
|
|
|
247 |
}
|
admin/taxonomy/class-taxonomy.php
CHANGED
@@ -107,6 +107,14 @@ class WPSEO_Taxonomy {
|
|
107 |
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'term-scraper', 'wpseoTermScraperL10n', $this->localize_term_scraper_script() );
|
108 |
$yoast_components_l10n = new WPSEO_Admin_Asset_Yoast_Components_L10n();
|
109 |
$yoast_components_l10n->localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'term-scraper' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
/**
|
111 |
* Remove the emoji script as it is incompatible with both React and any
|
112 |
* contenteditable fields.
|
107 |
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'term-scraper', 'wpseoTermScraperL10n', $this->localize_term_scraper_script() );
|
108 |
$yoast_components_l10n = new WPSEO_Admin_Asset_Yoast_Components_L10n();
|
109 |
$yoast_components_l10n->localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'term-scraper' );
|
110 |
+
|
111 |
+
$analysis_worker_location = new WPSEO_Admin_Asset_Analysis_Worker_Location( $asset_manager->flatten_version( WPSEO_VERSION ) );
|
112 |
+
$used_keywords_assessment_location = new WPSEO_Admin_Asset_Analysis_Worker_Location( $asset_manager->flatten_version( WPSEO_VERSION ), 'used-keywords-assessment' );
|
113 |
+
wp_localize_script( WPSEO_Admin_Asset_Manager::PREFIX . 'term-scraper', 'wpseoAnalysisWorkerL10n', array(
|
114 |
+
'url' => $analysis_worker_location->get_url(),
|
115 |
+
'keywords_assessment_url' => $used_keywords_assessment_location->get_url(),
|
116 |
+
) );
|
117 |
+
|
118 |
/**
|
119 |
* Remove the emoji script as it is incompatible with both React and any
|
120 |
* contenteditable fields.
|
admin/views/js-templates-primary-term.php
CHANGED
@@ -12,15 +12,6 @@ if ( ! defined( 'WPSEO_VERSION' ) ) {
|
|
12 |
}
|
13 |
?>
|
14 |
|
15 |
-
<script type="text/html" id="tmpl-primary-term-input">
|
16 |
-
<input type="hidden" class="yoast-wpseo-primary-term"
|
17 |
-
id="yoast-wpseo-primary-{{data.taxonomy.name}}"
|
18 |
-
name="<?php echo esc_attr( WPSEO_Meta::$form_prefix ); ?>primary_{{data.taxonomy.name}}_term"
|
19 |
-
value="{{data.taxonomy.primary}}">
|
20 |
-
|
21 |
-
<?php wp_nonce_field( 'save-primary-term', WPSEO_Meta::$form_prefix . 'primary_{{data.taxonomy.name}}_nonce' ); ?>
|
22 |
-
</script>
|
23 |
-
|
24 |
<script type="text/html" id="tmpl-primary-term-ui">
|
25 |
<?php
|
26 |
printf(
|
12 |
}
|
13 |
?>
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
<script type="text/html" id="tmpl-primary-term-ui">
|
16 |
<?php
|
17 |
printf(
|
admin/views/tabs/metas/paper-content/post-type-content.php
CHANGED
@@ -28,7 +28,7 @@ if ( $wpseo_post_type->name === 'product' && WPSEO_Utils::is_woocommerce_active(
|
|
28 |
if ( WPSEO_Post_Type::has_archive( $wpseo_post_type ) ) {
|
29 |
$plural_label = $wpseo_post_type->labels->name;
|
30 |
|
31 |
-
|
32 |
echo '<h3>' . esc_html( sprintf( __( 'Settings for %s archive', 'wordpress-seo' ), $plural_label ) ) . '</h3>';
|
33 |
|
34 |
$custom_post_type_archive_help = $view_utils->search_results_setting_help( $wpseo_post_type, 'archive' );
|
28 |
if ( WPSEO_Post_Type::has_archive( $wpseo_post_type ) ) {
|
29 |
$plural_label = $wpseo_post_type->labels->name;
|
30 |
|
31 |
+
/* translators: %s is the plural version of the post type's name. */
|
32 |
echo '<h3>' . esc_html( sprintf( __( 'Settings for %s archive', 'wordpress-seo' ), $plural_label ) ) . '</h3>';
|
33 |
|
34 |
$custom_post_type_archive_help = $view_utils->search_results_setting_help( $wpseo_post_type, 'archive' );
|
admin/views/tabs/metas/paper-content/post_type/woocommerce-shop-page.php
CHANGED
@@ -19,5 +19,6 @@ if ( $woocommerce_shop_page->get_shop_page_id() !== -1 ) {
|
|
19 |
);
|
20 |
}
|
21 |
|
|
|
22 |
echo '<h3>' . esc_html( sprintf( __( 'Settings for %s archive', 'wordpress-seo' ), $wpseo_post_type->labels->name ) ) . '</h3>';
|
23 |
echo '<p>' . $description . '</p>';
|
19 |
);
|
20 |
}
|
21 |
|
22 |
+
/* translators: %s expands to the post type name. */
|
23 |
echo '<h3>' . esc_html( sprintf( __( 'Settings for %s archive', 'wordpress-seo' ), $wpseo_post_type->labels->name ) ) . '</h3>';
|
24 |
echo '<p>' . $description . '</p>';
|
css/dist/{admin-global-800-rtl.min.css → admin-global-810-rtl.min.css}
RENAMED
File without changes
|
css/dist/{admin-global-800.min.css → admin-global-810.min.css}
RENAMED
File without changes
|
css/dist/{adminbar-800-rtl.min.css → adminbar-810-rtl.min.css}
RENAMED
File without changes
|
css/dist/{adminbar-800.min.css → adminbar-810.min.css}
RENAMED
File without changes
|
css/dist/{alerts-800-rtl.min.css → alerts-810-rtl.min.css}
RENAMED
@@ -1 +1 @@
|
|
1 |
-
.screen-reader-text{overflow:hidden;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;padding:0;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}body{margin:0;padding:0}#container{max-width:1660px;margin:0 auto}.yoast-wizard-body{box-sizing:border-box;width:80%;max-width:60em;margin:1rem auto 4rem}@media screen and (max-width:768px){.yoast-wizard-body{width:auto;margin:0}}.yoast-wizard__logo{display:block;margin:0 auto}.yoast-wizard{box-sizing:border-box;width:100%;min-height:20px;padding:2em;background:#fff;text-align:right}@media screen and (max-width:768px){.yoast-wizard{padding:1em 1em 2em}}.yoast-wizard--header{text-align:center}.yoast-wizard--header--page-title{margin:0 0 -16px;padding:0 8px;color:#a4286a;font-size:1.25em;font-weight:400;line-height:2.5;letter-spacing:.03em}.yoast-wizard--navigation{width:100%;text-align:left}.yoast-wizard--button{margin-top:1em}.yoast-wizard--button__next{margin-right:1em}.yoast-wizard--button__next button:focus,.yoast-wizard--button__next button:hover{background-color:#6c2548!important}.yoast-wizard--button__next button:focus div,.yoast-wizard--button__next button:hover div{background-color:transparent!important}.yoast-wizard--button__previous button:focus{background:#ddd!important}.yoast-wizard--button__previous button:focus:active{background:0 0!important}.yoast-wizard--button__previous button:focus>div>span,.yoast-wizard--button__previous button:hover>div>span{color:#000!important}.yoast-wizard--step__inactive div{pointer-events:none}@media screen and (max-width:768px){.yoast-wizard--header--page-title{font-size:1.5em;line-height:1.25}.yoast-wizard--step__active{overflow:hidden;width:38px}.yoast-wizard--step__active div{display:inline-block!important;vertical-align:middle}.yoast-wizard--step__active div>span>span{display:block!important;margin-right:-7px;padding-left:99px!important}.yoast-wizard--step__inactive{display:none!important}}.yoast-wizard--step--container:focus{outline:0}.yoast-wizard--step--container h1{margin:0;color:#a4286a;font-size:2.25em;font-weight:100;line-height:3.68rem;letter-spacing:.03em}@media screen and (max-width:768px){.yoast-wizard--step--container h1{font-size:2em;line-height:1.25}}.yoast-wizard--step--container h2{color:#a4286a;font-size:1.375em;font-weight:100}.yoast-wizard--stepper{width:100%;margin:auto}.yoast-wizard-overlay{position:absolute;z-index:10;top:0;right:0;width:100%;height:100%;opacity:.2;color:#fff;background-color:#000;text-align:center}.yoast-wizard-overlay-loader{position:relative}.yoast-wizard-container{position:relative;min-height:20px;border:1px solid #ccc;box-shadow:rgba(0,0,0,.15) 0 3px 10px,rgba(0,0,0,.2) 0 3px 10px;text-align:right}.yoast-wizard-container--no-navigation{margin-top:40px}.yoast-wizard-container--no-navigation .yoast-wizard{padding-top:3em}@media screen and (max-width:768px){.yoast-wizard-container{box-shadow:none}}.yoast-wizard-container fieldset{margin:1em 0;border:0}.yoast-wizard-text-input{padding-bottom:.5em;font-size:14px}.yoast-wizard-text-input-label{display:block;margin:.5em 0 0;font-size:14px;font-weight:700;cursor:pointer}.yoast-wizard-text-input [type=text]{box-sizing:border-box;width:100%;max-width:450px}.yoast-video-container-max-width,.yoast-wizard-content-container{max-width:560px}.yoast-wizard-field-description{font-weight:700}.yoast-wizard input{margin:.5em 0;padding:5px;font-size:14px;line-height:140%}.yoast-wizard label{cursor:pointer}.yoast-wizard input[type=radio]{margin:.3em 0 .3em .7em;vertical-align:middle}.yoast-wizard-input__explanation{margin-top:0;color:#555;font-style:italic}.yoast-wizard-input-radio{font-size:14px}.yoast-wizard-input-radio-option label{padding-top:2px}.yoast-wizard-input-radio-separator{padding:0}.yoast-wizard-input-radio-separator input{position:absolute;right:-9999em;width:1px;height:1px}.yoast-wizard-input-radio-separator input+label{float:right;width:30px!important;margin:0 0 5px 5px!important;padding:6px 3px;border:1px solid #ccc;font-family:Arial,Helvetica,sans-serif!important;font-size:18px!important;line-height:24px;text-align:center;cursor:pointer}.yoast-wizard-input-radio-separator input:checked+label{border:1px solid #a4286a;background-color:#fff;box-shadow:inset 0 0 0 2px #a4286a}.yoast-wizard-input-radio-separator input:checked+label,.yoast-wizard-input-radio-separator input:focus+label{border-radius:10px 10px 10px 0}.yoast-video-container{overflow:hidden;position:relative;height:0;padding-bottom:56.25%}.yoast-video-container iframe{position:absolute;top:0;right:0;width:100%;height:100%}.yoast-wizard-notice__error{margin-bottom:15px;padding:12px;border-right:4px solid #dc3232;background:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.yoast-wizard-content-container.yoast-wizard-content-container__is-full-width{max-width:none}@keyframes heartbeat{0%{opacity:.4;transform:scale(.7)}80%{opacity:1}100%{opacity:1;transform:scale(.95)}}.yoast-loader{animation:heartbeat 1.15s infinite;animation-timing-function:cubic-bezier(.96,.02,.63,.86);animation-direction:alternate}.yoast-alert{padding:0 12px;border-right:4px solid #fff;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}.yoast-alerts .yoast-alert-holder{margin-bottom:.8em}.yoast-alerts .yoast-alert{width:100%}.yoast-container__alert .yoast-alert{border-right-color:#dc3232}#yoast-alerts-dismissed .yoast-alert{border-right-color:#d93f69}.yoast-container__warning .yoast-alert{border-right-color:#5d237a}#yoast-warnings-dismissed .yoast-alert{border-right-color:#0075b3}.yoast-container{position:relative;max-width:1280px;margin:20px 0 1px;padding:20px 20px 0;border:1px solid #e5e5e5;background-color:#fdfdfd;box-shadow:0 1px 1px rgba(0,0,0,.04)}.yoast-alerts>h2:first-child{margin:0;padding:9px 0 4px;font-size:23px;font-weight:400;line-height:29px}.yoast-alerts .yoast-container h3{margin:-20px -20px 0;padding:1em;border-bottom:1px solid #ccc;background-color:#fdfdfd;font-size:1.4em}h3 .dashicons-warning{color:#dc3232}.yoast-container .container{max-width:980px}.yoast-container .yoast-alert-holder{display:-ms-flexbox;display:flex}.dismiss .dashicons,.restore .dashicons{width:24px;height:24px;font-size:24px}.yoast-bottom-spacing{margin-bottom:20px}.yoast-alerts .button.dismiss,.yoast-alerts .button.restore{width:45px;height:45px;margin-right:10px;padding:0;outline:0;line-height:inherit;cursor:pointer;-ms-flex:0 0 45px;flex:0 0 45px}.yoast-alerts .button.dismiss:focus,.yoast-alerts .button.dismiss:hover,.yoast-alerts .button.restore:focus,.yoast-alerts .button.restore:hover{background:0 0}.yoast-container .separator{margin-top:1em;margin-bottom:1em;border-top:1px solid #ddd}.yoast-container .dashicons-yes{color:#77b227}.yoast-container__warning .dashicons-flag{color:#5d237a}.yoast-container-disabled{display:table-cell;position:absolute;top:0;left:0;bottom:0;right:0;border-radius:4px;background-color:rgba(232,232,232,.7)}.yoast-no-issues{padding:1em 16px 1em 1em;color:#666}.yoast-muted-title{overflow:hidden;font-weight:600;font-style:italic}.yoast-muted-title:after{display:inline-block;width:100%;height:.5em;margin-left:-100%;margin-right:10px;border-top:1px solid #ddd;vertical-align:bottom;content:""}.yoast-alerts .yoast-container__configuration-wizard{display:-ms-flexbox;display:flex;min-height:0;margin-bottom:15px;padding-bottom:20px;background-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);align-items:center;-ms-flex-align:center}.yoast-alerts .yoast-container__configuration-wizard--content{margin:12px;padding:0;-ms-flex:1 1 auto;flex:1 1 auto}.yoast-alerts .yoast-container__configuration-wizard--content h3{margin:0 0 4px;padding:0;border-bottom:0;background:0 0;font-size:1.4em;line-height:1}.yoast-alerts .yoast-container__configuration-wizard--content p{margin:1em 0 0}.yoast-alerts .yoast-container__configuration-wizard--content p:last-child{margin:0}.yoast-alerts .yoast-container__configuration-wizard--dismiss{text-align:center}@media screen and (max-width:768px){.yoast-alerts .yoast-container__configuration-wizard img{display:none}.yoast-alerts .yoast-container__configuration-wizard--content{display:block;position:relative;padding:16px}.yoast-alerts .yoast-container__configuration-wizard--dismiss{position:absolute;top:5px;left:5px;width:40px;margin:0}}.yoast-alerts .yoast-container__configuration-wizard--dismiss .dashicons{margin-top:11px;text-decoration:none}
|
1 |
+
.screen-reader-text{overflow:hidden;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;padding:0;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}body{margin:0;padding:0}#container{max-width:1660px;margin:0 auto}.yoast-wizard-body{box-sizing:border-box;width:80%;max-width:60em;margin:1rem auto 4rem}@media screen and (max-width:768px){.yoast-wizard-body{width:auto;margin:0}}.yoast-wizard__logo{display:block;margin:0 auto}.yoast-wizard{box-sizing:border-box;width:100%;min-height:20px;padding:2em;background:#fff;text-align:right}@media screen and (max-width:768px){.yoast-wizard{padding:1em 1em 2em}}.yoast-wizard--header{text-align:center}.yoast-wizard--header--page-title{margin:0 0 -16px;padding:0 8px;color:#a4286a;font-size:1.25em;font-weight:400;line-height:2.5;letter-spacing:.03em}.yoast-wizard--navigation{width:100%;text-align:left}.yoast-wizard--button{margin-top:1em}.yoast-wizard--button__next{margin-right:1em}.yoast-wizard--button__next button:focus,.yoast-wizard--button__next button:hover{background-color:#6c2548!important}.yoast-wizard--button__next button:focus div,.yoast-wizard--button__next button:hover div{background-color:transparent!important}.yoast-wizard--button__previous button:focus{background:#ddd!important}.yoast-wizard--button__previous button:focus:active{background:0 0!important}.yoast-wizard--button__previous button:focus>div>span,.yoast-wizard--button__previous button:hover>div>span{color:#000!important}.yoast-wizard--step__inactive div{pointer-events:none}@media screen and (max-width:768px){.yoast-wizard--header--page-title{font-size:1.5em;line-height:1.25}.yoast-wizard--step__active{overflow:hidden;width:38px}.yoast-wizard--step__active div{display:inline-block!important;vertical-align:middle}.yoast-wizard--step__active div>span>span{display:block!important;margin-right:-7px;padding-left:99px!important}.yoast-wizard--step__inactive{display:none!important}}.yoast-wizard--step--container:focus{outline:0}.yoast-wizard--step--container h1{margin:0;color:#a4286a;font-size:2.25em;font-weight:100;line-height:3.68rem;letter-spacing:.03em}@media screen and (max-width:768px){.yoast-wizard--step--container h1{font-size:2em;line-height:1.25}}.yoast-wizard--step--container h2{color:#a4286a;font-size:1.375em;font-weight:100}.yoast-wizard--stepper{width:100%;margin:auto}.yoast-wizard-overlay{position:absolute;z-index:10;top:0;right:0;width:100%;height:100%;opacity:.2;color:#fff;background-color:#000;text-align:center}.yoast-wizard-overlay-loader{position:relative}.yoast-wizard-container{position:relative;min-height:20px;border:1px solid #ccc;box-shadow:rgba(0,0,0,.15) 0 3px 10px,rgba(0,0,0,.2) 0 3px 10px;text-align:right}.yoast-wizard-container--no-navigation{margin-top:40px}.yoast-wizard-container--no-navigation .yoast-wizard{padding-top:3em}@media screen and (max-width:768px){.yoast-wizard-container{box-shadow:none}}.yoast-wizard-container fieldset{margin:1em 0;border:0}.yoast-wizard-text-input{padding-bottom:.5em;font-size:14px}.yoast-wizard-text-input-label{display:block;margin:.5em 0 0;font-size:14px;font-weight:700;cursor:pointer}.yoast-wizard-text-input [type=text]{box-sizing:border-box;width:100%;max-width:450px}.yoast-video-container-max-width,.yoast-wizard-content-container{max-width:560px}.yoast-wizard-field-description{font-weight:700}.yoast-wizard input{margin:.5em 0;padding:5px;font-size:14px;line-height:140%}.yoast-wizard label{cursor:pointer}.yoast-wizard input[type=radio]{margin:.3em 0 .3em .7em;vertical-align:middle}.yoast-wizard-input__explanation{margin-top:0;color:#555;font-style:italic}.yoast-wizard-input-radio{font-size:14px}.yoast-wizard-input-radio-option label{padding-top:2px}.yoast-wizard-input-radio-separator{padding:0}.yoast-wizard-input-radio-separator input{position:absolute;right:-9999em;width:1px;height:1px}.yoast-wizard-input-radio-separator input+label{float:right;width:30px!important;margin:0 0 5px 5px!important;padding:6px 3px;border:1px solid #ccc;font-family:Arial,Helvetica,sans-serif!important;font-size:18px!important;line-height:24px;text-align:center;cursor:pointer}.yoast-wizard-input-radio-separator input:checked+label{border:1px solid #a4286a;background-color:#fff;box-shadow:inset 0 0 0 2px #a4286a}.yoast-wizard-input-radio-separator input:checked+label,.yoast-wizard-input-radio-separator input:focus+label{border-radius:10px 10px 10px 0}.yoast-video-container{overflow:hidden;position:relative;height:0;padding-bottom:56.25%}.yoast-video-container iframe{position:absolute;top:0;right:0;width:100%;height:100%}.yoast-wizard-notice__error{margin-bottom:15px;padding:12px;border-right:4px solid #dc3232;background:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.yoast-wizard-content-container.yoast-wizard-content-container__is-full-width{max-width:none}@keyframes heartbeat{0%{opacity:.4;transform:scale(.7)}80%{opacity:1}100%{opacity:1;transform:scale(.95)}}.yoast-loader{animation:heartbeat 1.15s infinite;animation-timing-function:cubic-bezier(.96,.02,.63,.86);animation-direction:alternate}.yoast-svg-icon-loading-spinner{animation:rotator 1.4s linear infinite}@keyframes rotator{0%{transform:rotate(0)}100%{transform:rotate(-270deg)}}.path{-ms-transform-origin:center;transform-origin:center;animation:dash 1.4s ease-in-out infinite,colors 5.6s ease-in-out infinite;stroke-dasharray:187;stroke-dashoffset:0}@keyframes colors{0%,100%,25%,50%,75%{stroke:#64a60a}}@keyframes dash{0%{stroke-dashoffset:187}50%{transform:rotate(-135deg);stroke-dashoffset:46.75}100%{transform:rotate(-450deg);stroke-dashoffset:187}}.yoast-alert{padding:0 12px;border-right:4px solid #fff;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}.yoast-alerts .yoast-alert-holder{margin-bottom:.8em}.yoast-alerts .yoast-alert{width:100%}.yoast-container__alert .yoast-alert{border-right-color:#dc3232}#yoast-alerts-dismissed .yoast-alert{border-right-color:#d93f69}.yoast-container__warning .yoast-alert{border-right-color:#5d237a}#yoast-warnings-dismissed .yoast-alert{border-right-color:#0075b3}.yoast-container{position:relative;max-width:1280px;margin:20px 0 1px;padding:20px 20px 0;border:1px solid #e5e5e5;background-color:#fdfdfd;box-shadow:0 1px 1px rgba(0,0,0,.04)}.yoast-alerts>h2:first-child{margin:0;padding:9px 0 4px;font-size:23px;font-weight:400;line-height:29px}.yoast-alerts .yoast-container h3{margin:-20px -20px 0;padding:1em;border-bottom:1px solid #ccc;background-color:#fdfdfd;font-size:1.4em}h3 .dashicons-warning{color:#dc3232}.yoast-container .container{max-width:980px}.yoast-container .yoast-alert-holder{display:-ms-flexbox;display:flex}.dismiss .dashicons,.restore .dashicons{width:24px;height:24px;font-size:24px}.yoast-bottom-spacing{margin-bottom:20px}.yoast-alerts .button.dismiss,.yoast-alerts .button.restore{width:45px;height:45px;margin-right:10px;padding:0;outline:0;line-height:inherit;cursor:pointer;-ms-flex:0 0 45px;flex:0 0 45px}.yoast-alerts .button.dismiss:focus,.yoast-alerts .button.dismiss:hover,.yoast-alerts .button.restore:focus,.yoast-alerts .button.restore:hover{background:0 0}.yoast-container .separator{margin-top:1em;margin-bottom:1em;border-top:1px solid #ddd}.yoast-container .dashicons-yes{color:#77b227}.yoast-container__warning .dashicons-flag{color:#5d237a}.yoast-container-disabled{display:table-cell;position:absolute;top:0;left:0;bottom:0;right:0;border-radius:4px;background-color:rgba(232,232,232,.7)}.yoast-no-issues{padding:1em 16px 1em 1em;color:#666}.yoast-muted-title{overflow:hidden;font-weight:600;font-style:italic}.yoast-muted-title:after{display:inline-block;width:100%;height:.5em;margin-left:-100%;margin-right:10px;border-top:1px solid #ddd;vertical-align:bottom;content:""}.yoast-alerts .yoast-container__configuration-wizard{display:-ms-flexbox;display:flex;min-height:0;margin-bottom:15px;padding-bottom:20px;background-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);align-items:center;-ms-flex-align:center}.yoast-alerts .yoast-container__configuration-wizard--content{margin:12px;padding:0;-ms-flex:1 1 auto;flex:1 1 auto}.yoast-alerts .yoast-container__configuration-wizard--content h3{margin:0 0 4px;padding:0;border-bottom:0;background:0 0;font-size:1.4em;line-height:1}.yoast-alerts .yoast-container__configuration-wizard--content p{margin:1em 0 0}.yoast-alerts .yoast-container__configuration-wizard--content p:last-child{margin:0}.yoast-alerts .yoast-container__configuration-wizard--dismiss{text-align:center}@media screen and (max-width:768px){.yoast-alerts .yoast-container__configuration-wizard img{display:none}.yoast-alerts .yoast-container__configuration-wizard--content{display:block;position:relative;padding:16px}.yoast-alerts .yoast-container__configuration-wizard--dismiss{position:absolute;top:5px;left:5px;width:40px;margin:0}}.yoast-alerts .yoast-container__configuration-wizard--dismiss .dashicons{margin-top:11px;text-decoration:none}
|
css/dist/{alerts-800.min.css → alerts-810.min.css}
RENAMED
@@ -1 +1 @@
|
|
1 |
-
.screen-reader-text{overflow:hidden;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;padding:0;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}body{margin:0;padding:0}#container{max-width:1660px;margin:0 auto}.yoast-wizard-body{box-sizing:border-box;width:80%;max-width:60em;margin:1rem auto 4rem}@media screen and (max-width:768px){.yoast-wizard-body{width:auto;margin:0}}.yoast-wizard__logo{display:block;margin:0 auto}.yoast-wizard{box-sizing:border-box;width:100%;min-height:20px;padding:2em;background:#fff;text-align:left}@media screen and (max-width:768px){.yoast-wizard{padding:1em 1em 2em}}.yoast-wizard--header{text-align:center}.yoast-wizard--header--page-title{margin:0 0 -16px;padding:0 8px;color:#a4286a;font-size:1.25em;font-weight:400;line-height:2.5;letter-spacing:.03em}.yoast-wizard--navigation{width:100%;text-align:right}.yoast-wizard--button{margin-top:1em}.yoast-wizard--button__next{margin-left:1em}.yoast-wizard--button__next button:focus,.yoast-wizard--button__next button:hover{background-color:#6c2548!important}.yoast-wizard--button__next button:focus div,.yoast-wizard--button__next button:hover div{background-color:transparent!important}.yoast-wizard--button__previous button:focus{background:#ddd!important}.yoast-wizard--button__previous button:focus:active{background:0 0!important}.yoast-wizard--button__previous button:focus>div>span,.yoast-wizard--button__previous button:hover>div>span{color:#000!important}.yoast-wizard--step__inactive div{pointer-events:none}@media screen and (max-width:768px){.yoast-wizard--header--page-title{font-size:1.5em;line-height:1.25}.yoast-wizard--step__active{overflow:hidden;width:38px}.yoast-wizard--step__active div{display:inline-block!important;vertical-align:middle}.yoast-wizard--step__active div>span>span{display:block!important;margin-left:-7px;padding-right:99px!important}.yoast-wizard--step__inactive{display:none!important}}.yoast-wizard--step--container:focus{outline:0}.yoast-wizard--step--container h1{margin:0;color:#a4286a;font-size:2.25em;font-weight:100;line-height:3.68rem;letter-spacing:.03em}@media screen and (max-width:768px){.yoast-wizard--step--container h1{font-size:2em;line-height:1.25}}.yoast-wizard--step--container h2{color:#a4286a;font-size:1.375em;font-weight:100}.yoast-wizard--stepper{width:100%;margin:auto}.yoast-wizard-overlay{position:absolute;z-index:10;top:0;left:0;width:100%;height:100%;opacity:.2;color:#fff;background-color:#000;text-align:center}.yoast-wizard-overlay-loader{position:relative}.yoast-wizard-container{position:relative;min-height:20px;border:1px solid #ccc;box-shadow:rgba(0,0,0,.15) 0 3px 10px,rgba(0,0,0,.2) 0 3px 10px;text-align:left}.yoast-wizard-container--no-navigation{margin-top:40px}.yoast-wizard-container--no-navigation .yoast-wizard{padding-top:3em}@media screen and (max-width:768px){.yoast-wizard-container{box-shadow:none}}.yoast-wizard-container fieldset{margin:1em 0;border:0}.yoast-wizard-text-input{padding-bottom:.5em;font-size:14px}.yoast-wizard-text-input-label{display:block;margin:.5em 0 0;font-size:14px;font-weight:700;cursor:pointer}.yoast-wizard-text-input [type=text]{box-sizing:border-box;width:100%;max-width:450px}.yoast-video-container-max-width,.yoast-wizard-content-container{max-width:560px}.yoast-wizard-field-description{font-weight:700}.yoast-wizard input{margin:.5em 0;padding:5px;font-size:14px;line-height:140%}.yoast-wizard label{cursor:pointer}.yoast-wizard input[type=radio]{margin:.3em .7em .3em 0;vertical-align:middle}.yoast-wizard-input__explanation{margin-top:0;color:#555;font-style:italic}.yoast-wizard-input-radio{font-size:14px}.yoast-wizard-input-radio-option label{padding-top:2px}.yoast-wizard-input-radio-separator{padding:0}.yoast-wizard-input-radio-separator input{position:absolute;left:-9999em;width:1px;height:1px}.yoast-wizard-input-radio-separator input+label{float:left;width:30px!important;margin:0 5px 5px 0!important;padding:6px 3px;border:1px solid #ccc;font-family:Arial,Helvetica,sans-serif!important;font-size:18px!important;line-height:24px;text-align:center;cursor:pointer}.yoast-wizard-input-radio-separator input:checked+label{border:1px solid #a4286a;background-color:#fff;box-shadow:inset 0 0 0 2px #a4286a}.yoast-wizard-input-radio-separator input:checked+label,.yoast-wizard-input-radio-separator input:focus+label{border-radius:10px 10px 0}.yoast-video-container{overflow:hidden;position:relative;height:0;padding-bottom:56.25%}.yoast-video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.yoast-wizard-notice__error{margin-bottom:15px;padding:12px;border-left:4px solid #dc3232;background:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.yoast-wizard-content-container.yoast-wizard-content-container__is-full-width{max-width:none}@keyframes heartbeat{0%{opacity:.4;transform:scale(.7)}80%{opacity:1}100%{opacity:1;transform:scale(.95)}}.yoast-loader{animation:heartbeat 1.15s infinite;animation-timing-function:cubic-bezier(.96,.02,.63,.86);animation-direction:alternate}.yoast-alert{padding:0 12px;border-left:4px solid #fff;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}.yoast-alerts .yoast-alert-holder{margin-bottom:.8em}.yoast-alerts .yoast-alert{width:100%}.yoast-container__alert .yoast-alert{border-left-color:#dc3232}#yoast-alerts-dismissed .yoast-alert{border-left-color:#d93f69}.yoast-container__warning .yoast-alert{border-left-color:#5d237a}#yoast-warnings-dismissed .yoast-alert{border-left-color:#0075b3}.yoast-container{position:relative;max-width:1280px;margin:20px 0 1px;padding:20px 20px 0;border:1px solid #e5e5e5;background-color:#fdfdfd;box-shadow:0 1px 1px rgba(0,0,0,.04)}.yoast-alerts>h2:first-child{margin:0;padding:9px 0 4px;font-size:23px;font-weight:400;line-height:29px}.yoast-alerts .yoast-container h3{margin:-20px -20px 0;padding:1em;border-bottom:1px solid #ccc;background-color:#fdfdfd;font-size:1.4em}h3 .dashicons-warning{color:#dc3232}.yoast-container .container{max-width:980px}.yoast-container .yoast-alert-holder{display:-ms-flexbox;display:flex}.dismiss .dashicons,.restore .dashicons{width:24px;height:24px;font-size:24px}.yoast-bottom-spacing{margin-bottom:20px}.yoast-alerts .button.dismiss,.yoast-alerts .button.restore{width:45px;height:45px;margin-left:10px;padding:0;outline:0;line-height:inherit;cursor:pointer;-ms-flex:0 0 45px;flex:0 0 45px}.yoast-alerts .button.dismiss:focus,.yoast-alerts .button.dismiss:hover,.yoast-alerts .button.restore:focus,.yoast-alerts .button.restore:hover{background:0 0}.yoast-container .separator{margin-top:1em;margin-bottom:1em;border-top:1px solid #ddd}.yoast-container .dashicons-yes{color:#77b227}.yoast-container__warning .dashicons-flag{color:#5d237a}.yoast-container-disabled{display:table-cell;position:absolute;top:0;right:0;bottom:0;left:0;border-radius:4px;background-color:rgba(232,232,232,.7)}.yoast-no-issues{padding:1em 1em 1em 16px;color:#666}.yoast-muted-title{overflow:hidden;font-weight:600;font-style:italic}.yoast-muted-title:after{display:inline-block;width:100%;height:.5em;margin-right:-100%;margin-left:10px;border-top:1px solid #ddd;vertical-align:bottom;content:""}.yoast-alerts .yoast-container__configuration-wizard{display:-ms-flexbox;display:flex;min-height:0;margin-bottom:15px;padding-bottom:20px;background-color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);align-items:center;-ms-flex-align:center}.yoast-alerts .yoast-container__configuration-wizard--content{margin:12px;padding:0;-ms-flex:1 1 auto;flex:1 1 auto}.yoast-alerts .yoast-container__configuration-wizard--content h3{margin:0 0 4px;padding:0;border-bottom:0;background:0 0;font-size:1.4em;line-height:1}.yoast-alerts .yoast-container__configuration-wizard--content p{margin:1em 0 0}.yoast-alerts .yoast-container__configuration-wizard--content p:last-child{margin:0}.yoast-alerts .yoast-container__configuration-wizard--dismiss{text-align:center}@media screen and (max-width:768px){.yoast-alerts .yoast-container__configuration-wizard img{display:none}.yoast-alerts .yoast-container__configuration-wizard--content{display:block;position:relative;padding:16px}.yoast-alerts .yoast-container__configuration-wizard--dismiss{position:absolute;top:5px;right:5px;width:40px;margin:0}}.yoast-alerts .yoast-container__configuration-wizard--dismiss .dashicons{margin-top:11px;text-decoration:none}
|
1 |
+
.screen-reader-text{overflow:hidden;clip:rect(1px,1px,1px,1px);position:absolute!important;width:1px;height:1px;padding:0;border |