Version Description
Download this release
Release Info
Developer | Yoast |
Plugin | Yoast SEO |
Version | 11.8 |
Comparing to | |
See all releases |
Code changes from version 11.7 to 11.8
- admin/class-admin-gutenberg-compatibility-notification.php +4 -0
- admin/class-admin-init.php +1 -1
- admin/class-asset.php +16 -0
- admin/class-customizer.php +9 -7
- admin/class-gutenberg-compatibility.php +2 -2
- admin/class-meta-table-accessible.php +4 -0
- admin/class-my-yoast-route.php +2 -0
- admin/class-paper-presenter.php +22 -9
- admin/class-social-admin.php +26 -17
- admin/class-yoast-dashboard-widget.php +2 -0
- admin/config-ui/class-configuration-page.php +1 -1
- admin/config-ui/components/class-component-mailchimp-signup.php +2 -0
- admin/config-ui/components/interface-component.php +2 -0
- admin/endpoints/class-endpoint-file-size.php +6 -0
- admin/endpoints/class-endpoint-indexable.php +8 -0
- admin/endpoints/class-endpoint-ryte.php +6 -0
- admin/endpoints/class-endpoint-statistics.php +6 -0
- admin/filters/class-abstract-post-filter.php +2 -0
- admin/formatter/class-post-metabox-formatter.php +2 -0
- admin/formatter/class-term-metabox-formatter.php +4 -0
- admin/google_search_console/class-gsc-config.php +2 -0
- admin/google_search_console/class-gsc-count.php +2 -0
- admin/google_search_console/class-gsc-issue.php +8 -0
- admin/google_search_console/class-gsc-issues.php +2 -0
- admin/google_search_console/class-gsc-marker.php +10 -0
- admin/google_search_console/class-gsc-modal.php +6 -0
- admin/google_search_console/class-gsc-platform-tabs.php +2 -0
- admin/google_search_console/class-gsc-service.php +4 -0
- admin/google_search_console/class-gsc-table.php +6 -0
- admin/google_search_console/class-gsc.php +6 -0
- admin/import/class-import-plugin.php +4 -0
- admin/import/class-import-settings.php +4 -0
- admin/links/class-link-column-count.php +2 -0
- admin/links/class-link-columns.php +3 -1
- admin/links/class-link-compatibility-notifier.php +2 -0
- admin/links/class-link-content-processor.php +4 -0
- admin/links/class-link-extractor.php +2 -0
- admin/links/class-link-factory.php +6 -0
- admin/links/class-link-filter.php +2 -0
- admin/links/class-link-installer.php +2 -0
- admin/links/class-link-notifier.php +2 -0
- admin/links/class-link-reindex-post-endpoint.php +8 -0
- admin/links/class-link-storage.php +4 -0
- admin/links/class-link-table-accessible-notifier.php +2 -0
- admin/links/class-link-table-accessible.php +4 -0
- admin/links/class-link-type-classifier.php +4 -0
- admin/links/class-link-watcher.php +2 -0
- admin/links/class-link.php +10 -0
- admin/menu/class-replacevar-editor.php +2 -0
- admin/metabox/class-abstract-sectioned-metabox-tab.php +95 -0
- admin/metabox/class-metabox-addon-section.php +1 -1
- admin/metabox/class-metabox-collapsible.php +84 -0
- admin/metabox/class-metabox-collapsibles-section.php +59 -0
- admin/metabox/class-metabox-editor.php +0 -1
- admin/metabox/class-metabox-form-tab.php +16 -0
- admin/metabox/class-metabox-section-react.php +10 -0
- admin/metabox/class-metabox-tab-section.php +6 -57
- admin/metabox/class-metabox.php +36 -28
- admin/notifiers/class-configuration-notifier.php +6 -0
- admin/onpage/class-onpage-option.php +9 -1
- admin/onpage/class-onpage-request.php +3 -1
- admin/onpage/class-ryte-service.php +2 -0
- admin/recalculate/class-recalculate.php +2 -0
- admin/statistics/class-statistics-service.php +6 -0
- admin/taxonomy/class-taxonomy-columns.php +4 -0
- admin/taxonomy/class-taxonomy-fields-presenter.php +2 -0
- admin/taxonomy/class-taxonomy-metabox.php +42 -48
- admin/taxonomy/class-taxonomy-settings-fields.php +3 -1
- admin/taxonomy/class-taxonomy.php +9 -0
- admin/tracking/class-tracking.php +6 -0
- admin/views/class-yoast-input-select.php +6 -0
- admin/views/paper-collapsible.php +27 -8
- admin/views/tabs/dashboard/dashboard.php +7 -1
- admin/views/tabs/metas/archives.php +1 -0
- admin/views/tabs/metas/breadcrumbs.php +2 -1
- admin/views/tabs/metas/general.php +2 -1
- admin/views/tabs/metas/media.php +1 -0
- admin/views/tabs/metas/post-types.php +1 -0
- admin/views/tabs/metas/rss.php +1 -0
- admin/views/tabs/metas/taxonomies.php +1 -0
- config/composer/actions.php +65 -0
- config/dependency-injection/container-compiler.php +52 -0
- config/dependency-injection/custom-loader.php +218 -0
- config/dependency-injection/loader-pass.php +72 -0
- config/dependency-injection/services.php +55 -0
- config/php-scoper/dependency-injection.inc.php +41 -0
- config/php-scoper/guzzlehttp.inc.php +32 -0
- config/php-scoper/idiorm.inc.php +47 -0
- config/php-scoper/oauth2-client.inc.php +54 -0
- config/php-scoper/psr.inc.php +32 -0
- config/php-scoper/ruckusing.inc.php +181 -0
- css/dist/{admin-global-1170-rtl.min.css → admin-global-1180-rtl.min.css} +0 -0
- css/dist/{admin-global-1170.min.css → admin-global-1180.min.css} +0 -0
- css/dist/{adminbar-1170-rtl.min.css → adminbar-1180-rtl.min.css} +0 -0
- css/dist/{adminbar-1170.min.css → adminbar-1180.min.css} +0 -0
- css/dist/{alerts-1170-rtl.min.css → alerts-1180-rtl.min.css} +0 -0
- css/dist/{alerts-1170.min.css → alerts-1180.min.css} +0 -0
- css/dist/{dashboard-1170-rtl.min.css → dashboard-1180-rtl.min.css} +0 -0
- css/dist/{dashboard-1170.min.css → dashboard-1180.min.css} +0 -0
- css/dist/{edit-page-1170-rtl.min.css → edit-page-1180-rtl.min.css} +0 -0
- css/dist/{edit-page-1170.min.css → edit-page-1180.min.css} +0 -0
- css/dist/{featured-image-1170-rtl.min.css → featured-image-1180-rtl.min.css} +0 -0
- css/dist/{featured-image-1170.min.css → featured-image-1180.min.css} +0 -0
- css/dist/{filter-explanation-1170-rtl.min.css → filter-explanation-1180-rtl.min.css} +0 -0
- css/dist/{filter-explanation-1170.min.css → filter-explanation-1180.min.css} +0 -0
- css/dist/{inside-editor-1170-rtl.min.css → inside-editor-1180-rtl.min.css} +0 -0
- css/dist/{inside-editor-1170.min.css → inside-editor-1180.min.css} +0 -0
- css/dist/metabox-1170-rtl.min.css +0 -1
- css/dist/metabox-1170.min.css +0 -1
- css/dist/metabox-1180-rtl.min.css +1 -0
- css/dist/metabox-1180.min.css +5 -0
- css/dist/{metabox-primary-category-1170-rtl.min.css → metabox-primary-category-1180-rtl.min.css} +0 -0
- css/dist/{metabox-primary-category-1170.min.css → metabox-primary-category-1180.min.css} +0 -0
- css/dist/{search-appearance-1170-rtl.min.css → search-appearance-1180-rtl.min.css} +0 -0
- css/dist/{search-appearance-1170.min.css → search-appearance-1180.min.css} +0 -0
- css/dist/{structured-data-blocks-1170-rtl.min.css → structured-data-blocks-1180-rtl.min.css} +0 -0
- css/dist/{structured-data-blocks-1170.min.css → structured-data-blocks-1180.min.css} +0 -0
- css/dist/{toggle-switch-1170-rtl.min.css → toggle-switch-1180-rtl.min.css} +0 -0
- css/dist/{toggle-switch-1170.min.css → toggle-switch-1180.min.css} +0 -0
- css/dist/{wpseo-dismissible-1170-rtl.min.css → wpseo-dismissible-1180-rtl.min.css} +0 -0
- css/dist/{wpseo-dismissible-1170.min.css → wpseo-dismissible-1180.min.css} +0 -0
- css/dist/{yoast-components-1170-rtl.min.css → yoast-components-1180-rtl.min.css} +0 -0
- css/dist/{yoast-components-1170.min.css → yoast-components-1180.min.css} +0 -0
- css/dist/{yoast-extensions-1170-rtl.min.css → yoast-extensions-1180-rtl.min.css} +0 -0
- css/dist/{yoast-extensions-1170.min.css → yoast-extensions-1180.min.css} +0 -0
- css/dist/yst_plugin_tools-1170-rtl.min.css +0 -1
- css/dist/yst_plugin_tools-1170.min.css +0 -1
- css/dist/yst_plugin_tools-1180-rtl.min.css +1 -0
- css/dist/yst_plugin_tools-1180.min.css +1 -0
- css/dist/{yst_seo_score-1170-rtl.min.css → yst_seo_score-1180-rtl.min.css} +0 -0
- css/dist/{yst_seo_score-1170.min.css → yst_seo_score-1180.min.css} +0 -0
- deprecated/class-cornerstone.php +4 -0
- deprecated/class-yoast-modal.php +2 -0
- frontend/class-breadcrumbs.php +2 -1
- frontend/class-frontend.php +14 -1
- frontend/class-opengraph-image.php +2 -0
- frontend/class-twitter.php +2 -0
- frontend/schema/class-schema-howto.php +1 -0
- frontend/schema/class-schema-webpage.php +2 -2
- inc/class-structured-data-blocks.php +2 -0
- inc/class-upgrade-history.php +0 -1
- inc/class-wpseo-image-utils.php +1 -1
- inc/class-wpseo-rank.php +20 -2
- inc/class-wpseo-shortlinker.php +14 -0
- inc/class-wpseo-utils.php +1 -0
- inc/options/class-wpseo-option-titles.php +4 -2
- inc/options/class-wpseo-options.php +0 -1
- inc/sitemaps/class-author-sitemap-provider.php +2 -0
- inc/sitemaps/class-post-type-sitemap-provider.php +4 -0
- inc/sitemaps/class-sitemap-image-parser.php +2 -0
- inc/sitemaps/class-sitemaps-renderer.php +4 -0
- inc/sitemaps/class-sitemaps.php +10 -0
- inc/sitemaps/class-taxonomy-sitemap-provider.php +2 -0
- inc/sitemaps/interface-sitemap-cache-data.php +2 -0
- js/dist/{analysis-1170.min.js → analysis-1180.min.js} +0 -0
- js/dist/{babel-polyfill-1170.min.js → babel-polyfill-1180.min.js} +0 -0
- js/dist/{commons-1170.min.js → commons-1180.min.js} +0 -0
- js/dist/{components-1170.min.js → components-1180.min.js} +0 -0
- js/dist/{configuration-wizard-1170.min.js → configuration-wizard-1180.min.js} +0 -0
- js/dist/{search-appearance-1170.min.js → search-appearance-1180.min.js} +0 -0
- js/dist/{styled-components-1170.min.js → styled-components-1180.min.js} +0 -0
- js/dist/{wp-apiFetch-1170.min.js → wp-apiFetch-1180.min.js} +0 -0
- js/dist/{wp-components-1170.min.js → wp-components-1180.min.js} +0 -0
- js/dist/{wp-compose-1170.min.js → wp-compose-1180.min.js} +0 -0
- js/dist/{wp-data-1170.min.js → wp-data-1180.min.js} +0 -0
- js/dist/{wp-element-1170.min.js → wp-element-1180.min.js} +0 -0
- js/dist/{wp-i18n-1170.min.js → wp-i18n-1180.min.js} +0 -0
- js/dist/{wp-richText-1170.min.js → wp-richText-1180.min.js} +0 -0
- js/dist/{wp-seo-admin-1170.min.js → wp-seo-admin-1180.min.js} +0 -0
- js/dist/{wp-seo-admin-global-1170.min.js → wp-seo-admin-global-1180.min.js} +0 -0
- js/dist/{wp-seo-admin-gsc-1170.min.js → wp-seo-admin-gsc-1180.min.js} +0 -0
- js/dist/{wp-seo-admin-media-1170.min.js → wp-seo-admin-media-1180.min.js} +0 -0
- js/dist/wp-seo-analysis-worker-1170.min.js +0 -21
admin/class-admin-gutenberg-compatibility-notification.php
CHANGED
@@ -18,11 +18,15 @@ class WPSEO_Admin_Gutenberg_Compatibility_Notification implements WPSEO_WordPres
|
|
18 |
private $notification_id = 'wpseo-outdated-gutenberg-plugin';
|
19 |
|
20 |
/**
|
|
|
|
|
21 |
* @var WPSEO_Gutenberg_Compatibility
|
22 |
*/
|
23 |
private $compatibility_checker;
|
24 |
|
25 |
/**
|
|
|
|
|
26 |
* @var Yoast_Notification_Center
|
27 |
*/
|
28 |
private $notification_center;
|
18 |
private $notification_id = 'wpseo-outdated-gutenberg-plugin';
|
19 |
|
20 |
/**
|
21 |
+
* Instance of gutenberg compatibility checker.
|
22 |
+
*
|
23 |
* @var WPSEO_Gutenberg_Compatibility
|
24 |
*/
|
25 |
private $compatibility_checker;
|
26 |
|
27 |
/**
|
28 |
+
* Instance of Yoast Notification Center.
|
29 |
+
*
|
30 |
* @var Yoast_Notification_Center
|
31 |
*/
|
32 |
private $notification_center;
|
admin/class-admin-init.php
CHANGED
@@ -469,7 +469,7 @@ class WPSEO_Admin_Init {
|
|
469 |
$message .= sprintf(
|
470 |
/* translators: %1$s expands to Yoast SEO, %2$s expands to 5.0 */
|
471 |
__(
|
472 |
-
'If you’ve held off on updating to %2$s and higher because of the new Gutenberg editor, please install the Classic
|
473 |
'wordpress-seo'
|
474 |
),
|
475 |
'Yoast SEO',
|
469 |
$message .= sprintf(
|
470 |
/* translators: %1$s expands to Yoast SEO, %2$s expands to 5.0 */
|
471 |
__(
|
472 |
+
'If you’ve held off on updating to %2$s and higher because of the new Gutenberg editor, please install the Classic Editor plugin. It will give you the same editing experience you have now, but also the security of newer versions of WordPress and %1$s.',
|
473 |
'wordpress-seo'
|
474 |
),
|
475 |
'Yoast SEO',
|
admin/class-asset.php
CHANGED
@@ -25,21 +25,29 @@ class WPSEO_Admin_Asset {
|
|
25 |
const TYPE_CSS = 'css';
|
26 |
|
27 |
/**
|
|
|
|
|
28 |
* @var string
|
29 |
*/
|
30 |
const NAME = 'name';
|
31 |
|
32 |
/**
|
|
|
|
|
33 |
* @var string
|
34 |
*/
|
35 |
const SRC = 'src';
|
36 |
|
37 |
/**
|
|
|
|
|
38 |
* @var string
|
39 |
*/
|
40 |
const DEPS = 'deps';
|
41 |
|
42 |
/**
|
|
|
|
|
43 |
* @var string
|
44 |
*/
|
45 |
const VERSION = 'version';
|
@@ -47,11 +55,15 @@ class WPSEO_Admin_Asset {
|
|
47 |
/* Style specific. */
|
48 |
|
49 |
/**
|
|
|
|
|
50 |
* @var string
|
51 |
*/
|
52 |
const MEDIA = 'media';
|
53 |
|
54 |
/**
|
|
|
|
|
55 |
* @var string
|
56 |
*/
|
57 |
const RTL = 'rtl';
|
@@ -59,6 +71,8 @@ class WPSEO_Admin_Asset {
|
|
59 |
/* Script specific. */
|
60 |
|
61 |
/**
|
|
|
|
|
62 |
* @var string
|
63 |
*/
|
64 |
const IN_FOOTER = 'in_footer';
|
@@ -136,6 +150,8 @@ class WPSEO_Admin_Asset {
|
|
136 |
);
|
137 |
|
138 |
/**
|
|
|
|
|
139 |
* @param array $args The arguments for this asset.
|
140 |
*
|
141 |
* @throws InvalidArgumentException Throws when no name or src has been provided.
|
25 |
const TYPE_CSS = 'css';
|
26 |
|
27 |
/**
|
28 |
+
* The name option identifier.
|
29 |
+
*
|
30 |
* @var string
|
31 |
*/
|
32 |
const NAME = 'name';
|
33 |
|
34 |
/**
|
35 |
+
* The source option identifier.
|
36 |
+
*
|
37 |
* @var string
|
38 |
*/
|
39 |
const SRC = 'src';
|
40 |
|
41 |
/**
|
42 |
+
* The dependencies option identifier.
|
43 |
+
*
|
44 |
* @var string
|
45 |
*/
|
46 |
const DEPS = 'deps';
|
47 |
|
48 |
/**
|
49 |
+
* The version option identifier.
|
50 |
+
*
|
51 |
* @var string
|
52 |
*/
|
53 |
const VERSION = 'version';
|
55 |
/* Style specific. */
|
56 |
|
57 |
/**
|
58 |
+
* The media option identifier.
|
59 |
+
*
|
60 |
* @var string
|
61 |
*/
|
62 |
const MEDIA = 'media';
|
63 |
|
64 |
/**
|
65 |
+
* The rtl option identifier.
|
66 |
+
*
|
67 |
* @var string
|
68 |
*/
|
69 |
const RTL = 'rtl';
|
71 |
/* Script specific. */
|
72 |
|
73 |
/**
|
74 |
+
* The "in footer" option identifier.
|
75 |
+
*
|
76 |
* @var string
|
77 |
*/
|
78 |
const IN_FOOTER = 'in_footer';
|
150 |
);
|
151 |
|
152 |
/**
|
153 |
+
* Constructs an instance of the WPSEO_Admin_Asset class.
|
154 |
+
*
|
155 |
* @param array $args The arguments for this asset.
|
156 |
*
|
157 |
* @throws InvalidArgumentException Throws when no name or src has been provided.
|
admin/class-customizer.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_Customizer {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var WP_Customize_Manager
|
15 |
*/
|
16 |
protected $wp_customize;
|
@@ -66,7 +68,7 @@ class WPSEO_Customizer {
|
|
66 |
$this->wp_customize = $wp_customize;
|
67 |
|
68 |
$this->breadcrumbs_section();
|
69 |
-
$this->
|
70 |
$this->breadcrumbs_separator_setting();
|
71 |
$this->breadcrumbs_home_setting();
|
72 |
$this->breadcrumbs_prefix_setting();
|
@@ -99,25 +101,25 @@ class WPSEO_Customizer {
|
|
99 |
}
|
100 |
|
101 |
/**
|
102 |
-
* Adds the breadcrumbs
|
103 |
*/
|
104 |
-
private function
|
105 |
$index = 'breadcrumbs-display-blog-page';
|
106 |
$control_args = array(
|
107 |
-
'label' => __( '
|
108 |
'type' => 'checkbox',
|
109 |
-
'active_callback' => array( $this, '
|
110 |
);
|
111 |
|
112 |
$this->add_setting_and_control( $index, $control_args );
|
113 |
}
|
114 |
|
115 |
/**
|
116 |
-
* Returns whether or not to show the breadcrumbs blog
|
117 |
*
|
118 |
* @return bool
|
119 |
*/
|
120 |
-
public function
|
121 |
return 'page' === get_option( 'show_on_front' );
|
122 |
}
|
123 |
|
11 |
class WPSEO_Customizer {
|
12 |
|
13 |
/**
|
14 |
+
* Holds the customize manager.
|
15 |
+
*
|
16 |
* @var WP_Customize_Manager
|
17 |
*/
|
18 |
protected $wp_customize;
|
68 |
$this->wp_customize = $wp_customize;
|
69 |
|
70 |
$this->breadcrumbs_section();
|
71 |
+
$this->breadcrumbs_blog_show_setting();
|
72 |
$this->breadcrumbs_separator_setting();
|
73 |
$this->breadcrumbs_home_setting();
|
74 |
$this->breadcrumbs_prefix_setting();
|
101 |
}
|
102 |
|
103 |
/**
|
104 |
+
* Adds the breadcrumbs show blog checkbox.
|
105 |
*/
|
106 |
+
private function breadcrumbs_blog_show_setting() {
|
107 |
$index = 'breadcrumbs-display-blog-page';
|
108 |
$control_args = array(
|
109 |
+
'label' => __( 'Show blog page in breadcrumbs', 'wordpress-seo' ),
|
110 |
'type' => 'checkbox',
|
111 |
+
'active_callback' => array( $this, 'breadcrumbs_blog_show_active_cb' ),
|
112 |
);
|
113 |
|
114 |
$this->add_setting_and_control( $index, $control_args );
|
115 |
}
|
116 |
|
117 |
/**
|
118 |
+
* Returns whether or not to show the breadcrumbs blog show option.
|
119 |
*
|
120 |
* @return bool
|
121 |
*/
|
122 |
+
public function breadcrumbs_blog_show_active_cb() {
|
123 |
return 'page' === get_option( 'show_on_front' );
|
124 |
}
|
125 |
|
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.2.0';
|
19 |
|
20 |
/**
|
21 |
* The minimally supported version of Gutenberg by the plugin.
|
22 |
*
|
23 |
* @var string
|
24 |
*/
|
25 |
+
const MINIMUM_SUPPORTED = '6.2.0';
|
26 |
|
27 |
/**
|
28 |
* Holds the current version.
|
admin/class-meta-table-accessible.php
CHANGED
@@ -11,11 +11,15 @@
|
|
11 |
class WPSEO_Meta_Table_Accessible {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const ACCESSIBLE = '0';
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var string
|
20 |
*/
|
21 |
const INACCESSBILE = '1';
|
11 |
class WPSEO_Meta_Table_Accessible {
|
12 |
|
13 |
/**
|
14 |
+
* Indicates that the table is accessible.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const ACCESSIBLE = '0';
|
19 |
|
20 |
/**
|
21 |
+
* Indicates that the table is inaccessible.
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
const INACCESSBILE = '1';
|
admin/class-my-yoast-route.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_MyYoast_Route implements WPSEO_WordPress_Integration {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const PAGE_IDENTIFIER = 'wpseo_myyoast';
|
11 |
class WPSEO_MyYoast_Route implements WPSEO_WordPress_Integration {
|
12 |
|
13 |
/**
|
14 |
+
* The identifier of the page in the My Yoast route.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const PAGE_IDENTIFIER = 'wpseo_myyoast';
|
admin/class-paper-presenter.php
CHANGED
@@ -35,17 +35,19 @@ class WPSEO_Paper_Presenter {
|
|
35 |
* WPSEO_presenter_paper constructor.
|
36 |
*
|
37 |
* @param string $title The title of the paper.
|
38 |
-
* @param string $view_file The path to the view file.
|
39 |
* @param array $settings Optional. Settings for the paper.
|
40 |
*/
|
41 |
-
public function __construct( $title, $view_file, array $settings = array() ) {
|
42 |
$defaults = array(
|
43 |
-
'paper_id'
|
44 |
-
'collapsible'
|
45 |
-
'expanded'
|
46 |
-
'help_text'
|
47 |
-
'title_after'
|
48 |
-
'
|
|
|
|
|
49 |
);
|
50 |
|
51 |
$this->settings = wp_parse_args( $settings, $defaults );
|
@@ -59,7 +61,17 @@ class WPSEO_Paper_Presenter {
|
|
59 |
* @return string The rendered paper.
|
60 |
*/
|
61 |
public function get_output() {
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
|
64 |
ob_start();
|
65 |
require WPSEO_PATH . 'admin/views/paper-collapsible.php';
|
@@ -79,6 +91,7 @@ class WPSEO_Paper_Presenter {
|
|
79 |
}
|
80 |
|
81 |
$view_variables = array(
|
|
|
82 |
'collapsible' => $this->settings['collapsible'],
|
83 |
'collapsible_config' => $this->collapsible_config(),
|
84 |
'title_after' => $this->settings['title_after'],
|
35 |
* WPSEO_presenter_paper constructor.
|
36 |
*
|
37 |
* @param string $title The title of the paper.
|
38 |
+
* @param string $view_file Optional. The path to the view file. Use the content setting if you do not wish to use a view file.
|
39 |
* @param array $settings Optional. Settings for the paper.
|
40 |
*/
|
41 |
+
public function __construct( $title, $view_file = null, array $settings = array() ) {
|
42 |
$defaults = array(
|
43 |
+
'paper_id' => null,
|
44 |
+
'collapsible' => false,
|
45 |
+
'expanded' => false,
|
46 |
+
'help_text' => '',
|
47 |
+
'title_after' => '',
|
48 |
+
'class' => '',
|
49 |
+
'content' => '',
|
50 |
+
'view_data' => array(),
|
51 |
);
|
52 |
|
53 |
$this->settings = wp_parse_args( $settings, $defaults );
|
61 |
* @return string The rendered paper.
|
62 |
*/
|
63 |
public function get_output() {
|
64 |
+
$view_variables = $this->get_view_variables();
|
65 |
+
|
66 |
+
extract( $view_variables, EXTR_SKIP );
|
67 |
+
|
68 |
+
$content = $this->settings['content'];
|
69 |
+
|
70 |
+
if ( $this->view_file !== null ) {
|
71 |
+
ob_start();
|
72 |
+
require $this->view_file;
|
73 |
+
$content = ob_get_clean();
|
74 |
+
}
|
75 |
|
76 |
ob_start();
|
77 |
require WPSEO_PATH . 'admin/views/paper-collapsible.php';
|
91 |
}
|
92 |
|
93 |
$view_variables = array(
|
94 |
+
'class' => $this->settings['class'],
|
95 |
'collapsible' => $this->settings['collapsible'],
|
96 |
'collapsible_config' => $this->collapsible_config(),
|
97 |
'title_after' => $this->settings['title_after'],
|
admin/class-social-admin.php
CHANGED
@@ -72,12 +72,11 @@ class WPSEO_Social_Admin extends WPSEO_Metabox {
|
|
72 |
/**
|
73 |
* Returns the metabox section for the social settings.
|
74 |
*
|
75 |
-
* @return
|
76 |
*/
|
77 |
public function get_meta_section() {
|
78 |
$tabs = array();
|
79 |
$social_meta_fields = WPSEO_Meta::get_meta_field_defs( 'social' );
|
80 |
-
$single = true;
|
81 |
|
82 |
$opengraph = WPSEO_Options::get( 'opengraph' );
|
83 |
$twitter = WPSEO_Options::get( 'twitter' );
|
@@ -89,32 +88,22 @@ class WPSEO_Social_Admin extends WPSEO_Metabox {
|
|
89 |
wp_nonce_field( 'yoast_free_metabox_social', 'yoast_free_metabox_social_nonce' );
|
90 |
|
91 |
if ( $opengraph === true ) {
|
92 |
-
$tabs[] = new
|
93 |
'facebook',
|
94 |
$this->get_social_tab_content( 'opengraph', $social_meta_fields ),
|
95 |
-
|
96 |
-
array(
|
97 |
-
'link_aria_label' => __( 'Facebook / Open Graph metadata', 'wordpress-seo' ),
|
98 |
-
'link_class' => 'yoast-tooltip yoast-tooltip-se',
|
99 |
-
'single' => $single,
|
100 |
-
)
|
101 |
);
|
102 |
}
|
103 |
|
104 |
if ( $twitter === true ) {
|
105 |
-
$tabs[] = new
|
106 |
'twitter',
|
107 |
$this->get_social_tab_content( 'twitter', $social_meta_fields ),
|
108 |
-
|
109 |
-
array(
|
110 |
-
'link_aria_label' => __( 'Twitter metadata', 'wordpress-seo' ),
|
111 |
-
'link_class' => 'yoast-tooltip yoast-tooltip-se',
|
112 |
-
'single' => $single,
|
113 |
-
)
|
114 |
);
|
115 |
}
|
116 |
|
117 |
-
return new
|
118 |
'social',
|
119 |
'<span class="dashicons dashicons-share"></span>' . __( 'Social', 'wordpress-seo' ),
|
120 |
$tabs
|
@@ -143,9 +132,29 @@ class WPSEO_Social_Admin extends WPSEO_Metabox {
|
|
143 |
$tab_content .= $this->do_meta_box( $meta_field_defs[ $field_name ], $field_name );
|
144 |
}
|
145 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
return $tab_content;
|
147 |
}
|
148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
/**
|
150 |
* Returns the Upgrade to Premium notice.
|
151 |
*
|
72 |
/**
|
73 |
* Returns the metabox section for the social settings.
|
74 |
*
|
75 |
+
* @return WPSEO_Metabox_Collapsibles_Sections
|
76 |
*/
|
77 |
public function get_meta_section() {
|
78 |
$tabs = array();
|
79 |
$social_meta_fields = WPSEO_Meta::get_meta_field_defs( 'social' );
|
|
|
80 |
|
81 |
$opengraph = WPSEO_Options::get( 'opengraph' );
|
82 |
$twitter = WPSEO_Options::get( 'twitter' );
|
88 |
wp_nonce_field( 'yoast_free_metabox_social', 'yoast_free_metabox_social_nonce' );
|
89 |
|
90 |
if ( $opengraph === true ) {
|
91 |
+
$tabs[] = new WPSEO_Metabox_Collapsible(
|
92 |
'facebook',
|
93 |
$this->get_social_tab_content( 'opengraph', $social_meta_fields ),
|
94 |
+
__( 'Facebook', 'wordpress-seo' )
|
|
|
|
|
|
|
|
|
|
|
95 |
);
|
96 |
}
|
97 |
|
98 |
if ( $twitter === true ) {
|
99 |
+
$tabs[] = new WPSEO_Metabox_Collapsible(
|
100 |
'twitter',
|
101 |
$this->get_social_tab_content( 'twitter', $social_meta_fields ),
|
102 |
+
__( 'Twitter', 'wordpress-seo' )
|
|
|
|
|
|
|
|
|
|
|
103 |
);
|
104 |
}
|
105 |
|
106 |
+
return new WPSEO_Metabox_Collapsibles_Sections(
|
107 |
'social',
|
108 |
'<span class="dashicons dashicons-share"></span>' . __( 'Social', 'wordpress-seo' ),
|
109 |
$tabs
|
132 |
$tab_content .= $this->do_meta_box( $meta_field_defs[ $field_name ], $field_name );
|
133 |
}
|
134 |
|
135 |
+
$features = new WPSEO_Features();
|
136 |
+
/**
|
137 |
+
* If premium hide the form to show the social preview instead, we still need the fields to be output because
|
138 |
+
* the values of the social preview are saved in the hidden field.
|
139 |
+
*/
|
140 |
+
if ( $features->is_premium() ) {
|
141 |
+
return $this->hide_form( $tab_content );
|
142 |
+
}
|
143 |
+
|
144 |
return $tab_content;
|
145 |
}
|
146 |
|
147 |
+
/**
|
148 |
+
* Hides the given output when rendered to HTML.
|
149 |
+
*
|
150 |
+
* @param string $tab_content The social tab content.
|
151 |
+
*
|
152 |
+
* @return string The content.
|
153 |
+
*/
|
154 |
+
public function hide_form( $tab_content ) {
|
155 |
+
return '<div class="hidden">' . $tab_content . '</div>';
|
156 |
+
}
|
157 |
+
|
158 |
/**
|
159 |
* Returns the Upgrade to Premium notice.
|
160 |
*
|
admin/class-yoast-dashboard-widget.php
CHANGED
@@ -18,6 +18,8 @@ class Yoast_Dashboard_Widget implements WPSEO_WordPress_Integration {
|
|
18 |
const CACHE_TRANSIENT_KEY = 'wpseo-dashboard-totals';
|
19 |
|
20 |
/**
|
|
|
|
|
21 |
* @var WPSEO_Admin_Asset_Manager
|
22 |
*/
|
23 |
protected $asset_manager;
|
18 |
const CACHE_TRANSIENT_KEY = 'wpseo-dashboard-totals';
|
19 |
|
20 |
/**
|
21 |
+
* Holds an instance of the admin asset manager.
|
22 |
+
*
|
23 |
* @var WPSEO_Admin_Asset_Manager
|
24 |
*/
|
25 |
protected $asset_manager;
|
admin/config-ui/class-configuration-page.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
-
*
|
10 |
*/
|
11 |
class WPSEO_Configuration_Page {
|
12 |
|
6 |
*/
|
7 |
|
8 |
/**
|
9 |
+
* Loads the Yoast configuration wizard.
|
10 |
*/
|
11 |
class WPSEO_Configuration_Page {
|
12 |
|
admin/config-ui/components/class-component-mailchimp-signup.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_Config_Component_Mailchimp_Signup implements WPSEO_Config_Component {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const META_NAME = 'wpseo-has-mailchimp-signup';
|
11 |
class WPSEO_Config_Component_Mailchimp_Signup implements WPSEO_Config_Component {
|
12 |
|
13 |
/**
|
14 |
+
* The name of the mailchimp signup meta key.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const META_NAME = 'wpseo-has-mailchimp-signup';
|
admin/config-ui/components/interface-component.php
CHANGED
@@ -34,6 +34,8 @@ interface WPSEO_Config_Component {
|
|
34 |
public function set_data( $data );
|
35 |
|
36 |
/**
|
|
|
|
|
37 |
* @return WPSEO_Config_Field
|
38 |
*/
|
39 |
public function get_field();
|
34 |
public function set_data( $data );
|
35 |
|
36 |
/**
|
37 |
+
* Get onboarding wizard component field.
|
38 |
+
*
|
39 |
* @return WPSEO_Config_Field
|
40 |
*/
|
41 |
public function get_field();
|
admin/endpoints/class-endpoint-file-size.php
CHANGED
@@ -11,16 +11,22 @@
|
|
11 |
class WPSEO_Endpoint_File_Size implements WPSEO_Endpoint {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const REST_NAMESPACE = 'yoast/v1';
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var string
|
20 |
*/
|
21 |
const ENDPOINT_SINGULAR = 'file_size';
|
22 |
|
23 |
/**
|
|
|
|
|
24 |
* @var string
|
25 |
*/
|
26 |
const CAPABILITY_RETRIEVE = 'manage_options';
|
11 |
class WPSEO_Endpoint_File_Size implements WPSEO_Endpoint {
|
12 |
|
13 |
/**
|
14 |
+
* The namespace of the REST route.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const REST_NAMESPACE = 'yoast/v1';
|
19 |
|
20 |
/**
|
21 |
+
* The route of the endpoint to retrieve the file size.
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
const ENDPOINT_SINGULAR = 'file_size';
|
26 |
|
27 |
/**
|
28 |
+
* The name of the capability needed to retrieve data using the endpoints.
|
29 |
+
*
|
30 |
* @var string
|
31 |
*/
|
32 |
const CAPABILITY_RETRIEVE = 'manage_options';
|
admin/endpoints/class-endpoint-indexable.php
CHANGED
@@ -11,21 +11,29 @@
|
|
11 |
class WPSEO_Endpoint_Indexable implements WPSEO_Endpoint, WPSEO_Endpoint_Storable {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const REST_NAMESPACE = 'yoast/v1';
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var string
|
20 |
*/
|
21 |
const ENDPOINT_SINGULAR = 'indexables/(?P<object_type>\w+)/(?P<object_id>\d+)';
|
22 |
|
23 |
/**
|
|
|
|
|
24 |
* @var string
|
25 |
*/
|
26 |
const CAPABILITY_RETRIEVE = 'manage_options';
|
27 |
|
28 |
/**
|
|
|
|
|
29 |
* @var string
|
30 |
*/
|
31 |
const CAPABILITY_STORE = 'manage_options';
|
11 |
class WPSEO_Endpoint_Indexable implements WPSEO_Endpoint, WPSEO_Endpoint_Storable {
|
12 |
|
13 |
/**
|
14 |
+
* The namespace of the REST route.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const REST_NAMESPACE = 'yoast/v1';
|
19 |
|
20 |
/**
|
21 |
+
* The route of the endpoint to retrieve or patch the indexable.
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
const ENDPOINT_SINGULAR = 'indexables/(?P<object_type>\w+)/(?P<object_id>\d+)';
|
26 |
|
27 |
/**
|
28 |
+
* The name of the capability needed to retrieve data using the endpoints.
|
29 |
+
*
|
30 |
* @var string
|
31 |
*/
|
32 |
const CAPABILITY_RETRIEVE = 'manage_options';
|
33 |
|
34 |
/**
|
35 |
+
* The name of the capability needed to store data using the endpoints.
|
36 |
+
*
|
37 |
* @var string
|
38 |
*/
|
39 |
const CAPABILITY_STORE = 'manage_options';
|
admin/endpoints/class-endpoint-ryte.php
CHANGED
@@ -11,16 +11,22 @@
|
|
11 |
class WPSEO_Endpoint_Ryte implements WPSEO_Endpoint {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const REST_NAMESPACE = 'yoast/v1';
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var string
|
20 |
*/
|
21 |
const ENDPOINT_RETRIEVE = 'ryte';
|
22 |
|
23 |
/**
|
|
|
|
|
24 |
* @var string
|
25 |
*/
|
26 |
const CAPABILITY_RETRIEVE = 'manage_options';
|
11 |
class WPSEO_Endpoint_Ryte implements WPSEO_Endpoint {
|
12 |
|
13 |
/**
|
14 |
+
* The namespace of the REST route.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const REST_NAMESPACE = 'yoast/v1';
|
19 |
|
20 |
/**
|
21 |
+
* The route of the ryte endpoint.
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
const ENDPOINT_RETRIEVE = 'ryte';
|
26 |
|
27 |
/**
|
28 |
+
* The name of the capability needed to retrieve data using the endpoints.
|
29 |
+
*
|
30 |
* @var string
|
31 |
*/
|
32 |
const CAPABILITY_RETRIEVE = 'manage_options';
|
admin/endpoints/class-endpoint-statistics.php
CHANGED
@@ -11,16 +11,22 @@
|
|
11 |
class WPSEO_Endpoint_Statistics implements WPSEO_Endpoint {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const REST_NAMESPACE = 'yoast/v1';
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var string
|
20 |
*/
|
21 |
const ENDPOINT_RETRIEVE = 'statistics';
|
22 |
|
23 |
/**
|
|
|
|
|
24 |
* @var string
|
25 |
*/
|
26 |
const CAPABILITY_RETRIEVE = 'read';
|
11 |
class WPSEO_Endpoint_Statistics implements WPSEO_Endpoint {
|
12 |
|
13 |
/**
|
14 |
+
* The namespace of the REST route.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const REST_NAMESPACE = 'yoast/v1';
|
19 |
|
20 |
/**
|
21 |
+
* The route of the statistics endpoint.
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
const ENDPOINT_RETRIEVE = 'statistics';
|
26 |
|
27 |
/**
|
28 |
+
* The name of the capability needed to retrieve data using the endpoints.
|
29 |
+
*
|
30 |
* @var string
|
31 |
*/
|
32 |
const CAPABILITY_RETRIEVE = 'read';
|
admin/filters/class-abstract-post-filter.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
abstract class WPSEO_Abstract_Post_Filter implements WPSEO_WordPress_Integration {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const FILTER_QUERY_ARG = 'yoast_filter';
|
11 |
abstract class WPSEO_Abstract_Post_Filter implements WPSEO_WordPress_Integration {
|
12 |
|
13 |
/**
|
14 |
+
* The filter's query argument.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const FILTER_QUERY_ARG = 'yoast_filter';
|
admin/formatter/class-post-metabox-formatter.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_Post_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var WP_Post
|
15 |
*/
|
16 |
private $post;
|
11 |
class WPSEO_Post_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface {
|
12 |
|
13 |
/**
|
14 |
+
* Holds the WordPress Post.
|
15 |
+
*
|
16 |
* @var WP_Post
|
17 |
*/
|
18 |
private $post;
|
admin/formatter/class-term-metabox-formatter.php
CHANGED
@@ -11,11 +11,15 @@
|
|
11 |
class WPSEO_Term_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var WP_Term|stdClass
|
15 |
*/
|
16 |
private $term;
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var stdClass
|
20 |
*/
|
21 |
private $taxonomy;
|
11 |
class WPSEO_Term_Metabox_Formatter implements WPSEO_Metabox_Formatter_Interface {
|
12 |
|
13 |
/**
|
14 |
+
* The term the metabox formatter is for.
|
15 |
+
*
|
16 |
* @var WP_Term|stdClass
|
17 |
*/
|
18 |
private $term;
|
19 |
|
20 |
/**
|
21 |
+
* The term's taxonomy.
|
22 |
+
*
|
23 |
* @var stdClass
|
24 |
*/
|
25 |
private $taxonomy;
|
admin/google_search_console/class-gsc-config.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_GSC_Config {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var array
|
15 |
*/
|
16 |
public static $gsc = array(
|
11 |
class WPSEO_GSC_Config {
|
12 |
|
13 |
/**
|
14 |
+
* The Google search console configuration.
|
15 |
+
*
|
16 |
* @var array
|
17 |
*/
|
18 |
public static $gsc = array(
|
admin/google_search_console/class-gsc-count.php
CHANGED
@@ -25,6 +25,8 @@ class WPSEO_GSC_Count {
|
|
25 |
const OPTION_CI_COUNTS = 'wpseo_gsc_issues_counts';
|
26 |
|
27 |
/**
|
|
|
|
|
28 |
* @var WPSEO_GSC_Service
|
29 |
*/
|
30 |
private $service;
|
25 |
const OPTION_CI_COUNTS = 'wpseo_gsc_issues_counts';
|
26 |
|
27 |
/**
|
28 |
+
* Service that fetches data from GSC API.
|
29 |
+
*
|
30 |
* @var WPSEO_GSC_Service
|
31 |
*/
|
32 |
private $service;
|
admin/google_search_console/class-gsc-issue.php
CHANGED
@@ -11,21 +11,29 @@
|
|
11 |
class WPSEO_GSC_Issue {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
private $url;
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var DateTime
|
20 |
*/
|
21 |
private $first_detected;
|
22 |
|
23 |
/**
|
|
|
|
|
24 |
* @var DateTime
|
25 |
*/
|
26 |
private $last_crawled;
|
27 |
|
28 |
/**
|
|
|
|
|
29 |
* @var string
|
30 |
*/
|
31 |
private $response_code;
|
11 |
class WPSEO_GSC_Issue {
|
12 |
|
13 |
/**
|
14 |
+
* The URL of the Google Search Console issue.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
private $url;
|
19 |
|
20 |
/**
|
21 |
+
* The time of the first discovery of the Google Search Console issue.
|
22 |
+
*
|
23 |
* @var DateTime
|
24 |
*/
|
25 |
private $first_detected;
|
26 |
|
27 |
/**
|
28 |
+
* The time of the last crawl of the URL.
|
29 |
+
*
|
30 |
* @var DateTime
|
31 |
*/
|
32 |
private $last_crawled;
|
33 |
|
34 |
/**
|
35 |
+
* The HTTP response code of the URL.
|
36 |
+
*
|
37 |
* @var string
|
38 |
*/
|
39 |
private $response_code;
|
admin/google_search_console/class-gsc-issues.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_GSC_Issues {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
private $option_name = '';
|
11 |
class WPSEO_GSC_Issues {
|
12 |
|
13 |
/**
|
14 |
+
* Holds the option name.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
private $option_name = '';
|
admin/google_search_console/class-gsc-marker.php
CHANGED
@@ -11,26 +11,36 @@
|
|
11 |
class WPSEO_GSC_Marker {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var WPSEO_GSC_Issues
|
15 |
*/
|
16 |
private $crawl_issues;
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var string
|
20 |
*/
|
21 |
private $url = '';
|
22 |
|
23 |
/**
|
|
|
|
|
24 |
* @var string
|
25 |
*/
|
26 |
private $platform;
|
27 |
|
28 |
/**
|
|
|
|
|
29 |
* @var string
|
30 |
*/
|
31 |
private $category;
|
32 |
|
33 |
/**
|
|
|
|
|
34 |
* @var string
|
35 |
*/
|
36 |
private $result;
|
11 |
class WPSEO_GSC_Marker {
|
12 |
|
13 |
/**
|
14 |
+
* Holds the craw issues instance.
|
15 |
+
*
|
16 |
* @var WPSEO_GSC_Issues
|
17 |
*/
|
18 |
private $crawl_issues;
|
19 |
|
20 |
/**
|
21 |
+
* Holds the URL.
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
private $url = '';
|
26 |
|
27 |
/**
|
28 |
+
* Holds the platform (desktop, mobile, feature phone).
|
29 |
+
*
|
30 |
* @var string
|
31 |
*/
|
32 |
private $platform;
|
33 |
|
34 |
/**
|
35 |
+
* Holds the category.
|
36 |
+
*
|
37 |
* @var string
|
38 |
*/
|
39 |
private $category;
|
40 |
|
41 |
/**
|
42 |
+
* Holds the result.
|
43 |
+
*
|
44 |
* @var string
|
45 |
*/
|
46 |
private $result;
|
admin/google_search_console/class-gsc-modal.php
CHANGED
@@ -11,16 +11,22 @@
|
|
11 |
class WPSEO_GSC_Modal {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
protected $view;
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var int
|
20 |
*/
|
21 |
protected $height;
|
22 |
|
23 |
/**
|
|
|
|
|
24 |
* @var array
|
25 |
*/
|
26 |
protected $view_vars;
|
11 |
class WPSEO_GSC_Modal {
|
12 |
|
13 |
/**
|
14 |
+
* Path to the modal view.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
protected $view;
|
19 |
|
20 |
/**
|
21 |
+
* The modal height.
|
22 |
+
*
|
23 |
* @var int
|
24 |
*/
|
25 |
protected $height;
|
26 |
|
27 |
/**
|
28 |
+
* Variables to be passed to the view.
|
29 |
+
*
|
30 |
* @var array
|
31 |
*/
|
32 |
protected $view_vars;
|
admin/google_search_console/class-gsc-platform-tabs.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_GSC_Platform_Tabs {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
private $current_tab;
|
11 |
class WPSEO_GSC_Platform_Tabs {
|
12 |
|
13 |
/**
|
14 |
+
* The current active tab.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
private $current_tab;
|
admin/google_search_console/class-gsc-service.php
CHANGED
@@ -11,11 +11,15 @@
|
|
11 |
class WPSEO_GSC_Service {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var Yoast_Api_Google_Client
|
15 |
*/
|
16 |
private $client;
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var string
|
20 |
*/
|
21 |
private $profile;
|
11 |
class WPSEO_GSC_Service {
|
12 |
|
13 |
/**
|
14 |
+
* Client to connect to the google API.
|
15 |
+
*
|
16 |
* @var Yoast_Api_Google_Client
|
17 |
*/
|
18 |
private $client;
|
19 |
|
20 |
/**
|
21 |
+
* The google search console profile.
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
private $profile;
|
admin/google_search_console/class-gsc-table.php
CHANGED
@@ -15,11 +15,15 @@ if ( ! class_exists( 'WP_List_Table' ) ) {
|
|
15 |
class WPSEO_GSC_Table extends WP_List_Table {
|
16 |
|
17 |
/**
|
|
|
|
|
18 |
* @var int
|
19 |
*/
|
20 |
const FREE_MODAL_HEIGHT = 140;
|
21 |
|
22 |
/**
|
|
|
|
|
23 |
* @var string
|
24 |
*/
|
25 |
private $search_string;
|
@@ -39,6 +43,8 @@ class WPSEO_GSC_Table extends WP_List_Table {
|
|
39 |
private $per_page = 50;
|
40 |
|
41 |
/**
|
|
|
|
|
42 |
* @var integer
|
43 |
*/
|
44 |
private $current_page = 1;
|
15 |
class WPSEO_GSC_Table extends WP_List_Table {
|
16 |
|
17 |
/**
|
18 |
+
* Modal height.
|
19 |
+
*
|
20 |
* @var int
|
21 |
*/
|
22 |
const FREE_MODAL_HEIGHT = 140;
|
23 |
|
24 |
/**
|
25 |
+
* The search phrase.
|
26 |
+
*
|
27 |
* @var string
|
28 |
*/
|
29 |
private $search_string;
|
43 |
private $per_page = 50;
|
44 |
|
45 |
/**
|
46 |
+
* Current page.
|
47 |
+
*
|
48 |
* @var integer
|
49 |
*/
|
50 |
private $current_page = 1;
|
admin/google_search_console/class-gsc.php
CHANGED
@@ -18,16 +18,22 @@ class WPSEO_GSC implements WPSEO_WordPress_Integration {
|
|
18 |
const OPTION_WPSEO_GSC = 'wpseo-gsc';
|
19 |
|
20 |
/**
|
|
|
|
|
21 |
* @var WPSEO_GSC_Service
|
22 |
*/
|
23 |
private $service;
|
24 |
|
25 |
/**
|
|
|
|
|
26 |
* @var WPSEO_GSC_Category_Filters
|
27 |
*/
|
28 |
protected $category_filter;
|
29 |
|
30 |
/**
|
|
|
|
|
31 |
* @var WPSEO_GSC_Issues
|
32 |
*/
|
33 |
protected $issue_fetch;
|
18 |
const OPTION_WPSEO_GSC = 'wpseo-gsc';
|
19 |
|
20 |
/**
|
21 |
+
* Holds the service instance.
|
22 |
+
*
|
23 |
* @var WPSEO_GSC_Service
|
24 |
*/
|
25 |
private $service;
|
26 |
|
27 |
/**
|
28 |
+
* Holds the category filter instance.
|
29 |
+
*
|
30 |
* @var WPSEO_GSC_Category_Filters
|
31 |
*/
|
32 |
protected $category_filter;
|
33 |
|
34 |
/**
|
35 |
+
* Holds the issues instance.
|
36 |
+
*
|
37 |
* @var WPSEO_GSC_Issues
|
38 |
*/
|
39 |
protected $issue_fetch;
|
admin/import/class-import-plugin.php
CHANGED
@@ -13,11 +13,15 @@
|
|
13 |
class WPSEO_Import_Plugin {
|
14 |
|
15 |
/**
|
|
|
|
|
16 |
* @var WPSEO_Import_Status
|
17 |
*/
|
18 |
public $status;
|
19 |
|
20 |
/**
|
|
|
|
|
21 |
* @var WPSEO_Plugin_Importer
|
22 |
*/
|
23 |
protected $importer;
|
13 |
class WPSEO_Import_Plugin {
|
14 |
|
15 |
/**
|
16 |
+
* Holds the status of and message about imports.
|
17 |
+
*
|
18 |
* @var WPSEO_Import_Status
|
19 |
*/
|
20 |
public $status;
|
21 |
|
22 |
/**
|
23 |
+
* Class with functionality to import meta data from other plugins.
|
24 |
+
*
|
25 |
* @var WPSEO_Plugin_Importer
|
26 |
*/
|
27 |
protected $importer;
|
admin/import/class-import-settings.php
CHANGED
@@ -20,11 +20,15 @@ class WPSEO_Import_Settings {
|
|
20 |
const NONCE_ACTION = 'wpseo-import-settings';
|
21 |
|
22 |
/**
|
|
|
|
|
23 |
* @var WPSEO_Import_Status
|
24 |
*/
|
25 |
public $status;
|
26 |
|
27 |
/**
|
|
|
|
|
28 |
* @var string
|
29 |
*/
|
30 |
private $old_wpseo_version;
|
20 |
const NONCE_ACTION = 'wpseo-import-settings';
|
21 |
|
22 |
/**
|
23 |
+
* Holds the import status instance.
|
24 |
+
*
|
25 |
* @var WPSEO_Import_Status
|
26 |
*/
|
27 |
public $status;
|
28 |
|
29 |
/**
|
30 |
+
* Holds the old WPSEO version.
|
31 |
+
*
|
32 |
* @var string
|
33 |
*/
|
34 |
private $old_wpseo_version;
|
admin/links/class-link-column-count.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_Link_Column_Count {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var array
|
15 |
*/
|
16 |
protected $count = array();
|
11 |
class WPSEO_Link_Column_Count {
|
12 |
|
13 |
/**
|
14 |
+
* The link counts for each post id on the current page.
|
15 |
+
*
|
16 |
* @var array
|
17 |
*/
|
18 |
protected $count = array();
|
admin/links/class-link-columns.php
CHANGED
@@ -25,6 +25,8 @@ class WPSEO_Link_Columns {
|
|
25 |
const COLUMN_LINKS = 'links';
|
26 |
|
27 |
/**
|
|
|
|
|
28 |
* @var WPSEO_Link_Column_Count
|
29 |
*/
|
30 |
protected $link_count;
|
@@ -214,7 +216,7 @@ class WPSEO_Link_Columns {
|
|
214 |
public function set_count_objects() {
|
215 |
global $wp_query;
|
216 |
|
217 |
-
$posts = $wp_query->get_posts();
|
218 |
$post_ids = array();
|
219 |
|
220 |
// Post lists return a list of objects.
|
25 |
const COLUMN_LINKS = 'links';
|
26 |
|
27 |
/**
|
28 |
+
* Holds the link column count instance.
|
29 |
+
*
|
30 |
* @var WPSEO_Link_Column_Count
|
31 |
*/
|
32 |
protected $link_count;
|
216 |
public function set_count_objects() {
|
217 |
global $wp_query;
|
218 |
|
219 |
+
$posts = empty( $wp_query->posts ) ? $wp_query->get_posts() : $wp_query->posts;
|
220 |
$post_ids = array();
|
221 |
|
222 |
// Post lists return a list of objects.
|
admin/links/class-link-compatibility-notifier.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_Link_Compatibility_Notifier {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const NOTIFICATION_ID = 'wpseo-links-compatibility';
|
11 |
class WPSEO_Link_Compatibility_Notifier {
|
12 |
|
13 |
/**
|
14 |
+
* Notification id.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const NOTIFICATION_ID = 'wpseo-links-compatibility';
|
admin/links/class-link-content-processor.php
CHANGED
@@ -12,11 +12,15 @@
|
|
12 |
class WPSEO_Link_Content_Processor {
|
13 |
|
14 |
/**
|
|
|
|
|
15 |
* @var WPSEO_Link_Storage
|
16 |
*/
|
17 |
protected $storage;
|
18 |
|
19 |
/**
|
|
|
|
|
20 |
* @var WPSEO_Meta_Storage
|
21 |
*/
|
22 |
private $count_storage;
|
12 |
class WPSEO_Link_Content_Processor {
|
13 |
|
14 |
/**
|
15 |
+
* Holds the link storage instance.
|
16 |
+
*
|
17 |
* @var WPSEO_Link_Storage
|
18 |
*/
|
19 |
protected $storage;
|
20 |
|
21 |
/**
|
22 |
+
* Holds the meta storage instance.
|
23 |
+
*
|
24 |
* @var WPSEO_Meta_Storage
|
25 |
*/
|
26 |
private $count_storage;
|
admin/links/class-link-extractor.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_Link_Extractor {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
protected $content;
|
11 |
class WPSEO_Link_Extractor {
|
12 |
|
13 |
/**
|
14 |
+
* The content to extract the links from.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
protected $content;
|
admin/links/class-link-factory.php
CHANGED
@@ -11,16 +11,22 @@
|
|
11 |
class WPSEO_Link_Factory {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var WPSEO_Link_Type_Classifier
|
15 |
*/
|
16 |
protected $classifier;
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var WPSEO_Link_Internal_Lookup
|
20 |
*/
|
21 |
protected $internal_lookup;
|
22 |
|
23 |
/**
|
|
|
|
|
24 |
* @var WPSEO_Link_Filter
|
25 |
*/
|
26 |
protected $filter;
|
11 |
class WPSEO_Link_Factory {
|
12 |
|
13 |
/**
|
14 |
+
* Represents the classifier for a link. Determines of a link is an outbound or internal one.
|
15 |
+
*
|
16 |
* @var WPSEO_Link_Type_Classifier
|
17 |
*/
|
18 |
protected $classifier;
|
19 |
|
20 |
/**
|
21 |
+
* Represents the internal link lookup. This class tries get the postid for a given internal link.
|
22 |
+
*
|
23 |
* @var WPSEO_Link_Internal_Lookup
|
24 |
*/
|
25 |
protected $internal_lookup;
|
26 |
|
27 |
/**
|
28 |
+
* Represents the filter for filtering links.
|
29 |
+
*
|
30 |
* @var WPSEO_Link_Filter
|
31 |
*/
|
32 |
protected $filter;
|
admin/links/class-link-filter.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_Link_Filter {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string|null
|
15 |
*/
|
16 |
protected $current_page_path;
|
11 |
class WPSEO_Link_Filter {
|
12 |
|
13 |
/**
|
14 |
+
* Path to the current page.
|
15 |
+
*
|
16 |
* @var string|null
|
17 |
*/
|
18 |
protected $current_page_path;
|
admin/links/class-link-installer.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_Link_Installer {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var WPSEO_Installable[]
|
15 |
*/
|
16 |
protected $installables = array();
|
11 |
class WPSEO_Link_Installer {
|
12 |
|
13 |
/**
|
14 |
+
* Installable objects.
|
15 |
+
*
|
16 |
* @var WPSEO_Installable[]
|
17 |
*/
|
18 |
protected $installables = array();
|
admin/links/class-link-notifier.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_Link_Notifier {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const NOTIFICATION_ID = 'wpseo-reindex-links';
|
11 |
class WPSEO_Link_Notifier {
|
12 |
|
13 |
/**
|
14 |
+
* The ID of the link indexing notification.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const NOTIFICATION_ID = 'wpseo-reindex-links';
|
admin/links/class-link-reindex-post-endpoint.php
CHANGED
@@ -11,21 +11,29 @@
|
|
11 |
class WPSEO_Link_Reindex_Post_Endpoint {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const REST_NAMESPACE = 'yoast/v1';
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var string
|
20 |
*/
|
21 |
const ENDPOINT_QUERY = 'reindex_posts';
|
22 |
|
23 |
/**
|
|
|
|
|
24 |
* @var string
|
25 |
*/
|
26 |
const CAPABILITY_RETRIEVE = 'edit_posts';
|
27 |
|
28 |
/**
|
|
|
|
|
29 |
* @var WPSEO_Link_Reindex_Post_Service
|
30 |
*/
|
31 |
protected $service;
|
11 |
class WPSEO_Link_Reindex_Post_Endpoint {
|
12 |
|
13 |
/**
|
14 |
+
* Holds the namespace of the rest route.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const REST_NAMESPACE = 'yoast/v1';
|
19 |
|
20 |
/**
|
21 |
+
* Holds the route of the endpoint to reindex the posts.
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
const ENDPOINT_QUERY = 'reindex_posts';
|
26 |
|
27 |
/**
|
28 |
+
* Holds the name of the capability needed to reindex the posts.
|
29 |
+
*
|
30 |
* @var string
|
31 |
*/
|
32 |
const CAPABILITY_RETRIEVE = 'edit_posts';
|
33 |
|
34 |
/**
|
35 |
+
* Holds the link reindex post service instance.
|
36 |
+
*
|
37 |
* @var WPSEO_Link_Reindex_Post_Service
|
38 |
*/
|
39 |
protected $service;
|
admin/links/class-link-storage.php
CHANGED
@@ -18,11 +18,15 @@ class WPSEO_Link_Storage implements WPSEO_Installable {
|
|
18 |
const TABLE_NAME = 'yoast_seo_links';
|
19 |
|
20 |
/**
|
|
|
|
|
21 |
* @var WPSEO_Database_Proxy
|
22 |
*/
|
23 |
protected $database_proxy;
|
24 |
|
25 |
/**
|
|
|
|
|
26 |
* @deprecated 7.4
|
27 |
*
|
28 |
* @var null|string
|
18 |
const TABLE_NAME = 'yoast_seo_links';
|
19 |
|
20 |
/**
|
21 |
+
* An instance of the database proxy class.
|
22 |
+
*
|
23 |
* @var WPSEO_Database_Proxy
|
24 |
*/
|
25 |
protected $database_proxy;
|
26 |
|
27 |
/**
|
28 |
+
* Holds the prefix of the database table.
|
29 |
+
*
|
30 |
* @deprecated 7.4
|
31 |
*
|
32 |
* @var null|string
|
admin/links/class-link-table-accessible-notifier.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_Link_Table_Accessible_Notifier {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const NOTIFICATION_ID = 'wpseo-links-table-not-accessible';
|
11 |
class WPSEO_Link_Table_Accessible_Notifier {
|
12 |
|
13 |
/**
|
14 |
+
* Notification id.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const NOTIFICATION_ID = 'wpseo-links-table-not-accessible';
|
admin/links/class-link-table-accessible.php
CHANGED
@@ -11,11 +11,15 @@
|
|
11 |
class WPSEO_Link_Table_Accessible {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const ACCESSIBLE = '0';
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var string
|
20 |
*/
|
21 |
const INACCESSBILE = '1';
|
11 |
class WPSEO_Link_Table_Accessible {
|
12 |
|
13 |
/**
|
14 |
+
* Constant used to determine whether the link table is accessible.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const ACCESSIBLE = '0';
|
19 |
|
20 |
/**
|
21 |
+
* Constant used to determine whether the link table is inaccessible.
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
const INACCESSBILE = '1';
|
admin/links/class-link-type-classifier.php
CHANGED
@@ -11,11 +11,15 @@
|
|
11 |
class WPSEO_Link_Type_Classifier {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
protected $base_host = '';
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var string
|
20 |
*/
|
21 |
protected $base_path = '';
|
11 |
class WPSEO_Link_Type_Classifier {
|
12 |
|
13 |
/**
|
14 |
+
* Host of the URL.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
protected $base_host = '';
|
19 |
|
20 |
/**
|
21 |
+
* Path of the URL.
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
protected $base_path = '';
|
admin/links/class-link-watcher.php
CHANGED
@@ -11,6 +11,8 @@
|
|
11 |
class WPSEO_Link_Watcher {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var WPSEO_Link_Content_Processor
|
15 |
*/
|
16 |
protected $content_processor;
|
11 |
class WPSEO_Link_Watcher {
|
12 |
|
13 |
/**
|
14 |
+
* Represents the content processor. It will extract links from the content and saves them for the given post id.
|
15 |
+
*
|
16 |
* @var WPSEO_Link_Content_Processor
|
17 |
*/
|
18 |
protected $content_processor;
|
admin/links/class-link.php
CHANGED
@@ -11,26 +11,36 @@
|
|
11 |
class WPSEO_Link {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
const TYPE_EXTERNAL = 'external';
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var string
|
20 |
*/
|
21 |
const TYPE_INTERNAL = 'internal';
|
22 |
|
23 |
/**
|
|
|
|
|
24 |
* @var string
|
25 |
*/
|
26 |
protected $url;
|
27 |
|
28 |
/**
|
|
|
|
|
29 |
* @var int
|
30 |
*/
|
31 |
protected $target_post_id;
|
32 |
|
33 |
/**
|
|
|
|
|
34 |
* @var string
|
35 |
*/
|
36 |
protected $type;
|
11 |
class WPSEO_Link {
|
12 |
|
13 |
/**
|
14 |
+
* Indicates that the link is external.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
const TYPE_EXTERNAL = 'external';
|
19 |
|
20 |
/**
|
21 |
+
* Indicates that the link is internal.
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
const TYPE_INTERNAL = 'internal';
|
26 |
|
27 |
/**
|
28 |
+
* Holds the url.
|
29 |
+
*
|
30 |
* @var string
|
31 |
*/
|
32 |
protected $url;
|
33 |
|
34 |
/**
|
35 |
+
* Holds the post ID of the target.
|
36 |
+
*
|
37 |
* @var int
|
38 |
*/
|
39 |
protected $target_post_id;
|
40 |
|
41 |
/**
|
42 |
+
* Holds the link type.
|
43 |
+
*
|
44 |
* @var string
|
45 |
*/
|
46 |
protected $type;
|
admin/menu/class-replacevar-editor.php
CHANGED
@@ -92,6 +92,8 @@ class WPSEO_Replacevar_Editor {
|
|
92 |
}
|
93 |
|
94 |
/**
|
|
|
|
|
95 |
* @param array $arguments The arguments to validate.
|
96 |
*
|
97 |
* @throws InvalidArgumentException Thrown when not all required arguments are present.
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
+
* Validates the replacement variable editor arguments.
|
96 |
+
*
|
97 |
* @param array $arguments The arguments to validate.
|
98 |
*
|
99 |
* @throws InvalidArgumentException Thrown when not all required arguments are present.
|
admin/metabox/class-abstract-sectioned-metabox-tab.php
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Admin
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Base class for metabox that consist of multiple sections.
|
10 |
+
*/
|
11 |
+
abstract class WPSEO_Abstract_Metabox_Tab_With_Sections implements WPSEO_Metabox_Section {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Holds the name of the tab.
|
15 |
+
*
|
16 |
+
* @var string
|
17 |
+
*/
|
18 |
+
public $name;
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Holds the HTML of the tab header.
|
22 |
+
*
|
23 |
+
* @var string
|
24 |
+
*/
|
25 |
+
protected $link_content;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Holds the name of the tab header.
|
29 |
+
*
|
30 |
+
* @var string
|
31 |
+
*/
|
32 |
+
protected $link_title;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Holds the classname of the tab header.
|
36 |
+
*
|
37 |
+
* @var string
|
38 |
+
*/
|
39 |
+
protected $link_class;
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Holds the aria label of the tab header.
|
43 |
+
*
|
44 |
+
* @var string
|
45 |
+
*/
|
46 |
+
protected $link_aria_label;
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Constructor.
|
50 |
+
*
|
51 |
+
* @param string $name The name of the section, used as an identifier in the html.
|
52 |
+
* Can only contain URL safe characters.
|
53 |
+
* @param string $link_content The text content of the section link.
|
54 |
+
* @param array $options Optional link attributes.
|
55 |
+
*/
|
56 |
+
public function __construct( $name, $link_content, array $options = array() ) {
|
57 |
+
$default_options = array(
|
58 |
+
'link_title' => '',
|
59 |
+
'link_class' => '',
|
60 |
+
'link_aria_label' => '',
|
61 |
+
);
|
62 |
+
|
63 |
+
$options = array_merge( $default_options, $options );
|
64 |
+
|
65 |
+
$this->name = $name;
|
66 |
+
|
67 |
+
$this->link_content = $link_content;
|
68 |
+
$this->link_title = $options['link_title'];
|
69 |
+
$this->link_class = $options['link_class'];
|
70 |
+
$this->link_aria_label = $options['link_aria_label'];
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Outputs the section link if any section has been added.
|
75 |
+
*/
|
76 |
+
public function display_link() {
|
77 |
+
if ( $this->has_sections() ) {
|
78 |
+
printf(
|
79 |
+
'<li role="presentation"><a role="tab" href="#wpseo-meta-section-%1$s" id="wpseo-meta-tab-%1$s" aria-controls="wpseo-meta-section-%1$s" class="wpseo-meta-section-link %2$s"%3$s%4$s>%5$s</a></li>',
|
80 |
+
esc_attr( $this->name ),
|
81 |
+
esc_attr( $this->link_class ),
|
82 |
+
( '' !== $this->link_title ) ? ' title="' . esc_attr( $this->link_title ) . '"' : '',
|
83 |
+
( '' !== $this->link_aria_label ) ? ' aria-label="' . esc_attr( $this->link_aria_label ) . '"' : '',
|
84 |
+
$this->link_content
|
85 |
+
);
|
86 |
+
}
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Checks whether the tab has any sections.
|
91 |
+
*
|
92 |
+
* @return bool Whether the tab has any sections
|
93 |
+
*/
|
94 |
+
abstract protected function has_sections();
|
95 |
+
}
|
admin/metabox/class-metabox-addon-section.php
CHANGED
@@ -33,7 +33,7 @@ class WPSEO_Metabox_Addon_Tab_Section extends WPSEO_Metabox_Tab_Section {
|
|
33 |
*
|
34 |
* @return bool
|
35 |
*/
|
36 |
-
protected function
|
37 |
return true;
|
38 |
}
|
39 |
}
|
33 |
*
|
34 |
* @return bool
|
35 |
*/
|
36 |
+
protected function has_sections() {
|
37 |
return true;
|
38 |
}
|
39 |
}
|
admin/metabox/class-metabox-collapsible.php
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Admin
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Generates the HTML for a metabox tab.
|
10 |
+
*/
|
11 |
+
class WPSEO_Metabox_Collapsible implements WPSEO_Metabox_Tab {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* The collapsible's unique identifier.
|
15 |
+
*
|
16 |
+
* @var string
|
17 |
+
*/
|
18 |
+
private $name;
|
19 |
+
|
20 |
+
/**
|
21 |
+
* The content to be displayed inside the collapsible.
|
22 |
+
*
|
23 |
+
* @var string
|
24 |
+
*/
|
25 |
+
private $content;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* The label.
|
29 |
+
*
|
30 |
+
* @var string
|
31 |
+
*/
|
32 |
+
private $link_content;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Constructor.
|
36 |
+
*
|
37 |
+
* @param string $name The name of the tab, used as an identifier in the html.
|
38 |
+
* @param string $content The tab content.
|
39 |
+
* @param string $link_content The text content of the tab link.
|
40 |
+
*/
|
41 |
+
public function __construct( $name, $content, $link_content ) {
|
42 |
+
$this->name = $name;
|
43 |
+
$this->content = $content;
|
44 |
+
$this->link_content = $link_content;
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Returns the html for the tab link.
|
49 |
+
*
|
50 |
+
* @return string
|
51 |
+
*/
|
52 |
+
public function link() {
|
53 |
+
return $this->link_content;
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Returns the html for the tab content.
|
58 |
+
*
|
59 |
+
* @return string
|
60 |
+
*/
|
61 |
+
public function content() {
|
62 |
+
$collapsible_paper = new WPSEO_Paper_Presenter(
|
63 |
+
$this->link(),
|
64 |
+
null,
|
65 |
+
array(
|
66 |
+
'content' => $this->content,
|
67 |
+
'collapsible' => true,
|
68 |
+
'class' => 'metabox wpseo-form wpseo-collapsible-container',
|
69 |
+
'paper_id' => 'collapsible-' . $this->name,
|
70 |
+
)
|
71 |
+
);
|
72 |
+
|
73 |
+
return $collapsible_paper->get_output();
|
74 |
+
}
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Returns the collapsible's unique identifier.
|
78 |
+
*
|
79 |
+
* @return string
|
80 |
+
*/
|
81 |
+
public function get_name() {
|
82 |
+
return $this->name;
|
83 |
+
}
|
84 |
+
}
|
admin/metabox/class-metabox-collapsibles-section.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPSEO plugin file.
|
4 |
+
*
|
5 |
+
* @package WPSEO\Admin
|
6 |
+
*/
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Generates and displays a metabox tab that consists of collapsible sections.
|
10 |
+
*/
|
11 |
+
class WPSEO_Metabox_Collapsibles_Sections extends WPSEO_Abstract_Metabox_Tab_With_Sections {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Holds the tab's collapsibles.
|
15 |
+
*
|
16 |
+
* @var WPSEO_Metabox_Collapsible[]
|
17 |
+
*/
|
18 |
+
private $collapsibles = array();
|
19 |
+
|
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.
|
26 |
+
* @param array $collapsibles The metabox collapsibles (`WPSEO_Metabox_Collapsible[]`) to be included in the section.
|
27 |
+
* @param array $options Optional link attributes.
|
28 |
+
*/
|
29 |
+
public function __construct( $name, $link_content, array $collapsibles = array(), array $options = array() ) {
|
30 |
+
parent::__construct( $name, $link_content, $options );
|
31 |
+
|
32 |
+
$this->collapsibles = $collapsibles;
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Outputs the section content if any tab has been added.
|
37 |
+
*/
|
38 |
+
public function display_content() {
|
39 |
+
if ( $this->has_sections() ) {
|
40 |
+
printf( '<div id="%1$s" class="wpseo-meta-section">', esc_attr( 'wpseo-meta-section-' . $this->name ) );
|
41 |
+
echo '<div class="wpseo_content_wrapper">';
|
42 |
+
|
43 |
+
foreach ( $this->collapsibles as $collapsible ) {
|
44 |
+
echo $collapsible->content();
|
45 |
+
}
|
46 |
+
|
47 |
+
echo '</div></div>';
|
48 |
+
}
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Checks whether the tab has any sections.
|
53 |
+
*
|
54 |
+
* @return bool Whether the tab has any sections
|
55 |
+
*/
|
56 |
+
protected function has_sections() {
|
57 |
+
return ! empty( $this->collapsibles );
|
58 |
+
}
|
59 |
+
}
|
admin/metabox/class-metabox-editor.php
CHANGED
@@ -29,7 +29,6 @@ class WPSEO_Metabox_Editor {
|
|
29 |
public function add_css_inside_editor( $css_files ) {
|
30 |
$asset_manager = new WPSEO_Admin_Asset_Manager();
|
31 |
$styles = $asset_manager->special_styles();
|
32 |
-
/** @var WPSEO_Admin_Asset $inside_editor */
|
33 |
$inside_editor = $styles['inside-editor'];
|
34 |
|
35 |
$asset_location = new WPSEO_Admin_Asset_SEO_Location( WPSEO_FILE );
|
29 |
public function add_css_inside_editor( $css_files ) {
|
30 |
$asset_manager = new WPSEO_Admin_Asset_Manager();
|
31 |
$styles = $asset_manager->special_styles();
|
|
|
32 |
$inside_editor = $styles['inside-editor'];
|
33 |
|
34 |
$asset_location = new WPSEO_Admin_Asset_SEO_Location( WPSEO_FILE );
|
admin/metabox/class-metabox-form-tab.php
CHANGED
@@ -11,41 +11,57 @@
|
|
11 |
class WPSEO_Metabox_Form_Tab implements WPSEO_Metabox_Tab {
|
12 |
|
13 |
/**
|
|
|
|
|
14 |
* @var string
|
15 |
*/
|
16 |
private $name;
|
17 |
|
18 |
/**
|
|
|
|
|
19 |
* @var string
|
20 |
*/
|
21 |
private $content;
|
22 |
|
23 |
/**
|
|
|
|
|
24 |
* @var string
|
25 |
*/
|
26 |
private $link_content;
|
27 |
|
28 |
/**
|
|
|
|
|
29 |
* @var string
|
30 |
*/
|
31 |
private $tab_class;
|
32 |
|
33 |
/**
|
|
|
|
|
34 |
* @var string
|
35 |
*/
|
36 |
private $link_class;
|
37 |
|
38 |
/**
|
|
|
|
|
39 |
* @var string
|
40 |
*/
|
41 |
private $link_title;
|
42 |
|
43 |
/**
|
|
|
|
|
44 |
* @var string
|
45 |
*/
|
46 |
private $link_aria_label;
|
47 |
|
48 |
/**
|
|
|
|
|
49 |
* @var boolean
|
50 |
*/
|
51 |
private $single;
|
11 |
class WPSEO_Metabox_Form_Tab implements WPSEO_Metabox_Tab {
|
12 |
|
13 |
/**
|
14 |
+
* The tab identifier.
|
15 |
+
*
|
16 |
* @var string
|
17 |
*/
|
18 |
private $name;
|
19 |
|
20 |
/**
|
21 |
+
* The tab content.
|
22 |
+
*
|
23 |
* @var string
|
24 |
*/
|
25 |
private $content;
|
26 |
|
27 |
/**
|
28 |
+
* The tab link content.
|
29 |
+
*
|
30 |
* @var string
|
31 |
*/
|
32 |
private $link_content;
|
33 |
|
34 |
/**
|
35 |
+
* Additional tab content class.
|
36 |
+
*
|
37 |
* @var string
|
38 |
*/
|
39 |
private $tab_class;
|
40 |
|
41 |
/**
|
42 |
+
* Additional tab link class.
|
43 |
+
*
|
44 |
* @var string
|
45 |
*/
|
46 |
private $link_class;
|
47 |
|
48 |
/**
|
49 |
+
* Title attribute on the link span.
|
50 |
+
*
|
51 |
* @var string
|
52 |
*/
|
53 |
private $link_title;
|
54 |
|
55 |
/**
|
56 |
+
* Arial label attribute on the link span.
|
57 |
+
*
|
58 |
* @var string
|
59 |
*/
|
60 |
private $link_aria_label;
|
61 |
|
62 |
/**
|
63 |
+
* Does it contain a single tab.
|
64 |
+
*
|
65 |
* @var boolean
|
66 |
*/
|
67 |
private $single;
|
admin/metabox/class-metabox-section-react.php
CHANGED
@@ -45,6 +45,13 @@ class WPSEO_Metabox_Section_React implements WPSEO_Metabox_Section {
|
|
45 |
*/
|
46 |
private $link_aria_label;
|
47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
/**
|
49 |
* Constructor.
|
50 |
*
|
@@ -61,6 +68,7 @@ class WPSEO_Metabox_Section_React implements WPSEO_Metabox_Section {
|
|
61 |
$default_options = array(
|
62 |
'link_class' => '',
|
63 |
'link_aria_label' => '',
|
|
|
64 |
);
|
65 |
|
66 |
$options = wp_parse_args( $options, $default_options );
|