PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 10.2.2
Jetpack – WP Security, Backup, Speed, & Growth v10.2.2
16.2 16.2-beta 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 All 502 releases
jetpack / modules / theme-tools / site-logo.php

site-logo.php in Jetpack – WP Security, Backup, Speed, & Growth 10.2.2, at modules/theme-tools/site-logo.php

79 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 * Site Logo.
4 * @see https://jetpack.com/support/site-logo/
5 *
6 * This feature will only be activated for themes that declare their support.
7 * This can be done by adding code similar to the following during the
8 * 'after_setup_theme' action:
9 *
10 * $args = array(
11 * 'header-text' => array(
12 * 'site-title',
13 * 'site-description',
14 * ),
15 * 'size' => 'medium',
16 * );
17 * add_theme_support( 'site-logo', $args );
18 *
19 */
20
21 /**
22 * Activate the Site Logo plugin.
23 *
24 * @uses current_theme_supports()
25 * @since 3.2.0
26 * @since 9.9.0 Uses Core site_logo option format universally.
27 */
28 function site_logo_init() {
29 // Only load our code if our theme declares support, and the standalone plugin is not activated.
30 if ( current_theme_supports( 'site-logo' ) && ! class_exists( 'Site_Logo', false ) ) {
31 // Load our class for namespacing.
32 require dirname( __FILE__ ) . '/site-logo/inc/class-site-logo.php';
33
34 // Load template tags.
35 require dirname( __FILE__ ) . '/site-logo/inc/functions.php';
36
37 // Load backwards-compatible template tags.
38 require dirname( __FILE__ ) . '/site-logo/inc/compat.php';
39 }
40 }
41 add_action( 'init', 'site_logo_init' );
42
43 /**
44 * When switching from a legacy theme that uses `site-logo` to a theme that uses `custom-logo`,
45 * update the theme's custom logo if it doesn't already have one.
46 *
47 * @return void
48 */
49 function jetpack_update_custom_logo_from_site_logo() {
50 $site_logo = get_option( 'site_logo' );
51
52 if ( current_theme_supports( 'custom-logo' ) && ! get_theme_mod( 'custom_logo' ) && $site_logo ) {
53 set_theme_mod( 'custom_logo', $site_logo );
54 }
55 }
56 add_action( 'after_switch_theme', 'jetpack_update_custom_logo_from_site_logo', 10, 0 );
57
58 /**
59 * Transforms the legacy site_logo array, when present, into an attachment ID.
60 *
61 * The attachment ID is the format used for the site_logo option by the Site Logo block,
62 * and the updated Jetpack site-logo feature.
63 *
64 * @since 9.9.0
65 *
66 * @param int|array $site_logo Option.
67 * @return int
68 */
69 function jetpack_site_logo_block_compat( $site_logo ) {
70 if ( isset( $site_logo['id'] ) ) {
71 remove_filter( 'option_site_logo', 'jetpack_site_logo_block_compat', 1 );
72 update_option( 'site_logo', $site_logo['id'] );
73 return $site_logo['id'];
74 }
75
76 return $site_logo;
77 }
78 add_filter( 'option_site_logo', 'jetpack_site_logo_block_compat', 1 );
79