PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / trunk
Yoast SEO – Advanced SEO with real-time guidance and built-in AI vtrunk
28.5 28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 All 129 releases
wordpress-seo / admin / class-expose-shortlinks.php

class-expose-shortlinks.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI trunk, at admin/class-expose-shortlinks.php

131 lines 7.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * WPSEO plugin file.
4 *
5 * @package WPSEO\Admin
6 */
7
8 /**
9 * Exposes shortlinks in a global, so that we can pass them to our Javascript components.
10 */
11 class WPSEO_Expose_Shortlinks implements WPSEO_WordPress_Integration {
12
13 /**
14 * Array containing the keys and shortlinks.
15 *
16 * @var array<string, string>
17 */
18 private $shortlinks = [
19 'shortlinks.advanced.allow_search_engines' => 'https://yoa.st/allow-search-engines',
20 'shortlinks.advanced.follow_links' => 'https://yoa.st/follow-links',
21 'shortlinks.advanced.meta_robots' => 'https://yoa.st/meta-robots-advanced',
22 'shortlinks.advanced.breadcrumbs_title' => 'https://yoa.st/breadcrumbs-title',
23 'shortlinks.metabox.schema.explanation' => 'https://yoa.st/400',
24 'shortlinks.metabox.schema.page_type' => 'https://yoa.st/402',
25 'shortlinks.sidebar.schema.explanation' => 'https://yoa.st/401',
26 'shortlinks.sidebar.schema.page_type' => 'https://yoa.st/403',
27 'shortlinks.focus_keyword_info' => 'https://yoa.st/focus-keyword',
28 'shortlinks.nofollow_sponsored' => 'https://yoa.st/nofollow-sponsored',
29 'shortlinks.snippet_preview_info' => 'https://yoa.st/snippet-preview',
30 'shortlinks.cornerstone_content_info' => 'https://yoa.st/1i9',
31 'shortlinks.upsell.social_preview.social' => 'https://yoa.st/social-preview-facebook',
32 'shortlinks.upsell.social_preview.x' => 'https://yoa.st/social-preview-twitter',
33 'shortlinks.upsell.sidebar.news' => 'https://yoa.st/get-news-sidebar',
34 'shortlinks.upsell.sidebar.premium_seo_analysis_button' => 'https://yoa.st/premium-seo-analysis-sidebar',
35 'shortlinks.upsell.sidebar.additional_link' => 'https://yoa.st/textlink-keywords-sidebar',
36 'shortlinks.upsell.sidebar.additional_button' => 'https://yoa.st/add-keywords-sidebar',
37 'shortlinks.upsell.sidebar.word_complexity' => 'https://yoa.st/word-complexity-sidebar',
38 'shortlinks.upsell.sidebar.internal_linking_suggestions' => 'https://yoa.st/internal-linking-suggestions-sidebar',
39 'shortlinks.upsell.sidebar.highlighting_seo_analysis' => 'https://yoa.st/highlighting-seo-analysis',
40 'shortlinks.upsell.sidebar.highlighting_readability_analysis' => 'https://yoa.st/highlighting-readability-analysis',
41 'shortlinks.upsell.sidebar.highlighting_inclusive_analysis' => 'https://yoa.st/highlighting-inclusive-analysis',
42 'shortlinks.upsell.sidebar.content_blocks' => 'https://yoa.st/content-blocks-sidebar',
43 'shortlinks.upsell.metabox.news' => 'https://yoa.st/get-news-metabox',
44 'shortlinks.upsell.metabox.go_premium' => 'https://yoa.st/pe-premium-page',
45 'shortlinks.upsell.metabox.premium_seo_analysis_button' => 'https://yoa.st/premium-seo-analysis-metabox',
46 'shortlinks.upsell.metabox.additional_link' => 'https://yoa.st/textlink-keywords-metabox',
47 'shortlinks.upsell.metabox.additional_button' => 'https://yoa.st/add-keywords-metabox',
48 'shortlinks.upsell.metabox.word_complexity' => 'https://yoa.st/word-complexity-metabox',
49 'shortlinks.upsell.metabox.internal_linking_suggestions' => 'https://yoa.st/internal-linking-suggestions-metabox',
50 'shortlinks.upsell.metabox.content_blocks' => 'https://yoa.st/content-blocks-metabox',
51 'shortlinks.upsell.gsc.create_redirect_button' => 'https://yoa.st/redirects',
52 'shortlinks.readability_analysis_info' => 'https://yoa.st/readability-analysis',
53 'shortlinks.inclusive_language_analysis_info' => 'https://yoa.st/inclusive-language-analysis',
54 'shortlinks.social_previews_info' => 'https://yoa.st/social-preview-admin-bar',
55 'shortlinks.activate_premium_info' => 'https://yoa.st/activate-subscription',
56 'shortlinks.wincher.seo_performance' => 'https://yoa.st/wincher-integration',
57 'shortlinks-insights-estimated_reading_time' => 'https://yoa.st/4fd',
58 'shortlinks-insights-flesch_reading_ease' => 'https://yoa.st/34r',
59 'shortlinks-insights-flesch_reading_ease_sidebar' => 'https://yoa.st/4mf',
60 'shortlinks-insights-flesch_reading_ease_metabox' => 'https://yoa.st/4mg',
61 'shortlinks-insights-flesch_reading_ease_article' => 'https://yoa.st/34s',
62 'shortlinks-insights-keyword_research_link' => 'https://yoa.st/keyword-research-metabox',
63 'shortlinks-insights-upsell-sidebar-prominent_words' => 'https://yoa.st/prominent-words-upsell-sidebar',
64 'shortlinks-insights-upsell-metabox-prominent_words' => 'https://yoa.st/prominent-words-upsell-metabox',
65 'shortlinks-insights-upsell-elementor-prominent_words' => 'https://yoa.st/prominent-words-upsell-elementor',
66 'shortlinks-insights-word_count' => 'https://yoa.st/word-count',
67 'shortlinks-insights-upsell-sidebar-text_formality' => 'https://yoa.st/formality-upsell-sidebar',
68 'shortlinks-insights-upsell-metabox-text_formality' => 'https://yoa.st/formality-upsell-metabox',
69 'shortlinks-insights-upsell-elementor-text_formality' => 'https://yoa.st/formality-upsell-elementor',
70 'shortlinks-insights-text_formality_info_free' => 'https://yoa.st/formality-free',
71 'shortlinks-insights-text_formality_info_premium' => 'https://yoa.st/formality',
72 ];
73
74 /**
75 * Registers all hooks to WordPress.
76 *
77 * @return void
78 */
79 public function register_hooks() {
80 add_filter( 'wpseo_admin_l10n', [ $this, 'expose_shortlinks' ] );
81 }
82
83 /**
84 * Adds shortlinks to the passed array.
85 *
86 * @param array<string, string|array<string, string>> $input The array to add shortlinks to.
87 *
88 * @return array<string, string|array<string, string>> The passed array with the additional shortlinks.
89 */
90 public function expose_shortlinks( $input ) {
91 foreach ( $this->get_shortlinks() as $key => $shortlink ) {
92 $input[ $key ] = WPSEO_Shortlinker::get( $shortlink );
93 }
94
95 $input['default_query_params'] = WPSEO_Shortlinker::get_query_params();
96
97 return $input;
98 }
99
100 /**
101 * Retrieves the shortlinks.
102 *
103 * @return array<string, string> The shortlinks.
104 */
105 private function get_shortlinks() {
106 if ( ! $this->is_term_edit() ) {
107 return $this->shortlinks;
108 }
109
110 $shortlinks = $this->shortlinks;
111
112 $shortlinks['shortlinks.upsell.metabox.additional_link'] = 'https://yoa.st/textlink-keywords-metabox-term';
113 $shortlinks['shortlinks.upsell.metabox.additional_button'] = 'https://yoa.st/add-keywords-metabox-term';
114 $shortlinks['shortlinks.upsell.metabox.word_complexity'] = 'https://yoa.st/word-complexity-metabox-term';
115 $shortlinks['shortlinks.upsell.metabox.internal_linking_suggestions'] = 'https://yoa.st/internal-linking-suggestions-metabox-term';
116
117 return $shortlinks;
118 }
119
120 /**
121 * Checks if the current page is a term edit page.
122 *
123 * @return bool True when page is term edit.
124 */
125 private function is_term_edit() {
126 global $pagenow;
127
128 return WPSEO_Taxonomy::is_term_edit( $pagenow );
129 }
130 }
131