PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.0-beta
Jetpack – WP Security, Backup, Speed, & Growth v16.0-beta
16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / modules / seo-tools / class-jetpack-seo-utils.php
jetpack / modules / seo-tools Last commit date
class-jetpack-seo-admin-columns.php 1 week ago class-jetpack-seo-posts.php 1 week ago class-jetpack-seo-titles.php 3 years ago class-jetpack-seo-utils.php 7 months ago class-jetpack-seo.php 1 month ago
class-jetpack-seo-utils.php
149 lines
1 <?php
2 /**
3 * Class containing utility static methods that other SEO tools are relying on.
4 *
5 * @package automattic/jetpack
6 */
7
8 /**
9 * Class containing utility static methods that other SEO tools are relying on.
10 */
11 class Jetpack_SEO_Utils {
12 /**
13 * Site option name used to store front page meta description.
14 */
15 const FRONT_PAGE_META_OPTION = 'advanced_seo_front_page_description';
16
17 /**
18 * The LEGACY_META_OPTION is used to support legacy usage on WPcom simple sites (free or paid).
19 * For WPorg JP sites, the JP seo-tools features were made free for all sites (free or paid).
20 */
21 const LEGACY_META_OPTION = 'seo_meta_description';
22
23 /**
24 * Used to check whether SEO tools are enabled for given site.
25 *
26 * @return bool True if SEO tools are enabled, false otherwise.
27 */
28 public static function is_enabled_jetpack_seo() {
29 /**
30 * Can be used by SEO plugin authors to disable the conflicting output of SEO Tools.
31 *
32 * @module seo-tools
33 *
34 * @since 5.0.0
35 *
36 * @param bool True if SEO Tools should be disabled, false otherwise.
37 */
38 if ( apply_filters( 'jetpack_disable_seo_tools', false ) ) {
39 return false;
40 }
41
42 if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
43 return wpcom_site_has_feature( 'advanced-seo', get_current_blog_id() );
44 }
45
46 return true;
47 }
48
49 /**
50 * Checks if this option was set while it was freely available to all WPcom simple sites.
51 *
52 * @return bool True if we should enable legacy usage, false otherwise.
53 */
54 public static function has_legacy_front_page_meta() {
55 return ! self::is_enabled_jetpack_seo() && get_option( self::LEGACY_META_OPTION );
56 }
57
58 /**
59 * Returns front page meta description for current site.
60 *
61 * @return string Front page meta description string or empty string.
62 */
63 public static function get_front_page_meta_description() {
64 if ( self::is_enabled_jetpack_seo() ) {
65 $front_page_meta = get_option( self::FRONT_PAGE_META_OPTION );
66 return $front_page_meta ? $front_page_meta : get_option( self::LEGACY_META_OPTION, '' );
67 }
68
69 // Support legacy usage for WPcom simple sites.
70 return get_option( self::LEGACY_META_OPTION, '' );
71 }
72
73 /**
74 * Sanitizes the custom front page meta description input.
75 *
76 * @param string $value Front page meta string.
77 *
78 * @return string The sanitized string.
79 */
80 public static function sanitize_front_page_meta_description( $value ) {
81 return wp_strip_all_tags( $value );
82 }
83
84 /**
85 * Updates the site option value for front page meta description.
86 *
87 * @param string $value New value for front page meta description.
88 *
89 * @return string Saved value, or empty string if no update was performed.
90 */
91 public static function update_front_page_meta_description( $value ) {
92 $front_page_description = self::sanitize_front_page_meta_description( $value );
93
94 /**
95 * Can be used to limit the length of front page meta description.
96 *
97 * @module seo-tools
98 *
99 * @since 4.4.0
100 *
101 * @param int Maximum length of front page meta description. Defaults to 300.
102 */
103 $description_max_length = apply_filters( 'jetpack_seo_front_page_description_max_length', 300 );
104
105 if ( function_exists( 'mb_substr' ) ) {
106 $front_page_description = mb_substr( $front_page_description, 0, $description_max_length );
107 } else {
108 $front_page_description = substr( $front_page_description, 0, $description_max_length );
109 }
110
111 $can_set_meta = self::is_enabled_jetpack_seo();
112 $legacy_meta_option = get_option( self::LEGACY_META_OPTION );
113 $has_old_meta = ! empty( $legacy_meta_option );
114 $option_name = self::has_legacy_front_page_meta() ? self::LEGACY_META_OPTION : self::FRONT_PAGE_META_OPTION;
115
116 $did_update = update_option( $option_name, $front_page_description );
117
118 if ( $did_update && $has_old_meta && $can_set_meta ) {
119 // Delete legacy option if user has switched to Business or eCommerce plan and updated the front page meta description.
120 delete_option( self::LEGACY_META_OPTION );
121 }
122
123 if ( $did_update ) {
124 return $front_page_description;
125 }
126
127 return '';
128 }
129
130 /**
131 * Remove content within wp:query blocks.
132 *
133 * @uses jetpack_og_remove_query_blocks
134 *
135 * @since 14.9
136 *
137 * @param string $content Post content.
138 *
139 * @return string Post content stripped from wp:query blocks.
140 */
141 public static function remove_query_blocks( $content ) {
142 if ( ! function_exists( 'jetpack_og_remove_query_blocks' ) ) {
143 return $content;
144 }
145
146 return jetpack_og_remove_query_blocks( $content );
147 }
148 }
149