init
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
/**
|
||||
* Theme Tools: Site Logo.
|
||||
*
|
||||
* @see https://jetpack.com/support/site-logo/
|
||||
*
|
||||
* 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:
|
||||
*
|
||||
* $args = array(
|
||||
* 'header-text' => array(
|
||||
* 'site-title',
|
||||
* 'site-description',
|
||||
* ),
|
||||
* 'size' => 'medium',
|
||||
* );
|
||||
* add_theme_support( 'site-logo', $args );
|
||||
*
|
||||
* @package automattic/jetpack
|
||||
*/
|
||||
|
||||
/**
|
||||
* Activate the Site Logo plugin.
|
||||
*
|
||||
* @uses current_theme_supports()
|
||||
* @since 3.2.0
|
||||
* @since 9.9.0 Uses Core site_logo option format universally.
|
||||
*/
|
||||
function site_logo_init() {
|
||||
// Only load our code if our theme declares support, and the standalone plugin is not activated.
|
||||
if ( current_theme_supports( 'site-logo' ) && ! class_exists( 'Site_Logo', false ) ) {
|
||||
_deprecated_hook( 'site-logo', '13.4', 'custom-logo', 'Jetpack no longer supports site-logo feature. Add custom-logo support to your theme instead: https://developer.wordpress.org/themes/functionality/custom-logo/' );
|
||||
// Load our class for namespacing.
|
||||
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
|
||||
// wpcom handles the image sizes differently.
|
||||
require_once WPMU_PLUGIN_DIR . '/site-logo/inc/class-site-logo.php';
|
||||
} else {
|
||||
require __DIR__ . '/site-logo/inc/class-site-logo.php';
|
||||
}
|
||||
|
||||
// Load template tags.
|
||||
require __DIR__ . '/site-logo/inc/functions.php';
|
||||
|
||||
// Load backwards-compatible template tags.
|
||||
require __DIR__ . '/site-logo/inc/compat.php';
|
||||
}
|
||||
}
|
||||
add_action( 'init', 'site_logo_init' );
|
||||
|
||||
/**
|
||||
* When switching from a legacy theme that uses `site-logo` to a theme that uses `custom-logo`,
|
||||
* update the theme's custom logo if it doesn't already have one.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function jetpack_update_custom_logo_from_site_logo() {
|
||||
$site_logo = get_option( 'site_logo' );
|
||||
|
||||
if ( current_theme_supports( 'custom-logo' ) && ! get_theme_mod( 'custom_logo' ) && $site_logo ) {
|
||||
set_theme_mod( 'custom_logo', $site_logo );
|
||||
}
|
||||
}
|
||||
add_action( 'after_switch_theme', 'jetpack_update_custom_logo_from_site_logo', 10, 0 );
|
||||
|
||||
/**
|
||||
* Transforms the legacy site_logo array, when present, into an attachment ID.
|
||||
*
|
||||
* The attachment ID is the format used for the site_logo option by the Site Logo block,
|
||||
* and the updated Jetpack site-logo feature.
|
||||
*
|
||||
* @since 9.9.0
|
||||
*
|
||||
* @param int|array $site_logo Option.
|
||||
* @return int
|
||||
*/
|
||||
function jetpack_site_logo_block_compat( $site_logo ) {
|
||||
if ( isset( $site_logo['id'] ) ) {
|
||||
remove_filter( 'option_site_logo', 'jetpack_site_logo_block_compat', 1 );
|
||||
update_option( 'site_logo', $site_logo['id'] );
|
||||
return $site_logo['id'];
|
||||
}
|
||||
|
||||
return $site_logo;
|
||||
}
|
||||
add_filter( 'option_site_logo', 'jetpack_site_logo_block_compat', 1 );
|
||||
Reference in New Issue
Block a user