1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
<?php /** * Social Menu. * * This feature will only be activated for themes that declare their support. * This can be done by adding code similar to the following during the * 'after_setup_theme' action: * * add_theme_support( 'jetpack-social-menu' ); */
/** * Activate the Social Menu plugin. * * @uses current_theme_supports() */ function jetpack_social_menu_init() { // Only load our code if our theme declares support if ( ! current_theme_supports( 'jetpack-social-menu' ) ) { return; }
/* * Social Menu description. * * Rename the social menu description. * * @module theme-tools * * @since 3.9.0 * * @param string $social_menu_description Social Menu description */ $social_menu_description = apply_filters( 'jetpack_social_menu_description', __( 'Social Menu', 'jetpack' ) );
// Register a new menu location register_nav_menus( array( 'jetpack-social-menu' => esc_html( $social_menu_description ), ) );
// Enqueue CSS add_action( 'wp_enqueue_scripts', 'jetpack_social_menu_style' );
// Load SVG icons related functions and filters if ( 'svg' === jetpack_social_menu_get_type() ) { require dirname( __FILE__ ) . '/social-menu/icon-functions.php'; } } add_action( 'after_setup_theme', 'jetpack_social_menu_init', 99 );
/** * Return the type of menu the theme is using. * * @uses get_theme_support() * @return null|string $menu_type */ function jetpack_social_menu_get_type() { $options = get_theme_support( 'jetpack-social-menu' );
if ( empty( $options ) ) { $menu_type = null; } else { $menu_type = ( in_array( $options[0], array( 'genericons', 'svg' ) ) ) ? $options[0] : 'genericons'; }
return $menu_type; }
/** * Function to enqueue the CSS. */ function jetpack_social_menu_style() { $menu_type = jetpack_social_menu_get_type();
if ( ! $menu_type ) { return; }
$deps = ( 'genericons' === $menu_type ) ? array( 'genericons' ) : null;
if ( has_nav_menu( 'jetpack-social-menu' ) ) { wp_enqueue_style( 'jetpack-social-menu', plugins_url( 'social-menu/social-menu.css', __FILE__ ), $deps, '1.0' ); } }
/** * Create the function for the menu. */ function jetpack_social_menu() { if ( has_nav_menu( 'jetpack-social-menu' ) ) : $menu_type = jetpack_social_menu_get_type(); $link_after = '</span>';
if ( 'svg' === $menu_type ) { $link_after .= jetpack_social_menu_get_svg( array( 'icon' => 'chain' ) ); } ?> <nav class="jetpack-social-navigation jetpack-social-navigation-<?php echo esc_attr( $menu_type ); ?>" role="navigation" aria-label="<?php esc_html_e( 'Social Links Menu', 'jetpack' ); ?>"> <?php wp_nav_menu( array( 'theme_location' => 'jetpack-social-menu', 'link_before' => '<span class="screen-reader-text">', 'link_after' => $link_after, 'depth' => 1, ) ); ?> </nav><!-- .jetpack-social-navigation --> <?php endif; }
|