PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 13.7.2
Jetpack – WP Security, Backup, Speed, & Growth v13.7.2
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 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 / theme-tools / social-menu / icon-functions.php
jetpack / modules / theme-tools / social-menu Last commit date
icon-functions.php 2 years ago social-menu.css 2 years ago social-menu.svg 2 years ago
icon-functions.php
218 lines
1 <?php
2 /**
3 * SVG icons related functions and filters
4 *
5 * @package automattic/jetpack
6 */
7
8 if ( ! function_exists( 'jetpack_social_menu_include_svg_icons' ) ) {
9 /**
10 * Add SVG definitions to the footer.
11 */
12 function jetpack_social_menu_include_svg_icons() {
13 _deprecated_function( __FUNCTION__, 'jetpack-13.7' );
14 // Return early if Social Menu doesn't exist.
15 if ( ! has_nav_menu( 'jetpack-social-menu' ) ) {
16 return;
17 }
18 // Define SVG sprite file.
19 $svg_icons = __DIR__ . '/social-menu.svg';
20 // If it exists and we use the SVG menu type, include it.
21 if ( file_exists( $svg_icons ) && 'svg' === jetpack_social_menu_get_type() ) {
22 require_once $svg_icons;
23 }
24 }
25 add_action( 'wp_footer', 'jetpack_social_menu_include_svg_icons', 9999 );
26 }
27
28 if ( ! function_exists( 'jetpack_social_menu_get_svg' ) ) {
29 /**
30 * Return SVG markup.
31 *
32 * @param array $args {
33 * Parameters needed to display an SVG.
34 *
35 * @type string $icon Required SVG icon filename.
36 * }
37 * @return string SVG markup.
38 */
39 function jetpack_social_menu_get_svg( $args = array() ) {
40 _deprecated_function( __FUNCTION__, 'jetpack-13.7' );
41 // Make sure $args are an array.
42 if ( empty( $args ) ) {
43 return esc_html__( 'Please define default parameters in the form of an array.', 'jetpack' );
44 }
45
46 // Define an icon.
47 if ( false === array_key_exists( 'icon', $args ) ) {
48 return esc_html__( 'Please define an SVG icon filename.', 'jetpack' );
49 }
50
51 // Set defaults.
52 $defaults = array(
53 'icon' => '',
54 'fallback' => false,
55 );
56
57 // Parse args.
58 $args = wp_parse_args( $args, $defaults );
59
60 // Set aria hidden.
61 $aria_hidden = ' aria-hidden="true"';
62
63 // Begin SVG markup.
64 $svg = '<svg class="icon icon-' . esc_attr( $args['icon'] ) . '"' . $aria_hidden . ' role="img">';
65
66 /*
67 * Display the icon.
68 *
69 * The whitespace around `<use>` is intentional - it is a work around to a keyboard navigation bug in Safari 10.
70 *
71 * See https://core.trac.wordpress.org/ticket/38387.
72 */
73 $svg .= ' <use href="#icon-' . esc_html( $args['icon'] ) . '" xlink:href="#icon-' . esc_html( $args['icon'] ) . '"></use> ';
74
75 // Add some markup to use as a fallback for browsers that do not support SVGs.
76 if ( $args['fallback'] ) {
77 $svg .= '<span class="svg-fallback icon-' . esc_attr( $args['icon'] ) . '"></span>';
78 }
79
80 $svg .= '</svg>';
81
82 return $svg;
83 }
84 }
85
86 if ( ! function_exists( 'jetpack_social_menu_nav_menu_social_icons' ) ) {
87 /**
88 * Display SVG icons in social links menu.
89 *
90 * @param string $item_output The menu item output.
91 * @param WP_Post $item Menu item object.
92 * @param int $depth Depth of the menu.
93 * @param array $args wp_nav_menu() arguments.
94 * @return string $item_output The menu item output with social icon.
95 */
96 function jetpack_social_menu_nav_menu_social_icons( $item_output, $item, $depth, $args ) {
97 _deprecated_function( __FUNCTION__, 'jetpack-13.7' );
98 // Get supported social icons.
99 $social_icons = jetpack_social_menu_social_links_icons();
100
101 // Change SVG icon inside social links menu if there is supported URL.
102 if ( 'jetpack-social-menu' === $args->theme_location ) {
103 foreach ( $social_icons as $attr => $value ) {
104 /*
105 * attr can be a URL host, or a regex, starting with #.
106 * Let's check for both scenarios.
107 */
108 if (
109 // First Regex.
110 (
111 str_starts_with( $attr, '#' ) && str_ends_with( $attr, '#' )
112 && preg_match( $attr, $item_output )
113 )
114 // Then, regular host name.
115 || str_contains( $item_output, $attr )
116 ) {
117 $item_output = str_replace(
118 $args->link_after,
119 '</span>' . jetpack_social_menu_get_svg( array( 'icon' => esc_attr( $value ) ) ),
120 $item_output
121 );
122 }
123 }
124 }
125
126 return $item_output;
127 }
128 add_filter( 'walker_nav_menu_start_el', 'jetpack_social_menu_nav_menu_social_icons', 10, 4 );
129 }
130
131 if ( ! function_exists( 'jetpack_social_menu_social_links_icons' ) ) {
132 /**
133 * Returns an array of supported social links (URL / regex and icon name).
134 * For regex, use the # delimiter.
135 *
136 * @return array $social_links_icons
137 */
138 function jetpack_social_menu_social_links_icons() {
139 _deprecated_function( __FUNCTION__, 'jetpack-13.7' );
140 // Supported social links icons.
141 $social_links_icons = array(
142 '#https?:\/\/(www\.)?amazon\.(com|cn|in|fr|de|it|nl|es|co|ca)\/#' => 'amazon',
143 '500px.com' => '500px',
144 'apple.com' => 'apple',
145 'itunes.com' => 'apple',
146 'bandcamp.com' => 'bandcamp',
147 'behance.net' => 'behance',
148 'blogger.com' => 'blogger',
149 'blogspot.com' => 'blogger',
150 'bsky.app' => 'bluesky',
151 'codepen.io' => 'codepen',
152 'deviantart.com' => 'deviantart',
153 'discord.gg' => 'discord',
154 'discordapp.com' => 'discord',
155 'digg.com' => 'digg',
156 'dribbble.com' => 'dribbble',
157 'dropbox.com' => 'dropbox',
158 'etsy.com' => 'etsy',
159 'eventbrite.com' => 'eventbrite',
160 'facebook.com' => 'facebook',
161 '/feed/' => 'feed',
162 'flickr.com' => 'flickr',
163 'foursquare.com' => 'foursquare',
164 'ghost.org' => 'ghost',
165 'goodreads.com' => 'goodreads',
166 'google.com' => 'google',
167 'github.com' => 'github',
168 'instagram.com' => 'instagram',
169 'linkedin.com' => 'linkedin',
170 'mailto:' => 'mail',
171 'meetup.com' => 'meetup',
172 'medium.com' => 'medium',
173 'nextdoor.com' => 'nextdoor',
174 'patreon.com' => 'patreon',
175 'pinterest.' => 'pinterest',
176 'getpocket.com' => 'pocket',
177 'ravelry.com' => 'ravelry',
178 'reddit.com' => 'reddit',
179 'skype.com' => 'skype',
180 'skype:' => 'skype',
181 'slideshare.net' => 'slideshare',
182 'sms:' => 'sms',
183 'snapchat.com' => 'snapchat',
184 'soundcloud.com' => 'soundcloud',
185 'spotify.com' => 'spotify',
186 'stackoverflow.com' => 'stackoverflow',
187 'strava.com' => 'strava',
188 'stumbleupon.com' => 'stumbleupon',
189 'telegram.me' => 'telegram',
190 'threads.net' => 'threads',
191 'tiktok.com' => 'tiktok',
192 'tumblr.com' => 'tumblr',
193 'twitch.tv' => 'twitch',
194 'twitter.com' => 'twitter',
195 'vimeo.com' => 'vimeo',
196 'vk.com' => 'vk',
197 'whatsapp.com' => 'whatsapp',
198 'woocommerce.com' => 'woocommerce',
199 'wordpress.org' => 'wordpress',
200 'wordpress.com' => 'wordpress',
201 'yelp.com' => 'yelp',
202 'x.com' => 'x',
203 'xanga.com' => 'xanga',
204 'youtube.com' => 'youtube',
205 );
206
207 /*
208 * Add Mastodon instances to this array.
209 */
210 $mastodon_instance_list = jetpack_mastodon_get_instance_list();
211 foreach ( $mastodon_instance_list as $instance ) {
212 $social_links_icons[ $instance ] = 'mastodon';
213 }
214
215 return $social_links_icons;
216 }
217 }
218