PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 28.3
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v28.3
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 19.1 All 128 releases
wordpress-seo / admin / class-yoast-columns.php

class-yoast-columns.php in Yoast SEO – Advanced SEO with real-time guidance and built-in AI 28.3, at admin/class-yoast-columns.php

118 lines 3.5 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 * Represents the yoast columns.
10 */
11 class WPSEO_Yoast_Columns implements WPSEO_WordPress_Integration {
12
13 /**
14 * Registers all hooks to WordPress.
15 *
16 * @return void
17 */
18 public function register_hooks() {
19 add_action( 'load-edit.php', [ $this, 'add_help_tab' ] );
20 }
21
22 /**
23 * Adds the help tab to the help center for current screen.
24 *
25 * @return void
26 */
27 public function add_help_tab() {
28 $link_columns_present = $this->display_links();
29 $meta_columns_present = $this->display_meta_columns();
30 if ( ! ( $link_columns_present || $meta_columns_present ) ) {
31 return;
32 }
33
34 $help_tab_content = sprintf(
35 /* translators: %1$s: Yoast SEO */
36 __( '%1$s adds several columns to this page.', 'wordpress-seo' ),
37 'Yoast SEO',
38 );
39
40 if ( $meta_columns_present ) {
41 $help_tab_content .= ' ' . sprintf(
42 /* translators: %1$s: Link to article about content analysis, %2$s: Anchor closing */
43 __( 'We\'ve written an article about %1$show to use the SEO score and Readability score%2$s.', 'wordpress-seo' ),
44 '<a href="' . WPSEO_Shortlinker::get( 'https://yoa.st/16p' ) . '">',
45 '</a>',
46 );
47 }
48
49 if ( $link_columns_present ) {
50 $help_tab_content .= ' ' . sprintf(
51 /* translators: %1$s: Link to article about text links, %2$s: Anchor closing tag, %3$s: Emphasis open tag, %4$s: Emphasis close tag */
52 __( 'The links columns show the number of articles on this site linking %3$sto%4$s this article and the number of URLs linked %3$sfrom%4$s this article. Learn more about %1$show to use these features to improve your internal linking%2$s, which greatly enhances your SEO.', 'wordpress-seo' ),
53 '<a href="' . WPSEO_Shortlinker::get( 'https://yoa.st/16p' ) . '">',
54 '</a>',
55 '<em>',
56 '</em>',
57 );
58 }
59
60 $screen = get_current_screen();
61 $screen->add_help_tab(
62 [
63 /* translators: %s expands to Yoast */
64 'title' => sprintf( __( '%s Columns', 'wordpress-seo' ), 'Yoast' ),
65 'id' => 'yst-columns',
66 'content' => '<p>' . $help_tab_content . '</p>',
67 'priority' => 15,
68 ],
69 );
70 }
71
72 /**
73 * Retrieves the post type from the $_GET variable.
74 *
75 * @return string The current post type.
76 */
77 private function get_current_post_type() {
78 // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reason: We are not processing form information.
79 if ( isset( $_GET['post_type'] ) && is_string( $_GET['post_type'] ) ) {
80 // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reason: We are not processing form information.
81 return sanitize_text_field( wp_unslash( $_GET['post_type'] ) );
82 }
83 return '';
84 }
85
86 /**
87 * Whether we are showing link columns on this overview page.
88 * This depends on the post being accessible or not.
89 *
90 * @return bool Whether the linking columns are shown
91 */
92 private function display_links() {
93 $current_post_type = $this->get_current_post_type();
94
95 if ( empty( $current_post_type ) ) {
96 return false;
97 }
98
99 return WPSEO_Post_Type::is_post_type_accessible( $current_post_type );
100 }
101
102 /**
103 * Wraps the WPSEO_Metabox check to determine whether the metabox should be displayed either by
104 * choice of the admin or because the post type is not a public post type.
105 *
106 * @return bool Whether the meta box (and associated columns etc) should be hidden.
107 */
108 private function display_meta_columns() {
109 $current_post_type = $this->get_current_post_type();
110
111 if ( empty( $current_post_type ) ) {
112 return false;
113 }
114
115 return WPSEO_Utils::is_metabox_active( $current_post_type, 'post_type' );
116 }
117 }
118