Skip to content

Commit

Permalink
Merge pull request #266 from 10up/feature/overrides-location
Browse files Browse the repository at this point in the history
Move Overrides out of theme and into functionality plugin
  • Loading branch information
darylldoyle authored Jan 6, 2025
2 parents 31bbce0 + aa247ce commit 44721b1
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 85 deletions.
98 changes: 98 additions & 0 deletions mu-plugins/10up-plugin/includes/classes/Overrides.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
<?php
/**
* This file contains hooks and functions that override the behavior of WP Core.
*
* @package TenUpPlugin
*/

namespace TenUpPlugin;

/**
* Overrides class to manage WordPress core behavior modifications.
*/
class Overrides extends Module {

/**
* Used to alter the order in which classes are initialized.
*
* @var int The priority of the module.
*/
public $load_order = 5;

/**
* Checks whether the Module should run within the current context.
*
* @return bool
*/
public function can_register(): bool {
return true;
}

/**
* Connects the Module with WordPress using Hooks and/or Filters.
*
* @return void
*/
public function register(): void {
// Remove the Emoji detection script.
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );

// Remove inline Emoji detection script.
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );

// Remove Emoji-related styles from front end and back end.
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );

// Remove Emoji-to-static-img conversion.
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );

add_filter( 'tiny_mce_plugins', [ $this, 'disable_emojis_tinymce' ] );
add_filter( 'wp_resource_hints', [ $this, 'disable_emoji_dns_prefetch' ], 10, 2 );

// Remove WordPress generator meta.
remove_action( 'wp_head', 'wp_generator' );
// Remove Windows Live Writer manifest link.
remove_action( 'wp_head', 'wlwmanifest_link' );
// Remove the link to Really Simple Discovery service endpoint.
remove_action( 'wp_head', 'rsd_link' );
}

/**
* Filter function used to remove the TinyMCE emoji plugin.
*
* @link https://developer.wordpress.org/reference/hooks/tiny_mce_plugins/
*
* @param array $plugins An array of default TinyMCE plugins.
* @return array An array of TinyMCE plugins, without wpemoji.
*/
public function disable_emojis_tinymce( array $plugins ): array {
if ( in_array( 'wpemoji', $plugins, true ) ) {
return array_diff( $plugins, [ 'wpemoji' ] );
}

return $plugins;
}

/**
* Remove emoji CDN hostname from DNS prefetching hints.
*
* @link https://developer.wordpress.org/reference/hooks/emoji_svg_url/
*
* @param array $urls URLs to print for resource hints.
* @param string $relation_type The relation type the URLs are printed for.
* @return array Difference betwen the two arrays.
*/
public function disable_emoji_dns_prefetch( array $urls, string $relation_type ): array {
if ( 'dns-prefetch' === $relation_type ) {
/** This filter is documented in wp-includes/formatting.php */
$emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' );

$urls = array_values( array_diff( $urls, [ $emoji_svg_url ] ) );
}

return $urls;
}
}
1 change: 0 additions & 1 deletion themes/10up-theme/functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
}

require_once TENUP_THEME_INC . 'core.php';
require_once TENUP_THEME_INC . 'overrides.php';
require_once TENUP_THEME_INC . 'template-tags.php';
require_once TENUP_THEME_INC . 'utility.php';
require_once TENUP_THEME_INC . 'blocks.php';
Expand Down
84 changes: 0 additions & 84 deletions themes/10up-theme/includes/overrides.php

This file was deleted.

0 comments on commit 44721b1

Please sign in to comment.