Version Description
Download this release
Release Info
Developer | Yoast |
Plugin | Yoast SEO |
Version | 12.3 |
Comparing to | |
See all releases |
Code changes from version 12.2 to 12.3
- admin/admin-settings-changed-listener.php +85 -0
- admin/class-admin-asset-manager.php +4 -0
- admin/class-admin-init.php +11 -51
- admin/class-admin.php +1 -0
- admin/class-gutenberg-compatibility.php +2 -2
- admin/class-plugin-compatibility.php +27 -0
- admin/class-yoast-form.php +13 -0
- admin/class-yoast-input-validation.php +37 -2
- admin/import/plugins/class-import-rankmath.php +174 -0
- admin/import/plugins/class-importers.php +1 -0
- admin/tracking/class-tracking-plugin-data.php +0 -5
- admin/tracking/class-tracking-settings-data.php +129 -1
- admin/views/form/select.php +1 -0
- admin/views/sidebar.php +30 -7
- css/dist/{admin-global-1220-rtl.min.css → admin-global-1230-rtl.min.css} +1 -1
- css/dist/{admin-global-1220.min.css → admin-global-1230.min.css} +1 -1
- css/dist/{adminbar-1220-rtl.min.css → adminbar-1230-rtl.min.css} +0 -0
- css/dist/{adminbar-1220.min.css → adminbar-1230.min.css} +0 -0
- css/dist/{alerts-1220-rtl.min.css → alerts-1230-rtl.min.css} +0 -0
- css/dist/{alerts-1220.min.css → alerts-1230.min.css} +0 -0
- css/dist/{dashboard-1220-rtl.min.css → dashboard-1230-rtl.min.css} +0 -0
- css/dist/{dashboard-1220.min.css → dashboard-1230.min.css} +0 -0
- css/dist/{edit-page-1220-rtl.min.css → edit-page-1230-rtl.min.css} +0 -0
- css/dist/{edit-page-1220.min.css → edit-page-1230.min.css} +0 -0
- css/dist/{featured-image-1220-rtl.min.css → featured-image-1230-rtl.min.css} +0 -0
- css/dist/{featured-image-1220.min.css → featured-image-1230.min.css} +0 -0
- css/dist/{filter-explanation-1220-rtl.min.css → filter-explanation-1230-rtl.min.css} +0 -0
- css/dist/{filter-explanation-1220.min.css → filter-explanation-1230.min.css} +0 -0
- css/dist/{inside-editor-1220-rtl.min.css → inside-editor-1230-rtl.min.css} +0 -0
- css/dist/{inside-editor-1220.min.css → inside-editor-1230.min.css} +0 -0
- css/dist/{metabox-1220-rtl.min.css → metabox-1230-rtl.min.css} +0 -0
- css/dist/{metabox-1220.min.css → metabox-1230.min.css} +0 -0
- css/dist/{metabox-primary-category-1220-rtl.min.css → metabox-primary-category-1230-rtl.min.css} +0 -0
- css/dist/{metabox-primary-category-1220.min.css → metabox-primary-category-1230.min.css} +0 -0
- css/dist/{search-appearance-1220-rtl.min.css → search-appearance-1230-rtl.min.css} +0 -0
- css/dist/{search-appearance-1220.min.css → search-appearance-1230.min.css} +0 -0
- css/dist/{structured-data-blocks-1220-rtl.min.css → structured-data-blocks-1230-rtl.min.css} +0 -0
- css/dist/{structured-data-blocks-1220.min.css → structured-data-blocks-1230.min.css} +0 -0
- css/dist/{toggle-switch-1220-rtl.min.css → toggle-switch-1230-rtl.min.css} +0 -0
- css/dist/{toggle-switch-1220.min.css → toggle-switch-1230.min.css} +0 -0
- css/dist/{wpseo-dismissible-1220-rtl.min.css → wpseo-dismissible-1230-rtl.min.css} +0 -0
- css/dist/{wpseo-dismissible-1220.min.css → wpseo-dismissible-1230.min.css} +0 -0
- css/dist/{yoast-components-1220-rtl.min.css → yoast-components-1230-rtl.min.css} +0 -0
- css/dist/{yoast-components-1220.min.css → yoast-components-1230.min.css} +0 -0
- css/dist/{yoast-extensions-1220-rtl.min.css → yoast-extensions-1230-rtl.min.css} +0 -0
- css/dist/{yoast-extensions-1220.min.css → yoast-extensions-1230.min.css} +0 -0
- css/dist/{yst_plugin_tools-1220-rtl.min.css → yst_plugin_tools-1230-rtl.min.css} +0 -0
- css/dist/{yst_plugin_tools-1220.min.css → yst_plugin_tools-1230.min.css} +0 -0
- css/dist/{yst_seo_score-1220-rtl.min.css → yst_seo_score-1230-rtl.min.css} +0 -0
- css/dist/{yst_seo_score-1220.min.css → yst_seo_score-1230.min.css} +0 -0
- {admin/metabox → deprecated/admin}/class-metabox-tab-section.php +43 -0
- frontend/schema/class-schema-utils.php +4 -1
- inc/class-upgrade.php +24 -0
- inc/health-check.php +184 -0
- inc/options/class-wpseo-option.php +3 -1
- inc/sitemaps/class-sitemaps.php +35 -13
- js/dist/analysis-1220.min.js +0 -21
admin/admin-settings-changed-listener.php
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Admin
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* A Wordpress integration that listens for whether the SEO changes have been saved successfully.
|
10 |
+
*/
|
11 |
+
class WPSEO_Admin_Settings_Changed_Listener implements WPSEO_WordPress_Integration {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Have the Yoast SEO settings been saved.
|
15 |
+
*
|
16 |
+
* @var bool
|
17 |
+
*/
|
18 |
+
private static $settings_saved = false;
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Registers all hooks to WordPress.
|
22 |
+
*
|
23 |
+
* @return void
|
24 |
+
*/
|
25 |
+
public function register_hooks() {
|
26 |
+
add_action( 'admin_init', array( $this, 'intercept_save_update_notification' ) );
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Checks and overwrites the wp_settings_errors global to determine whether the Yoast SEO settings have been saved.
|
31 |
+
*/
|
32 |
+
public function intercept_save_update_notification() {
|
33 |
+
global $pagenow;
|
34 |
+
|
35 |
+
if ( $pagenow !== 'admin.php' || ! WPSEO_Utils::is_yoast_seo_page() ) {
|
36 |
+
return;
|
37 |
+
}
|
38 |
+
|
39 |
+
// Variable name is the same as the global that is set by get_settings_errors.
|
40 |
+
$wp_settings_errors = get_settings_errors();
|
41 |
+
|
42 |
+
foreach ( $wp_settings_errors as $key => $wp_settings_error ) {
|
43 |
+
if ( ! $this->is_settings_updated_notification( $wp_settings_error ) ) {
|
44 |
+
continue;
|
45 |
+
}
|
46 |
+
|
47 |
+
self::$settings_saved = true;
|
48 |
+
unset( $wp_settings_errors[ $key ] );
|
49 |
+
// Overwrite the global with the list excluding the Changed saved message.
|
50 |
+
$GLOBALS['wp_settings_errors'] = $wp_settings_errors;
|
51 |
+
break;
|
52 |
+
}
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Checks whether the settings notification is a settings_updated notification.
|
57 |
+
*
|
58 |
+
* @param array $wp_settings_error The settings object.
|
59 |
+
*
|
60 |
+
* @return bool Whether this is a settings updated settings notification.
|
61 |
+
*/
|
62 |
+
public function is_settings_updated_notification( $wp_settings_error ) {
|
63 |
+
return ! empty( $wp_settings_error['code'] ) && $wp_settings_error['code'] === 'settings_updated';
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Get whether the settings have successfully been saved
|
68 |
+
*
|
69 |
+
* @return bool Whether the settings have successfully been saved.
|
70 |
+
*/
|
71 |
+
public function have_settings_been_saved() {
|
72 |
+
return self::$settings_saved;
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Renders a success message if the Yoast SEO settings have been saved.
|
77 |
+
*/
|
78 |
+
public function show_success_message() {
|
79 |
+
if ( $this->have_settings_been_saved() ) {
|
80 |
+
echo '<p class="wpseo-message"><span class="dashicons dashicons-yes"></span>',
|
81 |
+
esc_html__( 'Settings saved.', 'wordpress-seo' ),
|
82 |
+
'</p>';
|
83 |
+
}
|
84 |
+
}
|
85 |
+
}
|
admin/class-admin-asset-manager.php
CHANGED
@@ -372,6 +372,7 @@ class WPSEO_Admin_Asset_Manager {
|
|
372 |
'name' => 'admin-script',
|
373 |
'src' => 'wp-seo-admin-' . $flat_version,
|
374 |
'deps' => array(
|
|
|
375 |
'jquery',
|
376 |
'jquery-ui-core',
|
377 |
'jquery-ui-progressbar',
|
@@ -706,6 +707,9 @@ class WPSEO_Admin_Asset_Manager {
|
|
706 |
array(
|
707 |
'name' => 'adminbar',
|
708 |
'src' => 'adminbar-' . $flat_version,
|
|
|
|
|
|
|
709 |
),
|
710 |
array(
|
711 |
'name' => 'primary-category',
|
372 |
'name' => 'admin-script',
|
373 |
'src' => 'wp-seo-admin-' . $flat_version,
|
374 |
'deps' => array(
|
375 |
+
'lodash',
|
376 |
'jquery',
|
377 |
'jquery-ui-core',
|
378 |
'jquery-ui-progressbar',
|
707 |
array(
|
708 |
'name' => 'adminbar',
|
709 |
'src' => 'adminbar-' . $flat_version,
|
710 |
+
'deps' => array(
|
711 |
+
'admin-bar',
|
712 |
+
),
|
713 |
),
|
714 |
array(
|
715 |
'name' => 'primary-category',
|
admin/class-admin-init.php
CHANGED
@@ -40,7 +40,6 @@ class WPSEO_Admin_Init {
|
|
40 |
add_action( 'admin_init', array( $this, 'permalink_notice' ), 15 );
|
41 |
add_action( 'admin_init', array( $this, 'page_comments_notice' ), 15 );
|
42 |
add_action( 'admin_init', array( $this, 'ga_compatibility_notice' ), 15 );
|
43 |
-
add_action( 'admin_init', array( $this, 'yoast_plugin_compatibility_notification' ), 15 );
|
44 |
add_action( 'admin_init', array( $this, 'yoast_plugin_suggestions_notification' ), 15 );
|
45 |
add_action( 'admin_init', array( $this, 'recalculate_notice' ), 15 );
|
46 |
add_action( 'admin_init', array( $this, 'unsupported_php_notice' ), 15 );
|
@@ -340,56 +339,6 @@ class WPSEO_Admin_Init {
|
|
340 |
);
|
341 |
}
|
342 |
|
343 |
-
/**
|
344 |
-
* Add an alert if outdated versions of Yoast SEO plugins are running.
|
345 |
-
*/
|
346 |
-
public function yoast_plugin_compatibility_notification() {
|
347 |
-
$compatibility_checker = new WPSEO_Plugin_Compatibility( WPSEO_VERSION );
|
348 |
-
$plugins = $compatibility_checker->get_installed_plugins_compatibility();
|
349 |
-
|
350 |
-
$notification_center = Yoast_Notification_Center::get();
|
351 |
-
|
352 |
-
foreach ( $plugins as $name => $plugin ) {
|
353 |
-
$type = ( $plugin['active'] ) ? Yoast_Notification::ERROR : Yoast_Notification::WARNING;
|
354 |
-
$notification = $this->get_yoast_seo_compatibility_notification( $name, $plugin, $type );
|
355 |
-
|
356 |
-
if ( $plugin['active'] && $plugin['compatible'] === false ) {
|
357 |
-
$notification_center->add_notification( $notification );
|
358 |
-
|
359 |
-
continue;
|
360 |
-
}
|
361 |
-
|
362 |
-
$notification_center->remove_notification( $notification );
|
363 |
-
}
|
364 |
-
}
|
365 |
-
|
366 |
-
/**
|
367 |
-
* Build Yoast SEO compatibility problem notification.
|
368 |
-
*
|
369 |
-
* @param string $name The plugin name to use for the unique ID.
|
370 |
-
* @param array $plugin The plugin to retrieve the data from.
|
371 |
-
* @param string $level The severity level to use for the notification.
|
372 |
-
*
|
373 |
-
* @return Yoast_Notification
|
374 |
-
*/
|
375 |
-
private function get_yoast_seo_compatibility_notification( $name, $plugin, $level = Yoast_Notification::WARNING ) {
|
376 |
-
$info_message = sprintf(
|
377 |
-
/* translators: %1$s expands to Yoast SEO, %2$s expands to the plugin version, %3$s expands to the plugin name */
|
378 |
-
__( '%1$s detected you are using version %2$s of %3$s, please update to the latest version to prevent compatibility issues.', 'wordpress-seo' ),
|
379 |
-
'Yoast SEO',
|
380 |
-
$plugin['version'],
|
381 |
-
$plugin['title']
|
382 |
-
);
|
383 |
-
|
384 |
-
return new Yoast_Notification(
|
385 |
-
$info_message,
|
386 |
-
array(
|
387 |
-
'id' => 'wpseo-outdated-yoast-seo-plugin-' . $name,
|
388 |
-
'type' => $level,
|
389 |
-
)
|
390 |
-
);
|
391 |
-
}
|
392 |
-
|
393 |
/**
|
394 |
* Shows the notice for recalculating the post. the Notice will only be shown if the user hasn't dismissed it before.
|
395 |
*/
|
@@ -735,4 +684,15 @@ class WPSEO_Admin_Init {
|
|
735 |
);
|
736 |
}
|
737 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
738 |
}
|
40 |
add_action( 'admin_init', array( $this, 'permalink_notice' ), 15 );
|
41 |
add_action( 'admin_init', array( $this, 'page_comments_notice' ), 15 );
|
42 |
add_action( 'admin_init', array( $this, 'ga_compatibility_notice' ), 15 );
|
|
|
43 |
add_action( 'admin_init', array( $this, 'yoast_plugin_suggestions_notification' ), 15 );
|
44 |
add_action( 'admin_init', array( $this, 'recalculate_notice' ), 15 );
|
45 |
add_action( 'admin_init', array( $this, 'unsupported_php_notice' ), 15 );
|
339 |
);
|
340 |
}
|
341 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
342 |
/**
|
343 |
* Shows the notice for recalculating the post. the Notice will only be shown if the user hasn't dismissed it before.
|
344 |
*/
|
684 |
);
|
685 |
}
|
686 |
}
|
687 |
+
|
688 |
+
/* ********************* DEPRECATED METHODS ********************* */
|
689 |
+
/**
|
690 |
+
* Add an alert if outdated versions of Yoast SEO plugins are running.
|
691 |
+
*
|
692 |
+
* @deprecated 12.3
|
693 |
+
* @codeCoverageIgnore
|
694 |
+
*/
|
695 |
+
public function yoast_plugin_compatibility_notification() {
|
696 |
+
_deprecated_function( __METHOD__, 'WPSEO 12.3' );
|
697 |
+
}
|
698 |
}
|
admin/class-admin.php
CHANGED
@@ -112,6 +112,7 @@ class WPSEO_Admin {
|
|
112 |
$integrations[] = new WPSEO_MyYoast_Route();
|
113 |
$integrations[] = new WPSEO_Schema_Person_Upgrade_Notification();
|
114 |
$integrations[] = new WPSEO_Tracking( 'https://tracking.yoast.com/stats', ( WEEK_IN_SECONDS * 2 ) );
|
|
|
115 |
|
116 |
$integrations = array_merge(
|
117 |
$integrations,
|
112 |
$integrations[] = new WPSEO_MyYoast_Route();
|
113 |
$integrations[] = new WPSEO_Schema_Person_Upgrade_Notification();
|
114 |
$integrations[] = new WPSEO_Tracking( 'https://tracking.yoast.com/stats', ( WEEK_IN_SECONDS * 2 ) );
|
115 |
+
$integrations[] = new WPSEO_Admin_Settings_Changed_Listener();
|
116 |
|
117 |
$integrations = array_merge(
|
118 |
$integrations,
|
admin/class-gutenberg-compatibility.php
CHANGED
@@ -15,14 +15,14 @@ class WPSEO_Gutenberg_Compatibility {
|
|
15 |
*
|
16 |
* @var string
|
17 |
*/
|
18 |
-
const CURRENT_RELEASE = '6.
|
19 |
|
20 |
/**
|
21 |
* The minimally supported version of Gutenberg by the plugin.
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
25 |
-
const MINIMUM_SUPPORTED = '6.
|
26 |
|
27 |
/**
|
28 |
* Holds the current version.
|
15 |
*
|
16 |
* @var string
|
17 |
*/
|
18 |
+
const CURRENT_RELEASE = '6.6.0';
|
19 |
|
20 |
/**
|
21 |
* The minimally supported version of Gutenberg by the plugin.
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
25 |
+
const MINIMUM_SUPPORTED = '6.6.0';
|
26 |
|
27 |
/**
|
28 |
* Holds the current version.
|
admin/class-plugin-compatibility.php
CHANGED
@@ -7,6 +7,9 @@
|
|
7 |
|
8 |
/**
|
9 |
* Class WPSEO_Plugin_Compatibility.
|
|
|
|
|
|
|
10 |
*/
|
11 |
class WPSEO_Plugin_Compatibility {
|
12 |
|
@@ -34,10 +37,14 @@ class WPSEO_Plugin_Compatibility {
|
|
34 |
/**
|
35 |
* WPSEO_Plugin_Compatibility constructor.
|
36 |
*
|
|
|
|
|
37 |
* @param string $version The version to check against.
|
38 |
* @param null|class $availability_checker The checker to use.
|
39 |
*/
|
40 |
public function __construct( $version, $availability_checker = null ) {
|
|
|
|
|
41 |
// We trim off the patch version, as this shouldn't break the comparison.
|
42 |
$this->current_wpseo_version = $this->get_major_minor_version( $version );
|
43 |
$this->availability_checker = $this->retrieve_availability_checker( $availability_checker );
|
@@ -47,11 +54,15 @@ class WPSEO_Plugin_Compatibility {
|
|
47 |
/**
|
48 |
* Retrieves the availability checker.
|
49 |
*
|
|
|
|
|
50 |
* @param null|object $checker The checker to set.
|
51 |
*
|
52 |
* @return WPSEO_Plugin_Availability The checker to use.
|
53 |
*/
|
54 |
private function retrieve_availability_checker( $checker ) {
|
|
|
|
|
55 |
if ( is_null( $checker ) || ! is_object( $checker ) ) {
|
56 |
$checker = new WPSEO_Plugin_Availability();
|
57 |
$checker->register();
|
@@ -63,18 +74,26 @@ class WPSEO_Plugin_Compatibility {
|
|
63 |
/**
|
64 |
* Wraps the availability checker's get_installed_plugins method.
|
65 |
*
|
|
|
|
|
66 |
* @return array Array containing all the installed plugins.
|
67 |
*/
|
68 |
public function get_installed_plugins() {
|
|
|
|
|
69 |
return $this->installed_plugins;
|
70 |
}
|
71 |
|
72 |
/**
|
73 |
* Creates a list of installed plugins and whether or not they are compatible.
|
74 |
*
|
|
|
|
|
75 |
* @return array Array containing the installed plugins and compatibility.
|
76 |
*/
|
77 |
public function get_installed_plugins_compatibility() {
|
|
|
|
|
78 |
foreach ( $this->installed_plugins as $key => $plugin ) {
|
79 |
|
80 |
$this->installed_plugins[ $key ]['compatible'] = $this->is_compatible( $key );
|
@@ -86,11 +105,15 @@ class WPSEO_Plugin_Compatibility {
|
|
86 |
/**
|
87 |
* Checks whether or not a plugin is compatible.
|
88 |
*
|
|
|
|
|
89 |
* @param string $plugin The plugin to look for and match.
|
90 |
*
|
91 |
* @return bool Whether or not the plugin is compatible.
|
92 |
*/
|
93 |
public function is_compatible( $plugin ) {
|
|
|
|
|
94 |
$plugin = $this->availability_checker->get_plugin( $plugin );
|
95 |
|
96 |
// If we are not syncing versions, we are always compatible.
|
@@ -105,11 +128,15 @@ class WPSEO_Plugin_Compatibility {
|
|
105 |
/**
|
106 |
* Gets the major/minor version of the plugin for easier comparing.
|
107 |
*
|
|
|
|
|
108 |
* @param string $version The version to trim.
|
109 |
*
|
110 |
* @return string The major/minor version of the plugin.
|
111 |
*/
|
112 |
protected function get_major_minor_version( $version ) {
|
|
|
|
|
113 |
return substr( $version, 0, 3 );
|
114 |
}
|
115 |
}
|
7 |
|
8 |
/**
|
9 |
* Class WPSEO_Plugin_Compatibility.
|
10 |
+
*
|
11 |
+
* @codeCoverageIgnore
|
12 |
+
* @deprecated 12.3
|
13 |
*/
|
14 |
class WPSEO_Plugin_Compatibility {
|
15 |
|
37 |
/**
|
38 |
* WPSEO_Plugin_Compatibility constructor.
|
39 |
*
|
40 |
+
* @deprecated 12.3
|
41 |
+
*
|
42 |
* @param string $version The version to check against.
|
43 |
* @param null|class $availability_checker The checker to use.
|
44 |
*/
|
45 |
public function __construct( $version, $availability_checker = null ) {
|
46 |
+
_deprecated_function( __METHOD__, '12.3' );
|
47 |
+
|
48 |
// We trim off the patch version, as this shouldn't break the comparison.
|
49 |
$this->current_wpseo_version = $this->get_major_minor_version( $version );
|
50 |
$this->availability_checker = $this->retrieve_availability_checker( $availability_checker );
|
54 |
/**
|
55 |
* Retrieves the availability checker.
|
56 |
*
|
57 |
+
* @deprecated 12.3
|
58 |
+
*
|
59 |
* @param null|object $checker The checker to set.
|
60 |
*
|
61 |
* @return WPSEO_Plugin_Availability The checker to use.
|
62 |
*/
|
63 |
private function retrieve_availability_checker( $checker ) {
|
64 |
+
_deprecated_function( __METHOD__, '12.3' );
|
65 |
+
|
66 |
if ( is_null( $checker ) || ! is_object( $checker ) ) {
|
67 |
$checker = new WPSEO_Plugin_Availability();
|
68 |
$checker->register();
|
74 |
/**
|
75 |
* Wraps the availability checker's get_installed_plugins method.
|
76 |
*
|
77 |
+
* @deprecated 12.3
|
78 |
+
*
|
79 |
* @return array Array containing all the installed plugins.
|
80 |
*/
|
81 |
public function get_installed_plugins() {
|
82 |
+
_deprecated_function( __METHOD__, '12.3' );
|
83 |
+
|
84 |
return $this->installed_plugins;
|
85 |
}
|
86 |
|
87 |
/**
|
88 |
* Creates a list of installed plugins and whether or not they are compatible.
|
89 |
*
|
90 |
+
* @deprecated 12.3
|
91 |
+
*
|
92 |
* @return array Array containing the installed plugins and compatibility.
|
93 |
*/
|
94 |
public function get_installed_plugins_compatibility() {
|
95 |
+
_deprecated_function( __METHOD__, '12.3' );
|
96 |
+
|
97 |
foreach ( $this->installed_plugins as $key => $plugin ) {
|
98 |
|
99 |
$this->installed_plugins[ $key ]['compatible'] = $this->is_compatible( $key );
|
105 |
/**
|
106 |
* Checks whether or not a plugin is compatible.
|
107 |
*
|
108 |
+
* @deprecated 12.3
|
109 |
+
*
|
110 |
* @param string $plugin The plugin to look for and match.
|
111 |
*
|
112 |
* @return bool Whether or not the plugin is compatible.
|
113 |
*/
|
114 |
public function is_compatible( $plugin ) {
|
115 |
+
_deprecated_function( __METHOD__, '12.3' );
|
116 |
+
|
117 |
$plugin = $this->availability_checker->get_plugin( $plugin );
|
118 |
|
119 |
// If we are not syncing versions, we are always compatible.
|
128 |
/**
|
129 |
* Gets the major/minor version of the plugin for easier comparing.
|
130 |
*
|
131 |
+
* @deprecated 12.3
|
132 |
+
*
|
133 |
* @param string $version The version to trim.
|
134 |
*
|
135 |
* @return string The major/minor version of the plugin.
|
136 |
*/
|
137 |
protected function get_major_minor_version( $version ) {
|
138 |
+
_deprecated_function( __METHOD__, '12.3' );
|
139 |
+
|
140 |
return substr( $version, 0, 3 );
|
141 |
}
|
142 |
}
|
admin/class-yoast-form.php
CHANGED
@@ -153,7 +153,20 @@ class Yoast_Form {
|
|
153 |
*/
|
154 |
public function admin_footer( $submit = true, $show_sidebar = true ) {
|
155 |
if ( $submit ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
submit_button( __( 'Save changes', 'wordpress-seo' ) );
|
|
|
|
|
|
|
|
|
157 |
|
158 |
echo '
|
159 |
</form>';
|
153 |
*/
|
154 |
public function admin_footer( $submit = true, $show_sidebar = true ) {
|
155 |
if ( $submit ) {
|
156 |
+
$settings_changed_listener = new WPSEO_Admin_Settings_Changed_Listener();
|
157 |
+
echo '<div id="wpseo-submit-container">';
|
158 |
+
|
159 |
+
echo '<div id="wpseo-submit-container-float" class="wpseo-admin-submit">';
|
160 |
+
submit_button( __( 'Save changes', 'wordpress-seo' ) );
|
161 |
+
$settings_changed_listener->show_success_message();
|
162 |
+
echo '</div>';
|
163 |
+
|
164 |
+
echo '<div id="wpseo-submit-container-fixed" class="wpseo-admin-submit wpseo-admin-submit-fixed" style="display: none;">';
|
165 |
submit_button( __( 'Save changes', 'wordpress-seo' ) );
|
166 |
+
$settings_changed_listener->show_success_message();
|
167 |
+
echo '</div>';
|
168 |
+
|
169 |
+
echo '</div>';
|
170 |
|
171 |
echo '
|
172 |
</form>';
|
admin/class-yoast-input-validation.php
CHANGED
@@ -40,8 +40,8 @@ class Yoast_Input_Validation {
|
|
40 |
* @return string $admin_title The modified or original admin title.
|
41 |
*/
|
42 |
public static function add_yoast_admin_document_title_errors( $admin_title ) {
|
43 |
-
$errors
|
44 |
-
$error_count
|
45 |
|
46 |
foreach ( $errors as $error ) {
|
47 |
// For now, filter the admin title only in the Yoast SEO settings pages.
|
@@ -106,6 +106,11 @@ class Yoast_Input_Validation {
|
|
106 |
esc_html__( 'Baidu verification codes can only contain letters, numbers, hyphens, and underscores. %s', 'wordpress-seo' ),
|
107 |
self::get_dirty_value_message( 'baiduverify' )
|
108 |
),
|
|
|
|
|
|
|
|
|
|
|
109 |
'fbadminapp' => sprintf(
|
110 |
/* translators: %s: additional message with the submitted invalid value */
|
111 |
esc_html__( 'The Facebook App ID you entered doesn\'t exist. %s', 'wordpress-seo' ),
|
@@ -116,11 +121,31 @@ class Yoast_Input_Validation {
|
|
116 |
esc_html__( 'Google verification codes can only contain letters, numbers, hyphens, and underscores. %s', 'wordpress-seo' ),
|
117 |
self::get_dirty_value_message( 'googleverify' )
|
118 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
'msverify' => sprintf(
|
120 |
/* translators: %s: additional message with the submitted invalid value */
|
121 |
esc_html__( 'Bing confirmation codes can only contain letters from A to F, numbers, hyphens, and underscores. %s', 'wordpress-seo' ),
|
122 |
self::get_dirty_value_message( 'msverify' )
|
123 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
'pinterestverify' => sprintf(
|
125 |
/* translators: %s: additional message with the submitted invalid value */
|
126 |
esc_html__( 'Pinterest confirmation codes can only contain letters from A to F, numbers, hyphens, and underscores. %s', 'wordpress-seo' ),
|
@@ -131,11 +156,21 @@ class Yoast_Input_Validation {
|
|
131 |
esc_html__( 'Twitter usernames can only contain letters, numbers, and underscores. %s', 'wordpress-seo' ),
|
132 |
self::get_dirty_value_message( 'twitter_site' )
|
133 |
),
|
|
|
|
|
|
|
|
|
|
|
134 |
'yandexverify' => sprintf(
|
135 |
/* translators: %s: additional message with the submitted invalid value */
|
136 |
esc_html__( 'Yandex confirmation codes can only contain letters from A to F, numbers, hyphens, and underscores. %s', 'wordpress-seo' ),
|
137 |
self::get_dirty_value_message( 'yandexverify' )
|
138 |
),
|
|
|
|
|
|
|
|
|
|
|
139 |
);
|
140 |
|
141 |
$descriptions = wp_parse_args( $descriptions, $defaults );
|
40 |
* @return string $admin_title The modified or original admin title.
|
41 |
*/
|
42 |
public static function add_yoast_admin_document_title_errors( $admin_title ) {
|
43 |
+
$errors = get_settings_errors();
|
44 |
+
$error_count = 0;
|
45 |
|
46 |
foreach ( $errors as $error ) {
|
47 |
// For now, filter the admin title only in the Yoast SEO settings pages.
|
106 |
esc_html__( 'Baidu verification codes can only contain letters, numbers, hyphens, and underscores. %s', 'wordpress-seo' ),
|
107 |
self::get_dirty_value_message( 'baiduverify' )
|
108 |
),
|
109 |
+
'facebook_site' => sprintf(
|
110 |
+
/* translators: %s: additional message with the submitted invalid value */
|
111 |
+
esc_html__( 'Please check the format of the Facebook Page URL you entered. %s', 'wordpress-seo' ),
|
112 |
+
self::get_dirty_value_message( 'facebook_site' )
|
113 |
+
),
|
114 |
'fbadminapp' => sprintf(
|
115 |
/* translators: %s: additional message with the submitted invalid value */
|
116 |
esc_html__( 'The Facebook App ID you entered doesn\'t exist. %s', 'wordpress-seo' ),
|
121 |
esc_html__( 'Google verification codes can only contain letters, numbers, hyphens, and underscores. %s', 'wordpress-seo' ),
|
122 |
self::get_dirty_value_message( 'googleverify' )
|
123 |
),
|
124 |
+
'instagram_url' => sprintf(
|
125 |
+
/* translators: %s: additional message with the submitted invalid value */
|
126 |
+
esc_html__( 'Please check the format of the Instagram URL you entered. %s', 'wordpress-seo' ),
|
127 |
+
self::get_dirty_value_message( 'instagram_url' )
|
128 |
+
),
|
129 |
+
'linkedin_url' => sprintf(
|
130 |
+
/* translators: %s: additional message with the submitted invalid value */
|
131 |
+
esc_html__( 'Please check the format of the Linkedin URL you entered. %s', 'wordpress-seo' ),
|
132 |
+
self::get_dirty_value_message( 'linkedin_url' )
|
133 |
+
),
|
134 |
'msverify' => sprintf(
|
135 |
/* translators: %s: additional message with the submitted invalid value */
|
136 |
esc_html__( 'Bing confirmation codes can only contain letters from A to F, numbers, hyphens, and underscores. %s', 'wordpress-seo' ),
|
137 |
self::get_dirty_value_message( 'msverify' )
|
138 |
),
|
139 |
+
'myspace_url' => sprintf(
|
140 |
+
/* translators: %s: additional message with the submitted invalid value */
|
141 |
+
esc_html__( 'Please check the format of the MySpace URL you entered. %s', 'wordpress-seo' ),
|
142 |
+
self::get_dirty_value_message( 'myspace_url' )
|
143 |
+
),
|
144 |
+
'pinterest_url' => sprintf(
|
145 |
+
/* translators: %s: additional message with the submitted invalid value */
|
146 |
+
esc_html__( 'Please check the format of the Pinterest URL you entered. %s', 'wordpress-seo' ),
|
147 |
+
self::get_dirty_value_message( 'pinterest_url' )
|
148 |
+
),
|
149 |
'pinterestverify' => sprintf(
|
150 |
/* translators: %s: additional message with the submitted invalid value */
|
151 |
esc_html__( 'Pinterest confirmation codes can only contain letters from A to F, numbers, hyphens, and underscores. %s', 'wordpress-seo' ),
|
156 |
esc_html__( 'Twitter usernames can only contain letters, numbers, and underscores. %s', 'wordpress-seo' ),
|
157 |
self::get_dirty_value_message( 'twitter_site' )
|
158 |
),
|
159 |
+
'wikipedia_url' => sprintf(
|
160 |
+
/* translators: %s: additional message with the submitted invalid value */
|
161 |
+
esc_html__( 'Please check the format of the Wikipedia URL you entered. %s', 'wordpress-seo' ),
|
162 |
+
self::get_dirty_value_message( 'wikipedia_url' )
|
163 |
+
),
|
164 |
'yandexverify' => sprintf(
|
165 |
/* translators: %s: additional message with the submitted invalid value */
|
166 |
esc_html__( 'Yandex confirmation codes can only contain letters from A to F, numbers, hyphens, and underscores. %s', 'wordpress-seo' ),
|
167 |
self::get_dirty_value_message( 'yandexverify' )
|
168 |
),
|
169 |
+
'youtube_url' => sprintf(
|
170 |
+
/* translators: %s: additional message with the submitted invalid value */
|
171 |
+
esc_html__( 'Please check the format of the Youtube URL you entered. %s', 'wordpress-seo' ),
|
172 |
+
self::get_dirty_value_message( 'youtube_url' )
|
173 |
+
),
|
174 |
);
|
175 |
|
176 |
$descriptions = wp_parse_args( $descriptions, $defaults );
|
admin/import/plugins/class-import-rankmath.php
ADDED
@@ -0,0 +1,174 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* File with the class to handle data from RankMath.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Admin\Import\Plugins
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Class with functionality to import RankMath post metadata.
|
10 |
+
*/
|
11 |
+
class WPSEO_Import_RankMath extends WPSEO_Plugin_Importer {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* The plugin name.
|
15 |
+
*
|
16 |
+
* @var string
|
17 |
+
*/
|
18 |
+
protected $plugin_name = 'RankMath';
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Meta key, used in SQL LIKE clause for delete query.
|
22 |
+
*
|
23 |
+
* @var string
|
24 |
+
*/
|
25 |
+
protected $meta_key = 'rank_math_%';
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Array of meta keys to detect and import.
|
29 |
+
*
|
30 |
+
* @var array
|
31 |
+
*/
|
32 |
+
protected $clone_keys = array(
|
33 |
+
array(
|
34 |
+
'old_key' => 'rank_math_description',
|
35 |
+
'new_key' => 'metadesc',
|
36 |
+
),
|
37 |
+
array(
|
38 |
+
'old_key' => 'rank_math_title',
|
39 |
+
'new_key' => 'title',
|
40 |
+
),
|
41 |
+
array(
|
42 |
+
'old_key' => 'rank_math_canonical_url',
|
43 |
+
'new_key' => 'canonical',
|
44 |
+
),
|
45 |
+
array(
|
46 |
+
'old_key' => 'rank_math_primary_category',
|
47 |
+
'new_key' => 'primary_category',
|
48 |
+
),
|
49 |
+
array(
|
50 |
+
'old_key' => 'rank_math_facebook_title',
|
51 |
+
'new_key' => 'opengraph-title',
|
52 |
+
),
|
53 |
+
array(
|
54 |
+
'old_key' => 'rank_math_facebook_description',
|
55 |
+
'new_key' => 'opengraph-description',
|
56 |
+
),
|
57 |
+
array(
|
58 |
+
'old_key' => 'rank_math_facebook_image',
|
59 |
+
'new_key' => 'opengraph-image',
|
60 |
+
),
|
61 |
+
array(
|
62 |
+
'old_key' => 'rank_math_facebook_image_id',
|
63 |
+
'new_key' => 'opengraph-image-id',
|
64 |
+
),
|
65 |
+
array(
|
66 |
+
'old_key' => 'rank_math_twitter_title',
|
67 |
+
'new_key' => 'twitter-title',
|
68 |
+
),
|
69 |
+
array(
|
70 |
+
'old_key' => 'rank_math_twitter_description',
|
71 |
+
'new_key' => 'twitter-description',
|
72 |
+
),
|
73 |
+
array(
|
74 |
+
'old_key' => 'rank_math_twitter_image',
|
75 |
+
'new_key' => 'twitter-image',
|
76 |
+
),
|
77 |
+
array(
|
78 |
+
'old_key' => 'rank_math_twitter_image_id',
|
79 |
+
'new_key' => 'twitter-image-id',
|
80 |
+
),
|
81 |
+
array(
|
82 |
+
'old_key' => 'rank_math_focus_keyword',
|
83 |
+
'new_key' => 'focuskw',
|
84 |
+
),
|
85 |
+
);
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Handles post meta data to import.
|
89 |
+
*
|
90 |
+
* @return bool Import success status.
|
91 |
+
*/
|
92 |
+
protected function import() {
|
93 |
+
global $wpdb;
|
94 |
+
// Replace % with %% as their variables are the same except for that.
|
95 |
+
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_value = REPLACE( meta_value, '%', '%%' ) WHERE meta_key IN ( 'rank_math_description', 'rank_math_title' )" );
|
96 |
+
|
97 |
+
$this->import_meta_robots();
|
98 |
+
$return = $this->meta_keys_clone( $this->clone_keys );
|
99 |
+
|
100 |
+
// Return %% to % so our import is non-destructive.
|
101 |
+
$wpdb->query( "UPDATE $wpdb->postmeta SET meta_value = REPLACE( meta_value, '%%', '%' ) WHERE meta_key IN ( 'rank_math_description', 'rank_math_title' )" );
|
102 |
+
|
103 |
+
if ( $return ) {
|
104 |
+
$this->import_settings();
|
105 |
+
}
|
106 |
+
|
107 |
+
return $return;
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* RankMath stores robots meta quite differently, so we have to parse it out.
|
112 |
+
*/
|
113 |
+
private function import_meta_robots() {
|
114 |
+
global $wpdb;
|
115 |
+
$post_metas = $wpdb->get_results( "SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = 'rank_math_robots'" );
|
116 |
+
foreach ( $post_metas as $post_meta ) {
|
117 |
+
$robots_values = unserialize( $post_meta->meta_value );
|
118 |
+
foreach ( array( 'noindex', 'nofollow' ) as $directive ) {
|
119 |
+
$directive_key = array_search( $directive, $robots_values );
|
120 |
+
if ( $directive_key !== false ) {
|
121 |
+
update_post_meta( $post_meta->post_id, '_yoast_wpseo_meta-robots-' . $directive, 1 );
|
122 |
+
unset( $robots_values[ $directive_key ] );
|
123 |
+
}
|
124 |
+
}
|
125 |
+
if ( count( $robots_values ) > 0 ) {
|
126 |
+
$value = implode( ',', $robots_values );
|
127 |
+
update_post_meta( $post_meta->post_id, '_yoast_wpseo_meta-robots-adv', $value );
|
128 |
+
}
|
129 |
+
}
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* Imports some of the RankMath settings.
|
134 |
+
*/
|
135 |
+
private function import_settings() {
|
136 |
+
$settings = array(
|
137 |
+
'title_separator' => 'separator',
|
138 |
+
'homepage_title' => 'title-home-wpseo',
|
139 |
+
'homepage_description' => 'metadesc-home-wpseo',
|
140 |
+
'author_archive_title' => 'title-author-wpseo',
|
141 |
+
'date_archive_title' => 'title-archive-wpseo',
|
142 |
+
'search_title' => 'title-search-wpseo',
|
143 |
+
'404_title' => 'title-404-wpseo',
|
144 |
+
'pt_post_title' => 'title-post',
|
145 |
+
'pt_page_title' => 'title-page',
|
146 |
+
);
|
147 |
+
$options = get_option( 'rank-math-options-titles' );
|
148 |
+
|
149 |
+
foreach ( $settings as $import_setting_key => $setting_key ) {
|
150 |
+
if ( ! empty( $options[ $import_setting_key ] ) ) {
|
151 |
+
$value = $options[ $import_setting_key ];
|
152 |
+
// Make sure replace vars work.
|
153 |
+
$value = str_replace( '%', '%%', $value );
|
154 |
+
WPSEO_Options::set( $setting_key, $value );
|
155 |
+
}
|
156 |
+
}
|
157 |
+
}
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Removes the plugin data from the database.
|
161 |
+
*
|
162 |
+
* @return bool Cleanup status.
|
163 |
+
*/
|
164 |
+
protected function cleanup() {
|
165 |
+
$return = parent::cleanup();
|
166 |
+
if ( $return ) {
|
167 |
+
global $wpdb;
|
168 |
+
$wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE 'rank-math-%'" );
|
169 |
+
$wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '%rank_math%'" );
|
170 |
+
}
|
171 |
+
|
172 |
+
return $return;
|
173 |
+
}
|
174 |
+
}
|
admin/import/plugins/class-importers.php
CHANGED
@@ -25,6 +25,7 @@ class WPSEO_Plugin_Importers {
|
|
25 |
'WPSEO_Import_WP_Meta_SEO',
|
26 |
'WPSEO_Import_Platinum_SEO',
|
27 |
'WPSEO_Import_Premium_SEO_Pack',
|
|
|
28 |
'WPSEO_Import_SEOPressor',
|
29 |
'WPSEO_Import_SEO_Framework',
|
30 |
'WPSEO_Import_Smartcrawl_SEO',
|
25 |
'WPSEO_Import_WP_Meta_SEO',
|
26 |
'WPSEO_Import_Platinum_SEO',
|
27 |
'WPSEO_Import_Premium_SEO_Pack',
|
28 |
+
'WPSEO_Import_RankMath',
|
29 |
'WPSEO_Import_SEOPressor',
|
30 |
'WPSEO_Import_SEO_Framework',
|
31 |
'WPSEO_Import_Smartcrawl_SEO',
|
admin/tracking/class-tracking-plugin-data.php
CHANGED
@@ -55,12 +55,7 @@ class WPSEO_Tracking_Plugin_Data implements WPSEO_Collection {
|
|
55 |
protected function format_plugin( array $plugin ) {
|
56 |
return array(
|
57 |
'name' => $plugin['Name'],
|
58 |
-
'url' => $plugin['PluginURI'],
|
59 |
'version' => $plugin['Version'],
|
60 |
-
'author' => array(
|
61 |
-
'name' => wp_strip_all_tags( $plugin['Author'], true ),
|
62 |
-
'url' => $plugin['AuthorURI'],
|
63 |
-
),
|
64 |
);
|
65 |
}
|
66 |
}
|
55 |
protected function format_plugin( array $plugin ) {
|
56 |
return array(
|
57 |
'name' => $plugin['Name'],
|
|
|
58 |
'version' => $plugin['Version'],
|
|
|
|
|
|
|
|
|
59 |
);
|
60 |
}
|
61 |
}
|
admin/tracking/class-tracking-settings-data.php
CHANGED
@@ -19,6 +19,7 @@ class WPSEO_Tracking_Settings_Data implements WPSEO_Collection {
|
|
19 |
'googleverify',
|
20 |
'msverify',
|
21 |
'yandexverify',
|
|
|
22 |
'website_name',
|
23 |
'alternate_website_name',
|
24 |
'company_logo',
|
@@ -31,6 +32,12 @@ class WPSEO_Tracking_Settings_Data implements WPSEO_Collection {
|
|
31 |
'instagram_url',
|
32 |
'linkedin_url',
|
33 |
'myspace_url',
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
'pinterest_url',
|
35 |
'pinterestverify',
|
36 |
'twitter_site',
|
@@ -39,15 +46,136 @@ class WPSEO_Tracking_Settings_Data implements WPSEO_Collection {
|
|
39 |
'fbadminapp',
|
40 |
);
|
41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
/**
|
43 |
* Returns the collection data.
|
44 |
*
|
45 |
* @return array The collection data.
|
46 |
*/
|
47 |
public function get() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
|
49 |
return array(
|
50 |
-
'settings' => $this->anonymize_settings(
|
51 |
);
|
52 |
}
|
53 |
|
19 |
'googleverify',
|
20 |
'msverify',
|
21 |
'yandexverify',
|
22 |
+
'myyoast-oauth',
|
23 |
'website_name',
|
24 |
'alternate_website_name',
|
25 |
'company_logo',
|
32 |
'instagram_url',
|
33 |
'linkedin_url',
|
34 |
'myspace_url',
|
35 |
+
'og_default_image',
|
36 |
+
'og_default_image_id',
|
37 |
+
'og_frontpage_title',
|
38 |
+
'og_frontpage_desc',
|
39 |
+
'og_frontpage_image',
|
40 |
+
'og_frontpage_image_id',
|
41 |
'pinterest_url',
|
42 |
'pinterestverify',
|
43 |
'twitter_site',
|
46 |
'fbadminapp',
|
47 |
);
|
48 |
|
49 |
+
/**
|
50 |
+
* @var array $include_list contains the option_names for the options we want to track.
|
51 |
+
*/
|
52 |
+
private $include_list = array(
|
53 |
+
'ms_defaults_set',
|
54 |
+
'version',
|
55 |
+
'disableadvanced_meta',
|
56 |
+
'onpage_indexability',
|
57 |
+
'baiduverify',
|
58 |
+
'googleverify',
|
59 |
+
'msverify',
|
60 |
+
'yandexverify',
|
61 |
+
'site_type',
|
62 |
+
'has_multiple_authors',
|
63 |
+
'environment_type',
|
64 |
+
'content_analysis_active',
|
65 |
+
'keyword_analysis_active',
|
66 |
+
'enable_admin_bar_menu',
|
67 |
+
'enable_cornerstone_content',
|
68 |
+
'enable_xml_sitemap',
|
69 |
+
'enable_text_link_counter',
|
70 |
+
'show_onboarding_notice',
|
71 |
+
'first_activated_on',
|
72 |
+
'myyoast-oauth',
|
73 |
+
'website_name',
|
74 |
+
'alternate_website_name',
|
75 |
+
'company_logo',
|
76 |
+
'company_name',
|
77 |
+
'company_or_person',
|
78 |
+
'person_name',
|
79 |
+
'title_test',
|
80 |
+
'forcerewritetitle',
|
81 |
+
'separator',
|
82 |
+
'title-home-wpseo',
|
83 |
+
'title-author-wpseo',
|
84 |
+
'title-archive-wpseo',
|
85 |
+
'title-search-wpseo',
|
86 |
+
'title-404-wpseo',
|
87 |
+
'metadesc-home-wpseo',
|
88 |
+
'metadesc-author-wpseo',
|
89 |
+
'metadesc-archive-wpseo',
|
90 |
+
'rssbefore',
|
91 |
+
'rssafter',
|
92 |
+
'noindex-author-wpseo',
|
93 |
+
'noindex-author-noposts-wpseo',
|
94 |
+
'noindex-archive-wpseo',
|
95 |
+
'disable-author',
|
96 |
+
'disable-date',
|
97 |
+
'disable-post_format',
|
98 |
+
'disable-attachment',
|
99 |
+
'is-media-purge-relevant',
|
100 |
+
'breadcrumbs-404crumb',
|
101 |
+
'breadcrumbs-display-blog-page',
|
102 |
+
'breadcrumbs-boldlast',
|
103 |
+
'breadcrumbs-archiveprefix',
|
104 |
+
'breadcrumbs-enable',
|
105 |
+
'breadcrumbs-home',
|
106 |
+
'breadcrumbs-prefix',
|
107 |
+
'breadcrumbs-searchprefix',
|
108 |
+
'breadcrumbs-sep',
|
109 |
+
'person_logo',
|
110 |
+
'person_logo_id',
|
111 |
+
'company_logo_id',
|
112 |
+
'company_or_person_user_id',
|
113 |
+
'stripcategorybase',
|
114 |
+
'noindex-post',
|
115 |
+
'showdate-post',
|
116 |
+
'display-metabox-pt-post',
|
117 |
+
'noindex-page',
|
118 |
+
'showdate-page',
|
119 |
+
'display-metabox-pt-page',
|
120 |
+
'noindex-attachment',
|
121 |
+
'showdate-attachment',
|
122 |
+
'display-metabox-pt-attachment',
|
123 |
+
'display-metabox-tax-category',
|
124 |
+
'noindex-tax-category',
|
125 |
+
'display-metabox-tax-post_tag',
|
126 |
+
'noindex-tax-post_tag',
|
127 |
+
'display-metabox-tax-post_format',
|
128 |
+
'noindex-tax-post_format',
|
129 |
+
'taxonomy-category-ptparent',
|
130 |
+
'taxonomy-post_tag-ptparent',
|
131 |
+
'taxonomy-post_format-ptparent',
|
132 |
+
'breadcrumbs-blog-remove',
|
133 |
+
'hideeditbox-post',
|
134 |
+
'hideeditbox-page',
|
135 |
+
'hideeditbox-attachment',
|
136 |
+
'hideeditbox-tax-category',
|
137 |
+
'hideeditbox-tax-post_tag',
|
138 |
+
'hideeditbox-tax-post_format',
|
139 |
+
'facebook_site',
|
140 |
+
'instagram_url',
|
141 |
+
'linkedin_url',
|
142 |
+
'myspace_url',
|
143 |
+
'og_default_image',
|
144 |
+
'og_default_image_id',
|
145 |
+
'og_frontpage_title',
|
146 |
+
'og_frontpage_desc',
|
147 |
+
'og_frontpage_image',
|
148 |
+
'og_frontpage_image_id',
|
149 |
+
'opengraph',
|
150 |
+
'pinterest_url',
|
151 |
+
'pinterestverify',
|
152 |
+
'twitter',
|
153 |
+
'twitter_site',
|
154 |
+
'twitter_card_type',
|
155 |
+
'youtube_url',
|
156 |
+
'wikipedia_url',
|
157 |
+
'fbadminapp',
|
158 |
+
);
|
159 |
+
|
160 |
/**
|
161 |
* Returns the collection data.
|
162 |
*
|
163 |
* @return array The collection data.
|
164 |
*/
|
165 |
public function get() {
|
166 |
+
/**
|
167 |
+
* Filter: 'wpseo_tracking_settings_include_list' - Allow filtering the settings included in tracking.
|
168 |
+
*
|
169 |
+
* @api string $include_list the list with included setting names.
|
170 |
+
*/
|
171 |
+
$this->include_list = apply_filters( 'wpseo_tracking_settings_include_list', $this->include_list );
|
172 |
+
|
173 |
+
$options = WPSEO_Options::get_all();
|
174 |
+
// Returns the settings of which the keys intersect with the values of the include list.
|
175 |
+
$options = array_intersect_key( $options, array_flip( $this->include_list ) );
|
176 |
|
177 |
return array(
|
178 |
+
'settings' => $this->anonymize_settings( $options ),
|
179 |
);
|
180 |
}
|
181 |
|
admin/views/form/select.php
CHANGED
@@ -18,6 +18,7 @@ if ( ! defined( 'WPSEO_VERSION' ) ) {
|
|
18 |
}
|
19 |
|
20 |
?>
|
|
|
21 |
<select <?php echo $attributes; ?>name="<?php echo esc_attr( $name ); ?>" id="<?php echo esc_attr( $id ); ?>">
|
22 |
<?php foreach ( $options as $option_attribute_value => $option_html_value ) : ?>
|
23 |
<option value="<?php echo esc_attr( $option_attribute_value ); ?>"<?php echo selected( $selected, $option_attribute_value, false ); ?>><?php echo esc_html( $option_html_value ); ?></option>
|
18 |
}
|
19 |
|
20 |
?>
|
21 |
+
<?php /* phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: $attributes is properly escaped in parse_attribute via get_attributes in class-yoast-input-select.php. */ ?>
|
22 |
<select <?php echo $attributes; ?>name="<?php echo esc_attr( $name ); ?>" id="<?php echo esc_attr( $id ); ?>">
|
23 |
<?php foreach ( $options as $option_attribute_value => $option_html_value ) : ?>
|
24 |
<option value="<?php echo esc_attr( $option_attribute_value ); ?>"<?php echo selected( $selected, $option_attribute_value, false ); ?>><?php echo esc_html( $option_html_value ); ?></option>
|
admin/views/sidebar.php
CHANGED
@@ -37,6 +37,7 @@ $new_tab_message = WPSEO_Admin_Utils::get_new_tab_message();
|
|
37 |
<?php
|
38 |
/* translators: %s expands to Yoast SEO Premium */
|
39 |
printf( esc_html__( 'Get %s', 'wordpress-seo' ), 'Yoast SEO Premium' );
|
|
|
40 |
echo $new_tab_message;
|
41 |
echo '<span aria-hidden="true" class="yoast-button-upsell__caret"></span>';
|
42 |
?>
|
@@ -51,7 +52,10 @@ $new_tab_message = WPSEO_Admin_Utils::get_new_tab_message();
|
|
51 |
<a href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/2oi' ); ?>" target="_blank">
|
52 |
<img src="<?php echo esc_url( $wpseo_plugin_dir_url . 'images/SEO_for_beginners.svg' ); ?>" alt="">
|
53 |
<strong><?php esc_html_e( 'SEO for Beginners training', 'wordpress-seo' ); ?></strong>
|
54 |
-
<?php
|
|
|
|
|
|
|
55 |
</a><br>
|
56 |
<?php esc_html_e( 'Get quick wins to make your site rank higher in search engines.', 'wordpress-seo' ); ?>
|
57 |
</p>
|
@@ -67,7 +71,10 @@ $new_tab_message = WPSEO_Admin_Utils::get_new_tab_message();
|
|
67 |
printf( esc_html__( '%s for WordPress training', 'wordpress-seo' ), 'Yoast SEO' );
|
68 |
?>
|
69 |
</strong>
|
70 |
-
<?php
|
|
|
|
|
|
|
71 |
</a><br>
|
72 |
<?php esc_html_e( 'Don’t waste time figuring out the best settings yourself.', 'wordpress-seo' ); ?>
|
73 |
</p>
|
@@ -77,7 +84,10 @@ $new_tab_message = WPSEO_Admin_Utils::get_new_tab_message();
|
|
77 |
<a href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/3lj' ); ?>" target="_blank">
|
78 |
<img src="<?php echo esc_url( $wpseo_plugin_dir_url . 'images/all-round-SEO.svg' ); ?>" alt="">
|
79 |
<strong><?php esc_html_e( 'All-around SEO training', 'wordpress-seo' ); ?></strong>
|
80 |
-
<?php
|
|
|
|
|
|
|
81 |
</a><br>
|
82 |
<?php esc_html_e( 'Learn practical SEO skills to rank higher in Google.', 'wordpress-seo' ); ?>
|
83 |
</p>
|
@@ -95,7 +105,10 @@ $new_tab_message = WPSEO_Admin_Utils::get_new_tab_message();
|
|
95 |
<a href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/jq' ); ?>" target="_blank">
|
96 |
<img src="<?php echo esc_url( $wpseo_plugin_dir_url . 'images/Local_SEO_Icon.svg' ); ?>" alt="">
|
97 |
<strong>Local SEO</strong>
|
98 |
-
<?php
|
|
|
|
|
|
|
99 |
</a><br>
|
100 |
<?php esc_html_e( 'Be found in Google Maps and local results.', 'wordpress-seo' ); ?>
|
101 |
</p>
|
@@ -105,7 +118,10 @@ $new_tab_message = WPSEO_Admin_Utils::get_new_tab_message();
|
|
105 |
<a href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/jo' ); ?>" target="_blank">
|
106 |
<img src="<?php echo esc_url( $wpseo_plugin_dir_url . 'images/Video_SEO_Icon.svg' ); ?>" alt="">
|
107 |
<strong>Video SEO</strong>
|
108 |
-
<?php
|
|
|
|
|
|
|
109 |
</a><br>
|
110 |
<?php esc_html_e( 'Be found in Google Video search and enhance your video sharing on social media.', 'wordpress-seo' ); ?>
|
111 |
</p>
|
@@ -115,7 +131,10 @@ $new_tab_message = WPSEO_Admin_Utils::get_new_tab_message();
|
|
115 |
<a href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/jp' ); ?>" target="_blank">
|
116 |
<img src="<?php echo esc_url( $wpseo_plugin_dir_url . 'images/Woo_SEO_Icon.svg' ); ?>" alt="">
|
117 |
<strong>WooCommerce SEO</strong>
|
118 |
-
<?php
|
|
|
|
|
|
|
119 |
</a><br>
|
120 |
<?php esc_html_e( 'Optimize your shop\'s SEO and sell more products!', 'wordpress-seo' ); ?>
|
121 |
</p>
|
@@ -125,7 +144,10 @@ $new_tab_message = WPSEO_Admin_Utils::get_new_tab_message();
|
|
125 |
<a href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/jr' ); ?>" target="_blank">
|
126 |
<img src="<?php echo esc_url( $wpseo_plugin_dir_url . 'images/News_SEO_Icon.svg' ); ?>" alt="">
|
127 |
<strong>News SEO</strong>
|
128 |
-
<?php
|
|
|
|
|
|
|
129 |
</a><br>
|
130 |
<?php esc_html_e( 'Optimize your site for Google News.', 'wordpress-seo' ); ?>
|
131 |
</p>
|
@@ -139,6 +161,7 @@ $new_tab_message = WPSEO_Admin_Utils::get_new_tab_message();
|
|
139 |
<?php
|
140 |
/* translators: %s expands to Yoast SEO Premium */
|
141 |
printf( esc_html__( 'Upgrade to %s', 'wordpress-seo' ), 'Yoast SEO Premium' );
|
|
|
142 |
echo $new_tab_message;
|
143 |
?>
|
144 |
</a>
|
37 |
<?php
|
38 |
/* translators: %s expands to Yoast SEO Premium */
|
39 |
printf( esc_html__( 'Get %s', 'wordpress-seo' ), 'Yoast SEO Premium' );
|
40 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: $new_tab_message is properly escaped.
|
41 |
echo $new_tab_message;
|
42 |
echo '<span aria-hidden="true" class="yoast-button-upsell__caret"></span>';
|
43 |
?>
|
52 |
<a href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/2oi' ); ?>" target="_blank">
|
53 |
<img src="<?php echo esc_url( $wpseo_plugin_dir_url . 'images/SEO_for_beginners.svg' ); ?>" alt="">
|
54 |
<strong><?php esc_html_e( 'SEO for Beginners training', 'wordpress-seo' ); ?></strong>
|
55 |
+
<?php
|
56 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: $new_tab_message is properly escaped.
|
57 |
+
echo $new_tab_message;
|
58 |
+
?>
|
59 |
</a><br>
|
60 |
<?php esc_html_e( 'Get quick wins to make your site rank higher in search engines.', 'wordpress-seo' ); ?>
|
61 |
</p>
|
71 |
printf( esc_html__( '%s for WordPress training', 'wordpress-seo' ), 'Yoast SEO' );
|
72 |
?>
|
73 |
</strong>
|
74 |
+
<?php
|
75 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: $new_tab_message is properly escaped.
|
76 |
+
echo $new_tab_message;
|
77 |
+
?>
|
78 |
</a><br>
|
79 |
<?php esc_html_e( 'Don’t waste time figuring out the best settings yourself.', 'wordpress-seo' ); ?>
|
80 |
</p>
|
84 |
<a href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/3lj' ); ?>" target="_blank">
|
85 |
<img src="<?php echo esc_url( $wpseo_plugin_dir_url . 'images/all-round-SEO.svg' ); ?>" alt="">
|
86 |
<strong><?php esc_html_e( 'All-around SEO training', 'wordpress-seo' ); ?></strong>
|
87 |
+
<?php
|
88 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: $new_tab_message is properly escaped.
|
89 |
+
echo $new_tab_message;
|
90 |
+
?>
|
91 |
</a><br>
|
92 |
<?php esc_html_e( 'Learn practical SEO skills to rank higher in Google.', 'wordpress-seo' ); ?>
|
93 |
</p>
|
105 |
<a href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/jq' ); ?>" target="_blank">
|
106 |
<img src="<?php echo esc_url( $wpseo_plugin_dir_url . 'images/Local_SEO_Icon.svg' ); ?>" alt="">
|
107 |
<strong>Local SEO</strong>
|
108 |
+
<?php
|
109 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: $new_tab_message is properly escaped.
|
110 |
+
echo $new_tab_message;
|
111 |
+
?>
|
112 |
</a><br>
|
113 |
<?php esc_html_e( 'Be found in Google Maps and local results.', 'wordpress-seo' ); ?>
|
114 |
</p>
|
118 |
<a href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/jo' ); ?>" target="_blank">
|
119 |
<img src="<?php echo esc_url( $wpseo_plugin_dir_url . 'images/Video_SEO_Icon.svg' ); ?>" alt="">
|
120 |
<strong>Video SEO</strong>
|
121 |
+
<?php
|
122 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: $new_tab_message is properly escaped.
|
123 |
+
echo $new_tab_message;
|
124 |
+
?>
|
125 |
</a><br>
|
126 |
<?php esc_html_e( 'Be found in Google Video search and enhance your video sharing on social media.', 'wordpress-seo' ); ?>
|
127 |
</p>
|
131 |
<a href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/jp' ); ?>" target="_blank">
|
132 |
<img src="<?php echo esc_url( $wpseo_plugin_dir_url . 'images/Woo_SEO_Icon.svg' ); ?>" alt="">
|
133 |
<strong>WooCommerce SEO</strong>
|
134 |
+
<?php
|
135 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: $new_tab_message is properly escaped.
|
136 |
+
echo $new_tab_message;
|
137 |
+
?>
|
138 |
</a><br>
|
139 |
<?php esc_html_e( 'Optimize your shop\'s SEO and sell more products!', 'wordpress-seo' ); ?>
|
140 |
</p>
|
144 |
<a href="<?php WPSEO_Shortlinker::show( 'https://yoa.st/jr' ); ?>" target="_blank">
|
145 |
<img src="<?php echo esc_url( $wpseo_plugin_dir_url . 'images/News_SEO_Icon.svg' ); ?>" alt="">
|
146 |
<strong>News SEO</strong>
|
147 |
+
<?php
|
148 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: $new_tab_message is properly escaped.
|
149 |
+
echo $new_tab_message;
|
150 |
+
?>
|
151 |
</a><br>
|
152 |
<?php esc_html_e( 'Optimize your site for Google News.', 'wordpress-seo' ); ?>
|
153 |
</p>
|
161 |
<?php
|
162 |
/* translators: %s expands to Yoast SEO Premium */
|
163 |
printf( esc_html__( 'Upgrade to %s', 'wordpress-seo' ), 'Yoast SEO Premium' );
|
164 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: $new_tab_message is properly escaped.
|
165 |
echo $new_tab_message;
|
166 |
?>
|
167 |
</a>
|
css/dist/{admin-global-1220-rtl.min.css → admin-global-1230-rtl.min.css}
RENAMED
@@ -1 +1 @@
|
|
1 |
-
.wpseo-premium-indicator{width:1px;height:1px;display:inline-block}#adminmenu .wpseo-premium-indicator{margin:-2px 2px -3px 0;color:inherit}.wpseo-premium-indicator svg{height:100%;width:auto;display:none}.yoast-tooltip{position:relative}button.yoast-tooltip{overflow:visible}.yoast-tooltip:after{display:none;position:absolute;z-index:1000000;padding:6px 8px 5px;border-radius:3px;opacity:0;color:#fff;background:rgba(0,0,0,.8);text-shadow:none;font:normal normal 11px/1.45454545 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;text-align:center;white-space:pre;text-decoration:none;letter-spacing:normal;text-transform:none;word-wrap:break-word;content:attr(aria-label);pointer-events:none;-webkit-font-smoothing:subpixel-antialiased}.yoast-tooltip-alt:after{content:attr(data-label)}.yoast-tooltip:before{display:none;position:absolute;z-index:1000001;width:0;height:0;border:5px solid transparent;opacity:0;color:rgba(0,0,0,.8);content:"\00a0";pointer-events:none}@keyframes yoast-tooltip-appear{0%{opacity:0}to{opacity:1}}.yoast-tooltip:active:after,.yoast-tooltip:active:before,.yoast-tooltip:focus:after,.yoast-tooltip:focus:before,.yoast-tooltip:hover:after,.yoast-tooltip:hover:before{display:inline-block;text-decoration:none;animation-name:yoast-tooltip-appear;animation-duration:.1s;animation-timing-function:ease-in;animation-delay:.4s;animation-fill-mode:forwards}.yoast-tooltip-no-delay:active:after,.yoast-tooltip-no-delay:active:before,.yoast-tooltip-no-delay:focus:after,.yoast-tooltip-no-delay:focus:before,.yoast-tooltip-no-delay:hover:after,.yoast-tooltip-no-delay:hover:before{opacity:1;animation:none}.yoast-tooltip-multiline:active:after,.yoast-tooltip-multiline:focus:after,.yoast-tooltip-multiline:hover:after{display:table-cell}.yoast-tooltip-s:after,.yoast-tooltip-se:after,.yoast-tooltip-sw:after{top:100%;left:50%;margin-top:5px}.yoast-tooltip-s:before,.yoast-tooltip-se:before,.yoast-tooltip-sw:before{top:auto;left:50%;bottom:-5px;margin-left:-5px;border-bottom-color:rgba(0,0,0,.8)}.yoast-tooltip-se:after{left:auto;right:50%;margin-right:-15px}.yoast-tooltip-sw:after{margin-left:-15px}.yoast-tooltip-n:after,.yoast-tooltip-ne:after,.yoast-tooltip-nw:after{left:50%;bottom:100%;margin-bottom:5px}.yoast-tooltip-n:before,.yoast-tooltip-ne:before,.yoast-tooltip-nw:before{top:-5px;left:50%;bottom:auto;margin-left:-5px;border-top-color:rgba(0,0,0,.8)}.yoast-tooltip-ne:after{left:auto;right:50%;margin-right:-15px}.yoast-tooltip-nw:after{margin-left:-15px}.yoast-tooltip-n:after,.yoast-tooltip-s:after{-ms-transform:translateX(-50%);transform:translateX(-50%)}.yoast-tooltip-w:after{left:100%;bottom:50%;margin-left:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-w:before{top:50%;bottom:50%;right:-5px;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.yoast-tooltip-e:after{bottom:50%;right:100%;margin-right:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-e:before{top:50%;left:-5px;bottom:50%;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.yoast-tooltip-multiline:after{width:250px;width:-webkit-max-content;width:max-content;max-width:250px;border-collapse:separate;white-space:pre-line;word-wrap:normal;word-break:break-word}.yoast-tooltip-multiline.yoast-tooltip-n:after,.yoast-tooltip-multiline.yoast-tooltip-s:after{left:auto;right:50%;-ms-transform:translateX(50%);transform:translateX(50%)}.yoast-tooltip-multiline.yoast-tooltip-e:after,.yoast-tooltip-multiline.yoast-tooltip-w:after{left:100%}@media screen and (min-width:0\0){.yoast-tooltip-multiline:after{width:250px}}.yoast-tooltip-sticky:after,.yoast-tooltip-sticky:before{display:inline-block}.yoast-tooltip-sticky.yoast-tooltip-multiline:after{display:table-cell}@media only screen and (-moz-min-device-pixel-ratio:2),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:2dppx),only screen and (min-resolution:192dpi){.yoast-tooltip-w:after{margin-left:4.5px}}.yoast-tooltip.yoast-tooltip-hidden:after,.yoast-tooltip.yoast-tooltip-hidden:before{display:none}.yoast-measure{max-width:600px}#TB_window .wpseo_content_wrapper p{font-size:14px;font-style:normal}#TB_window .wpseo_content_wrapper label{margin:0 0 0 10px;font-size:14px;font-weight:600}.wpseo-help-center-sub-title,.wpseo-premium-popup-title{margin:1em 0!important;padding:0!important;font-size:1.3em!important;font-weight:600!important}.wpseo-premium-popup-icon{margin:10px}.edit-tags-php .column-description img{max-width:100%;height:auto}.select2-search__field{margin:0}.select2-results__option,.select2-search--inline,.select2-selection__choice{margin-bottom:0}.select2-container .select2-search--inline .select2-search__field{margin-top:6px!important;line-height:inherit}.yoast-label-strong{font-weight:600}.yoast-video-container-max-width{max-width:560px}.yoast-video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.yoast-video-container iframe{position:absolute;top:0;right:0;width:100%;height:100%}.yoast-settings{margin-bottom:2em;padding-right:220px}.yoast-settings h2{margin-bottom:0;margin-right:-220px}.yoast-settings label{display:inline-block;width:200px;padding-top:4px;padding-left:10px;margin-left:6px;margin-right:-220px;font-size:14px;line-height:1.3;font-weight:600;color:#23282d;vertical-align:top}.yoast-settings fieldset,.yoast-settings input[type=text],.yoast-settings label,.yoast-settings select,.yoast-settings textarea,.yoast .yoast-settings__checkbox,.yoast .yoast-settings__radio{margin-top:2em;margin-bottom:.5em}.yoast-settings__textarea--medium{width:100%;max-width:600px}.yoast .yoast-settings__checkbox,.yoast .yoast-settings__radio{vertical-align:top;position:relative;top:1px}.yoast-settings__group--checkbox,.yoast-settings__group--radio{padding-top:1em}.yoast-settings__group--checkbox .yoast-settings__checkbox,.yoast-settings__group--radio .yoast-settings__radio{margin:0 0 10px 4px}.yoast-settings__checkbox+label,.yoast-settings__radio+label{width:auto;margin-right:0;margin-left:0;padding:0;max-width:calc(100% - 25px)}.yoast-settings__group--checkbox .yoast-settings__checkbox+label,.yoast-settings__group--radio .yoast-settings__radio+label{margin-top:0;margin-bottom:10px;font-weight:400}.yoast-settings legend{font-size:14px;font-weight:600;color:#23282d}.yoast-settings .description{margin-top:0;font-size:14px}td .wpseo-score-icon{display:inline-block;width:12px;height:12px;margin-right:5px;border-radius:50%;background:#888;line-height:16px;margin-top:3px}.fixed th.column-wpseo-linked,.fixed th.column-wpseo-links,.fixed th.column-wpseo-score,.fixed th.column-wpseo-score-readability{width:3em;padding:0}th.column-wpseo-linked a,th.column-wpseo-links a,th.column-wpseo-score-readability .yoast-tooltip,th.column-wpseo-score .yoast-tooltip{overflow:visible;display:inline-block;vertical-align:middle;padding:8px 0}th.column-wpseo-score-readability .yoast-tooltip,th.column-wpseo-score .yoast-tooltip{padding:8px 11px}.column-wpseo-links .yoast-tooltip-multiline:after{max-width:160px}.column-wpseo-linked .yoast-tooltip-multiline:after{max-width:170px}.yoast-column-header-has-tooltip{position:relative}.manage-column .yoast-column-header-has-tooltip:before{content:"";display:inline-block;width:20px;height:20px;padding:0;vertical-align:top;text-decoration:none!important;color:#444}.manage-column .yoast-linked-to:before{background:transparent url(../../images/link-out-icon.svg) no-repeat 100% 0;background-size:20px}.manage-column .yoast-linked-from:before{background:transparent url(../../images/link-in-icon.svg) no-repeat 100% 0;background-size:20px}.manage-column .yoast-column-seo-score:before{background:transparent url(../../images/Yoast_SEO_negative_icon.svg) no-repeat 100% 0;background-size:20px}.manage-column .yoast-column-readability:before{background:transparent url(../../images/readability-icon.svg) no-repeat 100% 0;background-size:20px}td.column-wpseo-linked,td.column-wpseo-links{word-wrap:normal}@media screen and (max-width:782px){.yoast-settings{padding-right:0}.yoast-settings h2{margin-right:0}.yoast-settings label{width:auto;padding:0;margin-left:0;margin-right:0}.yoast-settings__radio+label,.yoast .yoast-settings__radio{margin-bottom:1em}.yoast-settings__checkbox+label,.yoast-settings__radio+label{max-width:calc(100% - 35px);padding-top:8px}.yoast-settings__group--checkbox .yoast-settings__checkbox+label,.yoast-settings__group--radio .yoast-settings__radio+label{padding-top:4px}.yoast-settings input[type=text],.yoast-settings select,.yoast-settings textarea{display:block;width:100%;margin-top:0;margin-bottom:0;padding:7px 10px;max-width:none;line-height:1.5;box-sizing:border-box}.screen-reader-text.wpseo-score-text{position:static!important;-webkit-clip-path:none;clip-path:none;width:auto;height:auto;margin:0}}#yoast-help-center-container{margin:16px 0 24px}.react-tabs__tab-panel{max-width:900px;margin:0 auto}.react-tabs__tab-panel li{max-width:none!important}.yoast-help-center-open #sidebar-container{display:none}.contact-premium-support{text-align:center}.contact-premium-support__content{margin:0 auto 1.5em;font-size:.9375rem;line-height:1.4}.contact-premium-support__content:nth-child(2){max-width:610px}.contact-premium-support__content:nth-child(3){max-width:560px}.contact-premium-support .contact-premium-support__button{margin-bottom:48px}.wpseo-premium-description{margin-top:.5em}.wpseo-premium-advantages-list{list-style:disc;padding-right:1.5em}.yoast_help.yoast-help-button{overflow:visible;position:relative;width:20px;height:20px;margin:0;padding:0;border:0;outline:none;color:#72777c;background:transparent;box-shadow:none;vertical-align:top;cursor:pointer}.yoast-section .yoast_help.yoast-help-button{float:left}.help-button-inline .yoast_help.yoast-help-button{margin-top:-4px}.yoast-section .yoast_help.yoast-help-button{margin-top:-44px}.wpseo-admin-page .yoast_help.yoast-help-button{margin-left:6px}.yoast_help .yoast-help-icon:before{position:absolute;top:0;right:0;padding:4px;content:"\f223"}.yoast_help.yoast-help-button:focus,.yoast_help.yoast-help-button:hover{color:#0073aa}.assessment-results__mark:focus,.yoast_help.yoast-help-button:focus .yoast-help-icon:before{border-radius:100%;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.yoast-help-panel{display:none;clear:both;max-width:30em!important;padding:0 0 1em;font-weight:400;white-space:normal}.wpseo-admin-page .yoast-help-panel{max-width:600px!important}.copy-home-meta-description .yoast-help-panel{max-width:400px!important}.yoast-modal_is-open{overflow:hidden}.yoast-alert .yoast-seo-icon{float:right;margin:20px 10px}.yoast-alert .yoast-seo-icon-wrap{margin:0 85px 0 0}.yoast-button-upsell{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;box-sizing:border-box;min-height:48px;padding:8px 1em;font-size:16px;line-height:1.5;font-family:Arial,sans-serif;color:#000;border-radius:4px;box-shadow:inset 0 -4px 0 rgba(0,0,0,.2);filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));text-decoration:none;background-color:#fec228}.yoast-button-upsell:active,.yoast-button-upsell:focus,.yoast-button-upsell:hover{color:#000;background-color:#f2ae01}.yoast-button-upsell:focus{box-shadow:inset 0 -4px 0 rgba(0,0,0,.2),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.yoast-button-upsell:active{-ms-transform:translateY(1px);transform:translateY(1px);box-shadow:none;filter:none}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.yoast-button-upsell:after{display:inline-block;content:"";min-height:32px}}.yoast-button-upsell#wpseo-premium-button{color:#000}.yoast-button-upsell__caret{-ms-flex-negative:0;flex-shrink:0;width:8px;height:16px;margin:0 6px 0 -2px;background:transparent url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%20192%20512%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M%200%20384%2E662%20V%20127%2E338%20c%200%20%2D17%2E818%2021%2E543%20%2D26%2E741%2034%2E142%20%2D14%2E142%20l%20128%2E662%20128%2E662%20c%207%2E81%207%2E81%207%2E81%2020%2E474%200%2028%2E284%20L%2034%2E142%20398%2E804%20C%2021%2E543%20411%2E404%200%20402%2E48%200%20384%2E662%20Z%22%2F%3E%3C%2Fsvg%3E") 50% no-repeat}.rtl .yoast-button-upsell__caret{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%20192%20512%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M192%20127%2E338v257%2E324c0%2017%2E818%2D21%2E543%2026%2E741%2D34%2E142%2014%2E142L29%2E196%20270%2E142c%2D7%2E81%2D7%2E81%2D7%2E81%2D20%2E474%200%2D28%2E284l128%2E662%2D128%2E662c12%2E599%2D12%2E6%2034%2E142%2D3%2E676%2034%2E142%2014%2E142z%22%2F%3E%3C%2Fsvg%3E")}
|
1 |
+
.wpseo-premium-indicator{width:1px;height:1px;display:inline-block}#adminmenu .wpseo-premium-indicator{margin:-2px 2px -3px 0;color:inherit}.wpseo-premium-indicator svg{height:100%;width:auto;display:none}.yoast-tooltip{position:relative}button.yoast-tooltip{overflow:visible}.yoast-tooltip:after{display:none;position:absolute;z-index:1000000;padding:6px 8px 5px;border-radius:3px;opacity:0;color:#fff;background:rgba(0,0,0,.8);text-shadow:none;font:normal normal 11px/1.45454545 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;text-align:center;white-space:pre;text-decoration:none;letter-spacing:normal;text-transform:none;word-wrap:break-word;content:attr(aria-label);pointer-events:none;-webkit-font-smoothing:subpixel-antialiased}.yoast-tooltip-alt:after{content:attr(data-label)}.yoast-tooltip:before{display:none;position:absolute;z-index:1000001;width:0;height:0;border:5px solid transparent;opacity:0;color:rgba(0,0,0,.8);content:"\00a0";pointer-events:none}@keyframes yoast-tooltip-appear{0%{opacity:0}to{opacity:1}}.yoast-tooltip:active:after,.yoast-tooltip:active:before,.yoast-tooltip:focus:after,.yoast-tooltip:focus:before,.yoast-tooltip:hover:after,.yoast-tooltip:hover:before{display:inline-block;text-decoration:none;animation-name:yoast-tooltip-appear;animation-duration:.1s;animation-timing-function:ease-in;animation-delay:.4s;animation-fill-mode:forwards}.yoast-tooltip-no-delay:active:after,.yoast-tooltip-no-delay:active:before,.yoast-tooltip-no-delay:focus:after,.yoast-tooltip-no-delay:focus:before,.yoast-tooltip-no-delay:hover:after,.yoast-tooltip-no-delay:hover:before{opacity:1;animation:none}.yoast-tooltip-multiline:active:after,.yoast-tooltip-multiline:focus:after,.yoast-tooltip-multiline:hover:after{display:table-cell}.yoast-tooltip-s:after,.yoast-tooltip-se:after,.yoast-tooltip-sw:after{top:100%;left:50%;margin-top:5px}.yoast-tooltip-s:before,.yoast-tooltip-se:before,.yoast-tooltip-sw:before{top:auto;left:50%;bottom:-5px;margin-left:-5px;border-bottom-color:rgba(0,0,0,.8)}.yoast-tooltip-se:after{left:auto;right:50%;margin-right:-15px}.yoast-tooltip-sw:after{margin-left:-15px}.yoast-tooltip-n:after,.yoast-tooltip-ne:after,.yoast-tooltip-nw:after{left:50%;bottom:100%;margin-bottom:5px}.yoast-tooltip-n:before,.yoast-tooltip-ne:before,.yoast-tooltip-nw:before{top:-5px;left:50%;bottom:auto;margin-left:-5px;border-top-color:rgba(0,0,0,.8)}.yoast-tooltip-ne:after{left:auto;right:50%;margin-right:-15px}.yoast-tooltip-nw:after{margin-left:-15px}.yoast-tooltip-n:after,.yoast-tooltip-s:after{-ms-transform:translateX(-50%);transform:translateX(-50%)}.yoast-tooltip-w:after{left:100%;bottom:50%;margin-left:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-w:before{top:50%;bottom:50%;right:-5px;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.yoast-tooltip-e:after{bottom:50%;right:100%;margin-right:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-e:before{top:50%;left:-5px;bottom:50%;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.yoast-tooltip-multiline:after{width:250px;width:-webkit-max-content;width:max-content;max-width:250px;border-collapse:separate;white-space:pre-line;word-wrap:normal;word-break:break-word}.yoast-tooltip-multiline.yoast-tooltip-n:after,.yoast-tooltip-multiline.yoast-tooltip-s:after{left:auto;right:50%;-ms-transform:translateX(50%);transform:translateX(50%)}.yoast-tooltip-multiline.yoast-tooltip-e:after,.yoast-tooltip-multiline.yoast-tooltip-w:after{left:100%}@media screen and (min-width:0\0){.yoast-tooltip-multiline:after{width:250px}}.yoast-tooltip-sticky:after,.yoast-tooltip-sticky:before{display:inline-block}.yoast-tooltip-sticky.yoast-tooltip-multiline:after{display:table-cell}@media only screen and (-moz-min-device-pixel-ratio:2),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:2dppx),only screen and (min-resolution:192dpi){.yoast-tooltip-w:after{margin-left:4.5px}}.yoast-tooltip.yoast-tooltip-hidden:after,.yoast-tooltip.yoast-tooltip-hidden:before{display:none}.yoast-measure{max-width:600px}#TB_window .wpseo_content_wrapper p{font-size:14px;font-style:normal}#TB_window .wpseo_content_wrapper label{margin:0 0 0 10px;font-size:14px;font-weight:600}.wpseo-help-center-sub-title,.wpseo-premium-popup-title{margin:1em 0!important;padding:0!important;font-size:1.3em!important;font-weight:600!important}.wpseo-premium-popup-icon{margin:10px}.edit-tags-php .column-description img{max-width:100%;height:auto}.select2-search__field{margin:0}.select2-results__option,.select2-search--inline,.select2-selection__choice{margin-bottom:0}.select2-container .select2-search--inline .select2-search__field{margin-top:6px!important;line-height:inherit}.yoast-label-strong{font-weight:600}.yoast-video-container-max-width{max-width:560px}.yoast-video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.yoast-video-container iframe{position:absolute;top:0;right:0;width:100%;height:100%}.yoast-settings{margin-bottom:2em;padding-right:220px}.yoast-settings h2{margin-bottom:0;margin-right:-220px}.yoast-settings label{display:inline-block;width:200px;padding-top:4px;padding-left:10px;margin-left:6px;margin-right:-220px;font-size:14px;line-height:1.3;font-weight:600;color:#23282d;vertical-align:top}.yoast-settings fieldset,.yoast-settings input[type=text],.yoast-settings label,.yoast-settings select,.yoast-settings textarea,.yoast .yoast-settings__checkbox,.yoast .yoast-settings__radio{margin-top:2em;margin-bottom:.5em}.yoast-settings__textarea--medium{width:100%;max-width:600px}.yoast .yoast-settings__checkbox,.yoast .yoast-settings__radio{vertical-align:top;position:relative;top:1px}.yoast-settings__group--checkbox,.yoast-settings__group--radio{padding-top:1em}.yoast-settings__group--checkbox .yoast-settings__checkbox,.yoast-settings__group--radio .yoast-settings__radio{margin:0 0 10px 4px}.yoast-settings__checkbox+label,.yoast-settings__radio+label{width:auto;margin-right:0;margin-left:0;padding:0;max-width:calc(100% - 25px)}.yoast-settings__group--checkbox .yoast-settings__checkbox+label,.yoast-settings__group--radio .yoast-settings__radio+label{margin-top:0;margin-bottom:10px;font-weight:400}.yoast-settings legend{font-size:14px;font-weight:600;color:#23282d}.yoast-settings .description{margin-top:0;font-size:14px}td .wpseo-score-icon{display:inline-block;width:12px;height:12px;margin-right:5px;border-radius:50%;background:#888;line-height:16px;margin-top:3px}.fixed th.column-wpseo-linked,.fixed th.column-wpseo-links,.fixed th.column-wpseo-score,.fixed th.column-wpseo-score-readability{width:3em;padding:0}th.column-wpseo-linked a,th.column-wpseo-links a,th.column-wpseo-score-readability .yoast-tooltip,th.column-wpseo-score .yoast-tooltip{overflow:visible;display:inline-block;vertical-align:middle;padding:8px 0}th.column-wpseo-score-readability .yoast-tooltip,th.column-wpseo-score .yoast-tooltip{padding:8px 11px}.column-wpseo-links .yoast-tooltip-multiline:after{max-width:160px}.column-wpseo-linked .yoast-tooltip-multiline:after{max-width:170px}.yoast-column-header-has-tooltip{position:relative}.manage-column .yoast-column-header-has-tooltip:before{content:"";display:inline-block;width:20px;height:20px;padding:0;vertical-align:top;text-decoration:none!important;color:#444}.manage-column .yoast-linked-to:before{background:transparent url(../../images/link-out-icon.svg) no-repeat 100% 0;background-size:20px}.manage-column .yoast-linked-from:before{background:transparent url(../../images/link-in-icon.svg) no-repeat 100% 0;background-size:20px}.manage-column .yoast-column-seo-score:before{background:transparent url(../../images/Yoast_SEO_negative_icon.svg) no-repeat 100% 0;background-size:20px}.manage-column .yoast-column-readability:before{background:transparent url(../../images/readability-icon.svg) no-repeat 100% 0;background-size:20px}td.column-wpseo-linked,td.column-wpseo-links{word-wrap:normal}@media screen and (max-width:782px){.yoast-settings{padding-right:0}.yoast-settings h2{margin-right:0}.yoast-settings label{width:auto;padding:0;margin-left:0;margin-right:0}.yoast-settings__radio+label,.yoast .yoast-settings__radio{margin-bottom:1em}.yoast-settings__checkbox+label,.yoast-settings__radio+label{max-width:calc(100% - 35px);padding-top:8px}.yoast-settings__group--checkbox .yoast-settings__checkbox+label,.yoast-settings__group--radio .yoast-settings__radio+label{padding-top:4px}.yoast-settings input[type=text],.yoast-settings select,.yoast-settings textarea{display:block;width:100%;margin-top:0;margin-bottom:0;padding:7px 10px;max-width:none;line-height:1.5;box-sizing:border-box}.screen-reader-text.wpseo-score-text{position:static!important;-webkit-clip-path:none;clip-path:none;width:auto;height:auto;margin:0}}#yoast-help-center-container{margin:16px 0 24px}.react-tabs__tab-panel{max-width:900px;margin:0 auto}.react-tabs__tab-panel li{max-width:none!important}.yoast-help-center-open #sidebar-container{display:none}.contact-premium-support{text-align:center}.contact-premium-support__content{margin:0 auto 1.5em;font-size:.9375rem;line-height:1.4}.contact-premium-support__content:nth-child(2){max-width:610px}.contact-premium-support__content:nth-child(3){max-width:560px}.contact-premium-support .contact-premium-support__button{margin-bottom:48px}.wpseo-premium-description{margin-top:.5em}.wpseo-premium-advantages-list{list-style:disc;padding-right:1.5em}.yoast_help.yoast-help-button{overflow:visible;position:relative;width:20px;height:20px;margin:0;padding:0;border:0;outline:none;color:#72777c;background:transparent;box-shadow:none;vertical-align:top;cursor:pointer}.yoast-section .yoast_help.yoast-help-button{float:left}.help-button-inline .yoast_help.yoast-help-button{margin-top:-4px}.yoast-section .yoast_help.yoast-help-button{margin-top:-44px}.wpseo-admin-page .yoast_help.yoast-help-button{margin-left:6px}.yoast_help .yoast-help-icon:before{position:absolute;top:0;right:0;padding:4px;content:"\f223"}.yoast_help.yoast-help-button:focus,.yoast_help.yoast-help-button:hover{color:#0073aa}.assessment-results__mark:focus,.yoast_help.yoast-help-button:focus .yoast-help-icon:before{border-radius:100%;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.yoast-help-panel{display:none;clear:both;max-width:30em!important;padding:0 0 1em;font-weight:400;white-space:normal}.wpseo-admin-page .yoast-help-panel{max-width:600px!important}.copy-home-meta-description .yoast-help-panel{max-width:400px!important}.yoast-modal_is-open{overflow:hidden}.yoast-alert .yoast-seo-icon{float:right;margin:20px 10px}.yoast-alert .yoast-seo-icon-wrap{margin:0 85px 0 0}.yoast-button-upsell{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;box-sizing:border-box;min-height:48px;padding:8px 1em;font-size:16px;line-height:1.5;font-family:Arial,sans-serif;color:#000;border-radius:4px;box-shadow:inset 0 -4px 0 rgba(0,0,0,.2);filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));text-decoration:none;background-color:#fec228}.yoast-button-upsell:active,.yoast-button-upsell:focus,.yoast-button-upsell:hover{color:#000;background-color:#f2ae01}.yoast-button-upsell:focus{box-shadow:inset 0 -4px 0 rgba(0,0,0,.2),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.yoast-button-upsell:active{-ms-transform:translateY(1px);transform:translateY(1px);box-shadow:none;filter:none}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.yoast-button-upsell:after{display:inline-block;content:"";min-height:32px}}.yoast-button-upsell#wpseo-premium-button{color:#000}.yoast-button-upsell__caret{-ms-flex-negative:0;flex-shrink:0;width:8px;height:16px;margin:0 6px 0 -2px;background:transparent url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%20192%20512%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M%200%20384%2E662%20V%20127%2E338%20c%200%20%2D17%2E818%2021%2E543%20%2D26%2E741%2034%2E142%20%2D14%2E142%20l%20128%2E662%20128%2E662%20c%207%2E81%207%2E81%207%2E81%2020%2E474%200%2028%2E284%20L%2034%2E142%20398%2E804%20C%2021%2E543%20411%2E404%200%20402%2E48%200%20384%2E662%20Z%22%2F%3E%3C%2Fsvg%3E") 50% no-repeat}.rtl .yoast-button-upsell__caret{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%20192%20512%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M192%20127%2E338v257%2E324c0%2017%2E818%2D21%2E543%2026%2E741%2D34%2E142%2014%2E142L29%2E196%20270%2E142c%2D7%2E81%2D7%2E81%2D7%2E81%2D20%2E474%200%2D28%2E284l128%2E662%2D128%2E662c12%2E599%2D12%2E6%2034%2E142%2D3%2E676%2034%2E142%2014%2E142z%22%2F%3E%3C%2Fsvg%3E")}body.folded .wpseo-admin-submit-fixed{right:36px}@media screen and (max-width:782px){body.folded .wpseo-admin-submit-fixed{right:0}}.wpseo-admin-submit{z-index:5;display:-ms-flexbox;display:flex;padding:16px 0;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:baseline;align-items:baseline;margin:0}.wpseo-admin-submit.wpseo-admin-submit-fixed{padding:16px;position:fixed;bottom:0;right:160px;left:281px;background-color:#fff;max-width:800px;box-shadow:0 1px 8px 1px rgba(0,0,0,.5);margin:0 16px}@media screen and (max-width:1024px){.wpseo-admin-submit.wpseo-admin-submit-fixed{left:0}}@media only screen and (max-width:960px){.wpseo-admin-submit.wpseo-admin-submit-fixed{right:36px}}@media screen and (max-width:782px){.wpseo-admin-submit.wpseo-admin-submit-fixed{right:0;margin:0}}.wpseo-admin-submit p.submit{padding:0;margin:0}.wpseo-admin-submit p.wpseo-message{margin:0 0 0 16px;padding:0;color:#008a00}
|
css/dist/{admin-global-1220.min.css → admin-global-1230.min.css}
RENAMED
@@ -1 +1 @@
|
|
1 |
-
.wpseo-premium-indicator{width:1px;height:1px;display:inline-block}#adminmenu .wpseo-premium-indicator{margin:-2px 0 -3px 2px;color:inherit}.wpseo-premium-indicator svg{height:100%;width:auto;display:none}.yoast-tooltip{position:relative}button.yoast-tooltip{overflow:visible}.yoast-tooltip:after{display:none;position:absolute;z-index:1000000;padding:6px 8px 5px;border-radius:3px;opacity:0;color:#fff;background:rgba(0,0,0,.8);text-shadow:none;font:normal normal 11px/1.45454545 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;text-align:center;white-space:pre;text-decoration:none;letter-spacing:normal;text-transform:none;word-wrap:break-word;content:attr(aria-label);pointer-events:none;-webkit-font-smoothing:subpixel-antialiased}.yoast-tooltip-alt:after{content:attr(data-label)}.yoast-tooltip:before{display:none;position:absolute;z-index:1000001;width:0;height:0;border:5px solid transparent;opacity:0;color:rgba(0,0,0,.8);content:"\00a0";pointer-events:none}@keyframes yoast-tooltip-appear{0%{opacity:0}to{opacity:1}}.yoast-tooltip:active:after,.yoast-tooltip:active:before,.yoast-tooltip:focus:after,.yoast-tooltip:focus:before,.yoast-tooltip:hover:after,.yoast-tooltip:hover:before{display:inline-block;text-decoration:none;animation-name:yoast-tooltip-appear;animation-duration:.1s;animation-timing-function:ease-in;animation-delay:.4s;animation-fill-mode:forwards}.yoast-tooltip-no-delay:active:after,.yoast-tooltip-no-delay:active:before,.yoast-tooltip-no-delay:focus:after,.yoast-tooltip-no-delay:focus:before,.yoast-tooltip-no-delay:hover:after,.yoast-tooltip-no-delay:hover:before{opacity:1;animation:none}.yoast-tooltip-multiline:active:after,.yoast-tooltip-multiline:focus:after,.yoast-tooltip-multiline:hover:after{display:table-cell}.yoast-tooltip-s:after,.yoast-tooltip-se:after,.yoast-tooltip-sw:after{top:100%;right:50%;margin-top:5px}.yoast-tooltip-s:before,.yoast-tooltip-se:before,.yoast-tooltip-sw:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.yoast-tooltip-se:after{right:auto;left:50%;margin-left:-15px}.yoast-tooltip-sw:after{margin-right:-15px}.yoast-tooltip-n:after,.yoast-tooltip-ne:after,.yoast-tooltip-nw:after{right:50%;bottom:100%;margin-bottom:5px}.yoast-tooltip-n:before,.yoast-tooltip-ne:before,.yoast-tooltip-nw:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.yoast-tooltip-ne:after{right:auto;left:50%;margin-left:-15px}.yoast-tooltip-nw:after{margin-right:-15px}.yoast-tooltip-n:after,.yoast-tooltip-s:after{-ms-transform:translateX(50%);transform:translateX(50%)}.yoast-tooltip-w:after{right:100%;bottom:50%;margin-right:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-w:before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.yoast-tooltip-e:after{bottom:50%;left:100%;margin-left:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-e:before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.yoast-tooltip-multiline:after{width:250px;width:-webkit-max-content;width:max-content;max-width:250px;border-collapse:separate;white-space:pre-line;word-wrap:normal;word-break:break-word}.yoast-tooltip-multiline.yoast-tooltip-n:after,.yoast-tooltip-multiline.yoast-tooltip-s:after{right:auto;left:50%;-ms-transform:translateX(-50%);transform:translateX(-50%)}.yoast-tooltip-multiline.yoast-tooltip-e:after,.yoast-tooltip-multiline.yoast-tooltip-w:after{right:100%}@media screen and (min-width:0\0){.yoast-tooltip-multiline:after{width:250px}}.yoast-tooltip-sticky:after,.yoast-tooltip-sticky:before{display:inline-block}.yoast-tooltip-sticky.yoast-tooltip-multiline:after{display:table-cell}@media only screen and (-moz-min-device-pixel-ratio:2),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:2dppx),only screen and (min-resolution:192dpi){.yoast-tooltip-w:after{margin-right:4.5px}}.yoast-tooltip.yoast-tooltip-hidden:after,.yoast-tooltip.yoast-tooltip-hidden:before{display:none}.yoast-measure{max-width:600px}#TB_window .wpseo_content_wrapper p{font-size:14px;font-style:normal}#TB_window .wpseo_content_wrapper label{margin:0 10px 0 0;font-size:14px;font-weight:600}.wpseo-help-center-sub-title,.wpseo-premium-popup-title{margin:1em 0!important;padding:0!important;font-size:1.3em!important;font-weight:600!important}.wpseo-premium-popup-icon{margin:10px}.edit-tags-php .column-description img{max-width:100%;height:auto}.select2-search__field{margin:0}.select2-results__option,.select2-search--inline,.select2-selection__choice{margin-bottom:0}.select2-container .select2-search--inline .select2-search__field{margin-top:6px!important;line-height:inherit}.yoast-label-strong{font-weight:600}.yoast-video-container-max-width{max-width:560px}.yoast-video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.yoast-video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.yoast-settings{margin-bottom:2em;padding-left:220px}.yoast-settings h2{margin-bottom:0;margin-left:-220px}.yoast-settings label{display:inline-block;width:200px;padding-top:4px;padding-right:10px;margin-right:6px;margin-left:-220px;font-size:14px;line-height:1.3;font-weight:600;color:#23282d;vertical-align:top}.yoast-settings fieldset,.yoast-settings input[type=text],.yoast-settings label,.yoast-settings select,.yoast-settings textarea,.yoast .yoast-settings__checkbox,.yoast .yoast-settings__radio{margin-top:2em;margin-bottom:.5em}.yoast-settings__textarea--medium{width:100%;max-width:600px}.yoast .yoast-settings__checkbox,.yoast .yoast-settings__radio{vertical-align:top;position:relative;top:1px}.yoast-settings__group--checkbox,.yoast-settings__group--radio{padding-top:1em}.yoast-settings__group--checkbox .yoast-settings__checkbox,.yoast-settings__group--radio .yoast-settings__radio{margin:0 4px 10px 0}.yoast-settings__checkbox+label,.yoast-settings__radio+label{width:auto;margin-left:0;margin-right:0;padding:0;max-width:calc(100% - 25px)}.yoast-settings__group--checkbox .yoast-settings__checkbox+label,.yoast-settings__group--radio .yoast-settings__radio+label{margin-top:0;margin-bottom:10px;font-weight:400}.yoast-settings legend{font-size:14px;font-weight:600;color:#23282d}.yoast-settings .description{margin-top:0;font-size:14px}td .wpseo-score-icon{display:inline-block;width:12px;height:12px;margin-left:5px;border-radius:50%;background:#888;line-height:16px;margin-top:3px}.fixed th.column-wpseo-linked,.fixed th.column-wpseo-links,.fixed th.column-wpseo-score,.fixed th.column-wpseo-score-readability{width:3em;padding:0}th.column-wpseo-linked a,th.column-wpseo-links a,th.column-wpseo-score-readability .yoast-tooltip,th.column-wpseo-score .yoast-tooltip{overflow:visible;display:inline-block;vertical-align:middle;padding:8px 0}th.column-wpseo-score-readability .yoast-tooltip,th.column-wpseo-score .yoast-tooltip{padding:8px 11px}.column-wpseo-links .yoast-tooltip-multiline:after{max-width:160px}.column-wpseo-linked .yoast-tooltip-multiline:after{max-width:170px}.yoast-column-header-has-tooltip{position:relative}.manage-column .yoast-column-header-has-tooltip:before{content:"";display:inline-block;width:20px;height:20px;padding:0;vertical-align:top;text-decoration:none!important;color:#444}.manage-column .yoast-linked-to:before{background:transparent url(../../images/link-out-icon.svg) no-repeat 0 0;background-size:20px}.manage-column .yoast-linked-from:before{background:transparent url(../../images/link-in-icon.svg) no-repeat 0 0;background-size:20px}.manage-column .yoast-column-seo-score:before{background:transparent url(../../images/Yoast_SEO_negative_icon.svg) no-repeat 0 0;background-size:20px}.manage-column .yoast-column-readability:before{background:transparent url(../../images/readability-icon.svg) no-repeat 0 0;background-size:20px}td.column-wpseo-linked,td.column-wpseo-links{word-wrap:normal}@media screen and (max-width:782px){.yoast-settings{padding-left:0}.yoast-settings h2{margin-left:0}.yoast-settings label{width:auto;padding:0;margin-right:0;margin-left:0}.yoast-settings__radio+label,.yoast .yoast-settings__radio{margin-bottom:1em}.yoast-settings__checkbox+label,.yoast-settings__radio+label{max-width:calc(100% - 35px);padding-top:8px}.yoast-settings__group--checkbox .yoast-settings__checkbox+label,.yoast-settings__group--radio .yoast-settings__radio+label{padding-top:4px}.yoast-settings input[type=text],.yoast-settings select,.yoast-settings textarea{display:block;width:100%;margin-top:0;margin-bottom:0;padding:7px 10px;max-width:none;line-height:1.5;box-sizing:border-box}.screen-reader-text.wpseo-score-text{position:static!important;-webkit-clip-path:none;clip-path:none;width:auto;height:auto;margin:0}}#yoast-help-center-container{margin:16px 0 24px}.react-tabs__tab-panel{max-width:900px;margin:0 auto}.react-tabs__tab-panel li{max-width:none!important}.yoast-help-center-open #sidebar-container{display:none}.contact-premium-support{text-align:center}.contact-premium-support__content{margin:0 auto 1.5em;font-size:.9375rem;line-height:1.4}.contact-premium-support__content:nth-child(2){max-width:610px}.contact-premium-support__content:nth-child(3){max-width:560px}.contact-premium-support .contact-premium-support__button{margin-bottom:48px}.wpseo-premium-description{margin-top:.5em}.wpseo-premium-advantages-list{list-style:disc;padding-left:1.5em}.yoast_help.yoast-help-button{overflow:visible;position:relative;width:20px;height:20px;margin:0;padding:0;border:0;outline:none;color:#72777c;background:transparent;box-shadow:none;vertical-align:top;cursor:pointer}.yoast-section .yoast_help.yoast-help-button{float:right}.help-button-inline .yoast_help.yoast-help-button{margin-top:-4px}.yoast-section .yoast_help.yoast-help-button{margin-top:-44px}.wpseo-admin-page .yoast_help.yoast-help-button{margin-right:6px}.yoast_help .yoast-help-icon:before{position:absolute;top:0;left:0;padding:4px;content:"\f223"}.yoast_help.yoast-help-button:focus,.yoast_help.yoast-help-button:hover{color:#0073aa}.assessment-results__mark:focus,.yoast_help.yoast-help-button:focus .yoast-help-icon:before{border-radius:100%;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.yoast-help-panel{display:none;clear:both;max-width:30em!important;padding:0 0 1em;font-weight:400;white-space:normal}.wpseo-admin-page .yoast-help-panel{max-width:600px!important}.copy-home-meta-description .yoast-help-panel{max-width:400px!important}.yoast-modal_is-open{overflow:hidden}.yoast-alert .yoast-seo-icon{float:left;margin:20px 10px}.yoast-alert .yoast-seo-icon-wrap{margin:0 0 0 85px}.yoast-button-upsell{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;box-sizing:border-box;min-height:48px;padding:8px 1em;font-size:16px;line-height:1.5;font-family:Arial,sans-serif;color:#000;border-radius:4px;box-shadow:inset 0 -4px 0 rgba(0,0,0,.2);filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));text-decoration:none;background-color:#fec228}.yoast-button-upsell:active,.yoast-button-upsell:focus,.yoast-button-upsell:hover{color:#000;background-color:#f2ae01}.yoast-button-upsell:focus{box-shadow:inset 0 -4px 0 rgba(0,0,0,.2),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.yoast-button-upsell:active{-ms-transform:translateY(1px);transform:translateY(1px);box-shadow:none;filter:none}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.yoast-button-upsell:after{display:inline-block;content:"";min-height:32px}}.yoast-button-upsell#wpseo-premium-button{color:#000}.yoast-button-upsell__caret{-ms-flex-negative:0;flex-shrink:0;width:8px;height:16px;margin:0 -2px 0 6px;background:transparent url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%20192%20512%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M%200%20384%2E662%20V%20127%2E338%20c%200%20%2D17%2E818%2021%2E543%20%2D26%2E741%2034%2E142%20%2D14%2E142%20l%20128%2E662%20128%2E662%20c%207%2E81%207%2E81%207%2E81%2020%2E474%200%2028%2E284%20L%2034%2E142%20398%2E804%20C%2021%2E543%20411%2E404%200%20402%2E48%200%20384%2E662%20Z%22%2F%3E%3C%2Fsvg%3E") 50% no-repeat}.rtl .yoast-button-upsell__caret{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%20192%20512%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M192%20127%2E338v257%2E324c0%2017%2E818%2D21%2E543%2026%2E741%2D34%2E142%2014%2E142L29%2E196%20270%2E142c%2D7%2E81%2D7%2E81%2D7%2E81%2D20%2E474%200%2D28%2E284l128%2E662%2D128%2E662c12%2E599%2D12%2E6%2034%2E142%2D3%2E676%2034%2E142%2014%2E142z%22%2F%3E%3C%2Fsvg%3E")}
|
1 |
+
.wpseo-premium-indicator{width:1px;height:1px;display:inline-block}#adminmenu .wpseo-premium-indicator{margin:-2px 0 -3px 2px;color:inherit}.wpseo-premium-indicator svg{height:100%;width:auto;display:none}.yoast-tooltip{position:relative}button.yoast-tooltip{overflow:visible}.yoast-tooltip:after{display:none;position:absolute;z-index:1000000;padding:6px 8px 5px;border-radius:3px;opacity:0;color:#fff;background:rgba(0,0,0,.8);text-shadow:none;font:normal normal 11px/1.45454545 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;text-align:center;white-space:pre;text-decoration:none;letter-spacing:normal;text-transform:none;word-wrap:break-word;content:attr(aria-label);pointer-events:none;-webkit-font-smoothing:subpixel-antialiased}.yoast-tooltip-alt:after{content:attr(data-label)}.yoast-tooltip:before{display:none;position:absolute;z-index:1000001;width:0;height:0;border:5px solid transparent;opacity:0;color:rgba(0,0,0,.8);content:"\00a0";pointer-events:none}@keyframes yoast-tooltip-appear{0%{opacity:0}to{opacity:1}}.yoast-tooltip:active:after,.yoast-tooltip:active:before,.yoast-tooltip:focus:after,.yoast-tooltip:focus:before,.yoast-tooltip:hover:after,.yoast-tooltip:hover:before{display:inline-block;text-decoration:none;animation-name:yoast-tooltip-appear;animation-duration:.1s;animation-timing-function:ease-in;animation-delay:.4s;animation-fill-mode:forwards}.yoast-tooltip-no-delay:active:after,.yoast-tooltip-no-delay:active:before,.yoast-tooltip-no-delay:focus:after,.yoast-tooltip-no-delay:focus:before,.yoast-tooltip-no-delay:hover:after,.yoast-tooltip-no-delay:hover:before{opacity:1;animation:none}.yoast-tooltip-multiline:active:after,.yoast-tooltip-multiline:focus:after,.yoast-tooltip-multiline:hover:after{display:table-cell}.yoast-tooltip-s:after,.yoast-tooltip-se:after,.yoast-tooltip-sw:after{top:100%;right:50%;margin-top:5px}.yoast-tooltip-s:before,.yoast-tooltip-se:before,.yoast-tooltip-sw:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.yoast-tooltip-se:after{right:auto;left:50%;margin-left:-15px}.yoast-tooltip-sw:after{margin-right:-15px}.yoast-tooltip-n:after,.yoast-tooltip-ne:after,.yoast-tooltip-nw:after{right:50%;bottom:100%;margin-bottom:5px}.yoast-tooltip-n:before,.yoast-tooltip-ne:before,.yoast-tooltip-nw:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.yoast-tooltip-ne:after{right:auto;left:50%;margin-left:-15px}.yoast-tooltip-nw:after{margin-right:-15px}.yoast-tooltip-n:after,.yoast-tooltip-s:after{-ms-transform:translateX(50%);transform:translateX(50%)}.yoast-tooltip-w:after{right:100%;bottom:50%;margin-right:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-w:before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.yoast-tooltip-e:after{bottom:50%;left:100%;margin-left:5px;-ms-transform:translateY(50%);transform:translateY(50%)}.yoast-tooltip-e:before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.yoast-tooltip-multiline:after{width:250px;width:-webkit-max-content;width:max-content;max-width:250px;border-collapse:separate;white-space:pre-line;word-wrap:normal;word-break:break-word}.yoast-tooltip-multiline.yoast-tooltip-n:after,.yoast-tooltip-multiline.yoast-tooltip-s:after{right:auto;left:50%;-ms-transform:translateX(-50%);transform:translateX(-50%)}.yoast-tooltip-multiline.yoast-tooltip-e:after,.yoast-tooltip-multiline.yoast-tooltip-w:after{right:100%}@media screen and (min-width:0\0){.yoast-tooltip-multiline:after{width:250px}}.yoast-tooltip-sticky:after,.yoast-tooltip-sticky:before{display:inline-block}.yoast-tooltip-sticky.yoast-tooltip-multiline:after{display:table-cell}@media only screen and (-moz-min-device-pixel-ratio:2),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:2dppx),only screen and (min-resolution:192dpi){.yoast-tooltip-w:after{margin-right:4.5px}}.yoast-tooltip.yoast-tooltip-hidden:after,.yoast-tooltip.yoast-tooltip-hidden:before{display:none}.yoast-measure{max-width:600px}#TB_window .wpseo_content_wrapper p{font-size:14px;font-style:normal}#TB_window .wpseo_content_wrapper label{margin:0 10px 0 0;font-size:14px;font-weight:600}.wpseo-help-center-sub-title,.wpseo-premium-popup-title{margin:1em 0!important;padding:0!important;font-size:1.3em!important;font-weight:600!important}.wpseo-premium-popup-icon{margin:10px}.edit-tags-php .column-description img{max-width:100%;height:auto}.select2-search__field{margin:0}.select2-results__option,.select2-search--inline,.select2-selection__choice{margin-bottom:0}.select2-container .select2-search--inline .select2-search__field{margin-top:6px!important;line-height:inherit}.yoast-label-strong{font-weight:600}.yoast-video-container-max-width{max-width:560px}.yoast-video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.yoast-video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.yoast-settings{margin-bottom:2em;padding-left:220px}.yoast-settings h2{margin-bottom:0;margin-left:-220px}.yoast-settings label{display:inline-block;width:200px;padding-top:4px;padding-right:10px;margin-right:6px;margin-left:-220px;font-size:14px;line-height:1.3;font-weight:600;color:#23282d;vertical-align:top}.yoast-settings fieldset,.yoast-settings input[type=text],.yoast-settings label,.yoast-settings select,.yoast-settings textarea,.yoast .yoast-settings__checkbox,.yoast .yoast-settings__radio{margin-top:2em;margin-bottom:.5em}.yoast-settings__textarea--medium{width:100%;max-width:600px}.yoast .yoast-settings__checkbox,.yoast .yoast-settings__radio{vertical-align:top;position:relative;top:1px}.yoast-settings__group--checkbox,.yoast-settings__group--radio{padding-top:1em}.yoast-settings__group--checkbox .yoast-settings__checkbox,.yoast-settings__group--radio .yoast-settings__radio{margin:0 4px 10px 0}.yoast-settings__checkbox+label,.yoast-settings__radio+label{width:auto;margin-left:0;margin-right:0;padding:0;max-width:calc(100% - 25px)}.yoast-settings__group--checkbox .yoast-settings__checkbox+label,.yoast-settings__group--radio .yoast-settings__radio+label{margin-top:0;margin-bottom:10px;font-weight:400}.yoast-settings legend{font-size:14px;font-weight:600;color:#23282d}.yoast-settings .description{margin-top:0;font-size:14px}td .wpseo-score-icon{display:inline-block;width:12px;height:12px;margin-left:5px;border-radius:50%;background:#888;line-height:16px;margin-top:3px}.fixed th.column-wpseo-linked,.fixed th.column-wpseo-links,.fixed th.column-wpseo-score,.fixed th.column-wpseo-score-readability{width:3em;padding:0}th.column-wpseo-linked a,th.column-wpseo-links a,th.column-wpseo-score-readability .yoast-tooltip,th.column-wpseo-score .yoast-tooltip{overflow:visible;display:inline-block;vertical-align:middle;padding:8px 0}th.column-wpseo-score-readability .yoast-tooltip,th.column-wpseo-score .yoast-tooltip{padding:8px 11px}.column-wpseo-links .yoast-tooltip-multiline:after{max-width:160px}.column-wpseo-linked .yoast-tooltip-multiline:after{max-width:170px}.yoast-column-header-has-tooltip{position:relative}.manage-column .yoast-column-header-has-tooltip:before{content:"";display:inline-block;width:20px;height:20px;padding:0;vertical-align:top;text-decoration:none!important;color:#444}.manage-column .yoast-linked-to:before{background:transparent url(../../images/link-out-icon.svg) no-repeat 0 0;background-size:20px}.manage-column .yoast-linked-from:before{background:transparent url(../../images/link-in-icon.svg) no-repeat 0 0;background-size:20px}.manage-column .yoast-column-seo-score:before{background:transparent url(../../images/Yoast_SEO_negative_icon.svg) no-repeat 0 0;background-size:20px}.manage-column .yoast-column-readability:before{background:transparent url(../../images/readability-icon.svg) no-repeat 0 0;background-size:20px}td.column-wpseo-linked,td.column-wpseo-links{word-wrap:normal}@media screen and (max-width:782px){.yoast-settings{padding-left:0}.yoast-settings h2{margin-left:0}.yoast-settings label{width:auto;padding:0;margin-right:0;margin-left:0}.yoast-settings__radio+label,.yoast .yoast-settings__radio{margin-bottom:1em}.yoast-settings__checkbox+label,.yoast-settings__radio+label{max-width:calc(100% - 35px);padding-top:8px}.yoast-settings__group--checkbox .yoast-settings__checkbox+label,.yoast-settings__group--radio .yoast-settings__radio+label{padding-top:4px}.yoast-settings input[type=text],.yoast-settings select,.yoast-settings textarea{display:block;width:100%;margin-top:0;margin-bottom:0;padding:7px 10px;max-width:none;line-height:1.5;box-sizing:border-box}.screen-reader-text.wpseo-score-text{position:static!important;-webkit-clip-path:none;clip-path:none;width:auto;height:auto;margin:0}}#yoast-help-center-container{margin:16px 0 24px}.react-tabs__tab-panel{max-width:900px;margin:0 auto}.react-tabs__tab-panel li{max-width:none!important}.yoast-help-center-open #sidebar-container{display:none}.contact-premium-support{text-align:center}.contact-premium-support__content{margin:0 auto 1.5em;font-size:.9375rem;line-height:1.4}.contact-premium-support__content:nth-child(2){max-width:610px}.contact-premium-support__content:nth-child(3){max-width:560px}.contact-premium-support .contact-premium-support__button{margin-bottom:48px}.wpseo-premium-description{margin-top:.5em}.wpseo-premium-advantages-list{list-style:disc;padding-left:1.5em}.yoast_help.yoast-help-button{overflow:visible;position:relative;width:20px;height:20px;margin:0;padding:0;border:0;outline:none;color:#72777c;background:transparent;box-shadow:none;vertical-align:top;cursor:pointer}.yoast-section .yoast_help.yoast-help-button{float:right}.help-button-inline .yoast_help.yoast-help-button{margin-top:-4px}.yoast-section .yoast_help.yoast-help-button{margin-top:-44px}.wpseo-admin-page .yoast_help.yoast-help-button{margin-right:6px}.yoast_help .yoast-help-icon:before{position:absolute;top:0;left:0;padding:4px;content:"\f223"}.yoast_help.yoast-help-button:focus,.yoast_help.yoast-help-button:hover{color:#0073aa}.assessment-results__mark:focus,.yoast_help.yoast-help-button:focus .yoast-help-icon:before{border-radius:100%;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.yoast-help-panel{display:none;clear:both;max-width:30em!important;padding:0 0 1em;font-weight:400;white-space:normal}.wpseo-admin-page .yoast-help-panel{max-width:600px!important}.copy-home-meta-description .yoast-help-panel{max-width:400px!important}.yoast-modal_is-open{overflow:hidden}.yoast-alert .yoast-seo-icon{float:left;margin:20px 10px}.yoast-alert .yoast-seo-icon-wrap{margin:0 0 0 85px}.yoast-button-upsell{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;box-sizing:border-box;min-height:48px;padding:8px 1em;font-size:16px;line-height:1.5;font-family:Arial,sans-serif;color:#000;border-radius:4px;box-shadow:inset 0 -4px 0 rgba(0,0,0,.2);filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));text-decoration:none;background-color:#fec228}.yoast-button-upsell:active,.yoast-button-upsell:focus,.yoast-button-upsell:hover{color:#000;background-color:#f2ae01}.yoast-button-upsell:focus{box-shadow:inset 0 -4px 0 rgba(0,0,0,.2),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.yoast-button-upsell:active{-ms-transform:translateY(1px);transform:translateY(1px);box-shadow:none;filter:none}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.yoast-button-upsell:after{display:inline-block;content:"";min-height:32px}}.yoast-button-upsell#wpseo-premium-button{color:#000}.yoast-button-upsell__caret{-ms-flex-negative:0;flex-shrink:0;width:8px;height:16px;margin:0 -2px 0 6px;background:transparent url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%20192%20512%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M%200%20384%2E662%20V%20127%2E338%20c%200%20%2D17%2E818%2021%2E543%20%2D26%2E741%2034%2E142%20%2D14%2E142%20l%20128%2E662%20128%2E662%20c%207%2E81%207%2E81%207%2E81%2020%2E474%200%2028%2E284%20L%2034%2E142%20398%2E804%20C%2021%2E543%20411%2E404%200%20402%2E48%200%20384%2E662%20Z%22%2F%3E%3C%2Fsvg%3E") 50% no-repeat}.rtl .yoast-button-upsell__caret{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%20192%20512%22%20xmlns%3D%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F2000%2Fsvg%22%20role%3D%22img%22%20aria%2Dhidden%3D%22true%22%20focusable%3D%22false%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M192%20127%2E338v257%2E324c0%2017%2E818%2D21%2E543%2026%2E741%2D34%2E142%2014%2E142L29%2E196%20270%2E142c%2D7%2E81%2D7%2E81%2D7%2E81%2D20%2E474%200%2D28%2E284l128%2E662%2D128%2E662c12%2E599%2D12%2E6%2034%2E142%2D3%2E676%2034%2E142%2014%2E142z%22%2F%3E%3C%2Fsvg%3E")}body.folded .wpseo-admin-submit-fixed{left:36px}@media screen and (max-width:782px){body.folded .wpseo-admin-submit-fixed{left:0}}.wpseo-admin-submit{z-index:5;display:-ms-flexbox;display:flex;padding:16px 0;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:baseline;align-items:baseline;margin:0}.wpseo-admin-submit.wpseo-admin-submit-fixed{padding:16px;position:fixed;bottom:0;left:160px;right:281px;background-color:#fff;max-width:800px;box-shadow:0 1px 8px 1px rgba(0,0,0,.5);margin:0 16px}@media screen and (max-width:1024px){.wpseo-admin-submit.wpseo-admin-submit-fixed{right:0}}@media only screen and (max-width:960px){.wpseo-admin-submit.wpseo-admin-submit-fixed{left:36px}}@media screen and (max-width:782px){.wpseo-admin-submit.wpseo-admin-submit-fixed{left:0;margin:0}}.wpseo-admin-submit p.submit{padding:0;margin:0}.wpseo-admin-submit p.wpseo-message{margin:0 16px 0 0;padding:0;color:#008a00}
|
css/dist/{adminbar-1220-rtl.min.css → adminbar-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{adminbar-1220.min.css → adminbar-1230.min.css}
RENAMED
File without changes
|
css/dist/{alerts-1220-rtl.min.css → alerts-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{alerts-1220.min.css → alerts-1230.min.css}
RENAMED
File without changes
|
css/dist/{dashboard-1220-rtl.min.css → dashboard-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{dashboard-1220.min.css → dashboard-1230.min.css}
RENAMED
File without changes
|
css/dist/{edit-page-1220-rtl.min.css → edit-page-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{edit-page-1220.min.css → edit-page-1230.min.css}
RENAMED
File without changes
|
css/dist/{featured-image-1220-rtl.min.css → featured-image-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{featured-image-1220.min.css → featured-image-1230.min.css}
RENAMED
File without changes
|
css/dist/{filter-explanation-1220-rtl.min.css → filter-explanation-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{filter-explanation-1220.min.css → filter-explanation-1230.min.css}
RENAMED
File without changes
|
css/dist/{inside-editor-1220-rtl.min.css → inside-editor-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{inside-editor-1220.min.css → inside-editor-1230.min.css}
RENAMED
File without changes
|
css/dist/{metabox-1220-rtl.min.css → metabox-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{metabox-1220.min.css → metabox-1230.min.css}
RENAMED
File without changes
|
css/dist/{metabox-primary-category-1220-rtl.min.css → metabox-primary-category-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{metabox-primary-category-1220.min.css → metabox-primary-category-1230.min.css}
RENAMED
File without changes
|
css/dist/{search-appearance-1220-rtl.min.css → search-appearance-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{search-appearance-1220.min.css → search-appearance-1230.min.css}
RENAMED
File without changes
|
css/dist/{structured-data-blocks-1220-rtl.min.css → structured-data-blocks-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{structured-data-blocks-1220.min.css → structured-data-blocks-1230.min.css}
RENAMED
File without changes
|
css/dist/{toggle-switch-1220-rtl.min.css → toggle-switch-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{toggle-switch-1220.min.css → toggle-switch-1230.min.css}
RENAMED
File without changes
|
css/dist/{wpseo-dismissible-1220-rtl.min.css → wpseo-dismissible-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{wpseo-dismissible-1220.min.css → wpseo-dismissible-1230.min.css}
RENAMED
File without changes
|
css/dist/{yoast-components-1220-rtl.min.css → yoast-components-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{yoast-components-1220.min.css → yoast-components-1230.min.css}
RENAMED
File without changes
|
css/dist/{yoast-extensions-1220-rtl.min.css → yoast-extensions-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{yoast-extensions-1220.min.css → yoast-extensions-1230.min.css}
RENAMED
File without changes
|
css/dist/{yst_plugin_tools-1220-rtl.min.css → yst_plugin_tools-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{yst_plugin_tools-1220.min.css → yst_plugin_tools-1230.min.css}
RENAMED
File without changes
|
css/dist/{yst_seo_score-1220-rtl.min.css → yst_seo_score-1230-rtl.min.css}
RENAMED
File without changes
|
css/dist/{yst_seo_score-1220.min.css → yst_seo_score-1230.min.css}
RENAMED
File without changes
|
{admin/metabox → deprecated/admin}/class-metabox-tab-section.php
RENAMED
@@ -20,6 +20,9 @@ class WPSEO_Metabox_Tab_Section extends WPSEO_Abstract_Metabox_Tab_With_Sections
|
|
20 |
/**
|
21 |
* Constructor.
|
22 |
*
|
|
|
|
|
|
|
23 |
* @param string $name The name of the section, used as an identifier in the html.
|
24 |
* Can only contain URL safe characters.
|
25 |
* @param string $link_content The text content of the section link.
|
@@ -27,6 +30,8 @@ class WPSEO_Metabox_Tab_Section extends WPSEO_Abstract_Metabox_Tab_With_Sections
|
|
27 |
* @param array $options Optional link attributes.
|
28 |
*/
|
29 |
public function __construct( $name, $link_content, array $tabs = array(), array $options = array() ) {
|
|
|
|
|
30 |
parent::__construct( $name, $link_content, $options );
|
31 |
|
32 |
// Filter out invalid tab instances.
|
@@ -40,11 +45,16 @@ class WPSEO_Metabox_Tab_Section extends WPSEO_Abstract_Metabox_Tab_With_Sections
|
|
40 |
/**
|
41 |
* Determines whether the passed tab is considered valid.
|
42 |
*
|
|
|
|
|
|
|
43 |
* @param mixed $tab The potential tab that needs to be validated.
|
44 |
*
|
45 |
* @return bool Whether or not the tab is valid.
|
46 |
*/
|
47 |
protected function is_valid_tab( $tab ) {
|
|
|
|
|
48 |
if ( $tab instanceof WPSEO_Metabox_Tab && ! $tab instanceof WPSEO_Metabox_Null_Tab ) {
|
49 |
return true;
|
50 |
}
|
@@ -54,8 +64,13 @@ class WPSEO_Metabox_Tab_Section extends WPSEO_Abstract_Metabox_Tab_With_Sections
|
|
54 |
|
55 |
/**
|
56 |
* Outputs the section content if any tab has been added.
|
|
|
|
|
|
|
57 |
*/
|
58 |
public function display_content() {
|
|
|
|
|
59 |
if ( $this->has_sections() ) {
|
60 |
$html = '<div role="tabpanel" id="wpseo-meta-section-%1$s" aria-labelledby="wpseo-meta-tab-%1$s" tabindex="0" class="wpseo-meta-section">';
|
61 |
$html .= '<div class="wpseo-metabox-tabs-div">';
|
@@ -63,10 +78,13 @@ class WPSEO_Metabox_Tab_Section extends WPSEO_Abstract_Metabox_Tab_With_Sections
|
|
63 |
$html .= '</div></div>';
|
64 |
|
65 |
printf(
|
|
|
66 |
$html,
|
67 |
esc_attr( $this->name ),
|
68 |
esc_attr( 'wpseo-metabox-tab-' . $this->name ),
|
|
|
69 |
$this->tab_links(),
|
|
|
70 |
$this->tab_content()
|
71 |
);
|
72 |
}
|
@@ -75,27 +93,42 @@ class WPSEO_Metabox_Tab_Section extends WPSEO_Abstract_Metabox_Tab_With_Sections
|
|
75 |
/**
|
76 |
* Add a `WPSEO_Metabox_Tab` object to the tabs.
|
77 |
*
|
|
|
|
|
|
|
78 |
* @param WPSEO_Metabox_Tab $tab Tab to add.
|
79 |
*/
|
80 |
public function add_tab( WPSEO_Metabox_Tab $tab ) {
|
|
|
|
|
81 |
$this->tabs[] = $tab;
|
82 |
}
|
83 |
|
84 |
/**
|
85 |
* Checks if any tabs have been added to the section.
|
86 |
*
|
|
|
|
|
|
|
87 |
* @return bool
|
88 |
*/
|
89 |
protected function has_sections() {
|
|
|
|
|
90 |
return ! empty( $this->tabs );
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
* Concatenates all tabs' links into one html string.
|
95 |
*
|
|
|
|
|
|
|
96 |
* @return string
|
97 |
*/
|
98 |
private function tab_links() {
|
|
|
|
|
99 |
$links = '';
|
100 |
foreach ( $this->tabs as $tab ) {
|
101 |
$links .= $tab->link();
|
@@ -106,9 +139,14 @@ class WPSEO_Metabox_Tab_Section extends WPSEO_Abstract_Metabox_Tab_With_Sections
|
|
106 |
/**
|
107 |
* Concatenates all tabs' content into one html string.
|
108 |
*
|
|
|
|
|
|
|
109 |
* @return string
|
110 |
*/
|
111 |
private function tab_content() {
|
|
|
|
|
112 |
$content = '';
|
113 |
foreach ( $this->tabs as $tab ) {
|
114 |
$content .= $tab->content();
|
@@ -119,9 +157,14 @@ class WPSEO_Metabox_Tab_Section extends WPSEO_Abstract_Metabox_Tab_With_Sections
|
|
119 |
/**
|
120 |
* Gets the name of the tab section.
|
121 |
*
|
|
|
|
|
|
|
122 |
* @return string The name of the tab section.
|
123 |
*/
|
124 |
public function get_name() {
|
|
|
|
|
125 |
return $this->name;
|
126 |
}
|
127 |
}
|
20 |
/**
|
21 |
* Constructor.
|
22 |
*
|
23 |
+
* @deprecated 12.3
|
24 |
+
* @codeCoverageIgnore
|
25 |
+
*
|
26 |
* @param string $name The name of the section, used as an identifier in the html.
|
27 |
* Can only contain URL safe characters.
|
28 |
* @param string $link_content The text content of the section link.
|
30 |
* @param array $options Optional link attributes.
|
31 |
*/
|
32 |
public function __construct( $name, $link_content, array $tabs = array(), array $options = array() ) {
|
33 |
+
_deprecated_function( __METHOD__, 'WPSEO 12.3' );
|
34 |
+
|
35 |
parent::__construct( $name, $link_content, $options );
|
36 |
|
37 |
// Filter out invalid tab instances.
|
45 |
/**
|
46 |
* Determines whether the passed tab is considered valid.
|
47 |
*
|
48 |
+
* @deprecated 12.3
|
49 |
+
* @codeCoverageIgnore
|
50 |
+
*
|
51 |
* @param mixed $tab The potential tab that needs to be validated.
|
52 |
*
|
53 |
* @return bool Whether or not the tab is valid.
|
54 |
*/
|
55 |
protected function is_valid_tab( $tab ) {
|
56 |
+
_deprecated_function( __METHOD__, 'WPSEO 12.3' );
|
57 |
+
|
58 |
if ( $tab instanceof WPSEO_Metabox_Tab && ! $tab instanceof WPSEO_Metabox_Null_Tab ) {
|
59 |
return true;
|
60 |
}
|
64 |
|
65 |
/**
|
66 |
* Outputs the section content if any tab has been added.
|
67 |
+
*
|
68 |
+
* @deprecated 12.3
|
69 |
+
* @codeCoverageIgnore
|
70 |
*/
|
71 |
public function display_content() {
|
72 |
+
_deprecated_function( __METHOD__, 'WPSEO 12.3' );
|
73 |
+
|
74 |
if ( $this->has_sections() ) {
|
75 |
$html = '<div role="tabpanel" id="wpseo-meta-section-%1$s" aria-labelledby="wpseo-meta-tab-%1$s" tabindex="0" class="wpseo-meta-section">';
|
76 |
$html .= '<div class="wpseo-metabox-tabs-div">';
|
78 |
$html .= '</div></div>';
|
79 |
|
80 |
printf(
|
81 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: This is deprecated.
|
82 |
$html,
|
83 |
esc_attr( $this->name ),
|
84 |
esc_attr( 'wpseo-metabox-tab-' . $this->name ),
|
85 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: This is deprecated.
|
86 |
$this->tab_links(),
|
87 |
+
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: This is deprecated.
|
88 |
$this->tab_content()
|
89 |
);
|
90 |
}
|
93 |
/**
|
94 |
* Add a `WPSEO_Metabox_Tab` object to the tabs.
|
95 |
*
|
96 |
+
* @deprecated 12.3
|
97 |
+
* @codeCoverageIgnore
|
98 |
+
*
|
99 |
* @param WPSEO_Metabox_Tab $tab Tab to add.
|
100 |
*/
|
101 |
public function add_tab( WPSEO_Metabox_Tab $tab ) {
|
102 |
+
_deprecated_function( __METHOD__, 'WPSEO 12.3' );
|
103 |
+
|
104 |
$this->tabs[] = $tab;
|
105 |
}
|
106 |
|
107 |
/**
|
108 |
* Checks if any tabs have been added to the section.
|
109 |
*
|
110 |
+
* @deprecated 12.3
|
111 |
+
* @codeCoverageIgnore
|
112 |
+
*
|
113 |
* @return bool
|
114 |
*/
|
115 |
protected function has_sections() {
|
116 |
+
_deprecated_function( __METHOD__, 'WPSEO 12.3' );
|
117 |
+
|
118 |
return ! empty( $this->tabs );
|
119 |
}
|
120 |
|
121 |
/**
|
122 |
* Concatenates all tabs' links into one html string.
|
123 |
*
|
124 |
+
* @deprecated 12.3
|
125 |
+
* @codeCoverageIgnore
|
126 |
+
*
|
127 |
* @return string
|
128 |
*/
|
129 |
private function tab_links() {
|
130 |
+
_deprecated_function( __METHOD__, 'WPSEO 12.3' );
|
131 |
+
|
132 |
$links = '';
|
133 |
foreach ( $this->tabs as $tab ) {
|
134 |
$links .= $tab->link();
|
139 |
/**
|
140 |
* Concatenates all tabs' content into one html string.
|
141 |
*
|
142 |
+
* @deprecated 12.3
|
143 |
+
* @codeCoverageIgnore
|
144 |
+
*
|
145 |
* @return string
|
146 |
*/
|
147 |
private function tab_content() {
|
148 |
+
_deprecated_function( __METHOD__, 'WPSEO 12.3' );
|
149 |
+
|
150 |
$content = '';
|
151 |
foreach ( $this->tabs as $tab ) {
|
152 |
$content .= $tab->content();
|
157 |
/**
|
158 |
* Gets the name of the tab section.
|
159 |
*
|
160 |
+
* @deprecated 12.3
|
161 |
+
* @codeCoverageIgnore
|
162 |
+
*
|
163 |
* @return string The name of the tab section.
|
164 |
*/
|
165 |
public function get_name() {
|
166 |
+
_deprecated_function( __METHOD__, 'WPSEO 12.3' );
|
167 |
+
|
168 |
return $this->name;
|
169 |
}
|
170 |
}
|
frontend/schema/class-schema-utils.php
CHANGED
@@ -23,6 +23,9 @@ class WPSEO_Schema_Utils {
|
|
23 |
public static function get_user_schema_id( $user_id, $context ) {
|
24 |
$user = get_userdata( $user_id );
|
25 |
|
26 |
-
|
|
|
|
|
|
|
27 |
}
|
28 |
}
|
23 |
public static function get_user_schema_id( $user_id, $context ) {
|
24 |
$user = get_userdata( $user_id );
|
25 |
|
26 |
+
if ( is_object( $user ) && isset( $user->user_login ) ) {
|
27 |
+
return $context->site_url . WPSEO_Schema_IDs::PERSON_HASH . wp_hash( $user->user_login . $user_id );
|
28 |
+
}
|
29 |
+
return $context->site_url . WPSEO_Schema_IDs::PERSON_HASH;
|
30 |
}
|
31 |
}
|
inc/class-upgrade.php
CHANGED
@@ -137,6 +137,10 @@ class WPSEO_Upgrade {
|
|
137 |
$this->clean_all_notifications();
|
138 |
}
|
139 |
|
|
|
|
|
|
|
|
|
140 |
// Since 3.7.
|
141 |
$upsell_notice = new WPSEO_Product_Upsell_Notice();
|
142 |
$upsell_notice->set_upgrade_notice();
|
@@ -686,6 +690,26 @@ class WPSEO_Upgrade {
|
|
686 |
}
|
687 |
}
|
688 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
689 |
/**
|
690 |
* Removes all notifications saved in the database under 'wp_yoast_notifications'.
|
691 |
*
|
137 |
$this->clean_all_notifications();
|
138 |
}
|
139 |
|
140 |
+
if ( version_compare( $version, '12.3-RC0', '<' ) ) {
|
141 |
+
$this->upgrade_123();
|
142 |
+
}
|
143 |
+
|
144 |
// Since 3.7.
|
145 |
$upsell_notice = new WPSEO_Product_Upsell_Notice();
|
146 |
$upsell_notice->set_upgrade_notice();
|
690 |
}
|
691 |
}
|
692 |
|
693 |
+
/**
|
694 |
+
* Removes the about notice when its still in the database.
|
695 |
+
*/
|
696 |
+
private function upgrade_123() {
|
697 |
+
$plugins = array(
|
698 |
+
'yoast-seo-premium',
|
699 |
+
'video-seo-for-wordpress-seo-by-yoast',
|
700 |
+
'yoast-news-seo',
|
701 |
+
'local-seo-for-yoast-seo',
|
702 |
+
'yoast-woocommerce-seo',
|
703 |
+
'yoast-acf-analysis',
|
704 |
+
);
|
705 |
+
|
706 |
+
$center = Yoast_Notification_Center::get();
|
707 |
+
foreach ( $plugins as $plugin ) {
|
708 |
+
$center->remove_notification_by_id( 'wpseo-outdated-yoast-seo-plugin-' . $plugin );
|
709 |
+
|
710 |
+
}
|
711 |
+
}
|
712 |
+
|
713 |
/**
|
714 |
* Removes all notifications saved in the database under 'wp_yoast_notifications'.
|
715 |
*
|
inc/health-check.php
ADDED
@@ -0,0 +1,184 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Internals
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Represents the abstract class for the health check.
|
10 |
+
*/
|
11 |
+
abstract class WPSEO_Health_Check {
|
12 |
+
|
13 |
+
const STATUS_GOOD = 'good';
|
14 |
+
const STATUS_RECOMMENDED = 'recommended';
|
15 |
+
const STATUS_CRITICAL = 'critical';
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Name of the test.
|
19 |
+
*
|
20 |
+
* @var string
|
21 |
+
*/
|
22 |
+
protected $name = '';
|
23 |
+
|
24 |
+
/**
|
25 |
+
* The value of the section header in the Health check.
|
26 |
+
*
|
27 |
+
* @var string
|
28 |
+
*/
|
29 |
+
protected $label = '';
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Section the result should be displayed in.
|
33 |
+
*
|
34 |
+
* @var string
|
35 |
+
*/
|
36 |
+
protected $status = '';
|
37 |
+
|
38 |
+
/**
|
39 |
+
* What the badge should say with a color.
|
40 |
+
*
|
41 |
+
* @var array
|
42 |
+
*/
|
43 |
+
protected $badge = array(
|
44 |
+
'label' => '',
|
45 |
+
'color' => '',
|
46 |
+
);
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Additional details about the results of the test.
|
50 |
+
*
|
51 |
+
* @var string
|
52 |
+
*/
|
53 |
+
protected $description = '';
|
54 |
+
|
55 |
+
/**
|
56 |
+
* A link or button to allow the end user to take action on the result.
|
57 |
+
*
|
58 |
+
* @var string
|
59 |
+
*/
|
60 |
+
protected $actions = '';
|
61 |
+
|
62 |
+
/**
|
63 |
+
* The name of the test.
|
64 |
+
*
|
65 |
+
* @var string
|
66 |
+
*/
|
67 |
+
protected $test = '';
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Whether or not the test should be ran on AJAX as well.
|
71 |
+
*
|
72 |
+
* @var bool True when is async, default false.
|
73 |
+
*/
|
74 |
+
protected $async = false;
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Runs the test and returns the result.
|
78 |
+
*
|
79 |
+
* @return array The result.
|
80 |
+
*/
|
81 |
+
abstract public function run();
|
82 |
+
|
83 |
+
/**
|
84 |
+
* Registers the test to WordPress.
|
85 |
+
*/
|
86 |
+
public function register_test() {
|
87 |
+
if ( $this->async ) {
|
88 |
+
add_filter( 'site_status_tests', array( $this, 'add_async_test' ) );
|
89 |
+
|
90 |
+
add_action( 'wp_ajax_health-check-' . $this->get_test_name(), array( $this, 'get_async_test_result' ) );
|
91 |
+
|
92 |
+
return;
|
93 |
+
}
|
94 |
+
|
95 |
+
add_filter( 'site_status_tests', array( $this, 'add_test' ) );
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Runs the test.
|
100 |
+
*
|
101 |
+
* @param array $tests Array with the current tests.
|
102 |
+
*
|
103 |
+
* @return array The extended array.
|
104 |
+
*/
|
105 |
+
public function add_test( $tests ) {
|
106 |
+
$tests['direct'][ $this->name ] = array(
|
107 |
+
'test' => array( $this, 'get_test_result' ),
|
108 |
+
'name' => $this->name,
|
109 |
+
);
|
110 |
+
|
111 |
+
return $tests;
|
112 |
+
}
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Runs the test in async mode.
|
116 |
+
*
|
117 |
+
* @param array $tests Array with the current tests.
|
118 |
+
*
|
119 |
+
* @return array The extended array.
|
120 |
+
*/
|
121 |
+
public function add_async_test( $tests ) {
|
122 |
+
$tests['async'][ $this->name ] = array(
|
123 |
+
'test' => $this->get_test_name(),
|
124 |
+
'name' => $this->name,
|
125 |
+
);
|
126 |
+
|
127 |
+
return $tests;
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Formats the test result as an array.
|
132 |
+
*
|
133 |
+
* @return array The formatted test result.
|
134 |
+
*/
|
135 |
+
public function get_test_result() {
|
136 |
|