Voici quelques morceaux de code, chinés à droite à gauche sur le web, à rajouter dans le fichier fonction.php de votre thème ou votre child thème WordPress. Un florilège de fonction très utiles que j’utilise dans la plupart de mes projets, ce qui permet d’alléger son site en plugin et extensions.

Suppression des feed WP et des URL de feed

function itsme_disable_feed() {
 wp_die( __( 'No feed available, please visit the <a href="'. esc_url( home_url( '/' ) ) .'">homepage</a>!' ) );
}
add_action('do_feed', 'itsme_disable_feed', 1);
add_action('do_feed_rdf', 'itsme_disable_feed', 1);
add_action('do_feed_rss', 'itsme_disable_feed', 1);
add_action('do_feed_rss2', 'itsme_disable_feed', 1);
add_action('do_feed_atom', 'itsme_disable_feed', 1);
add_action('do_feed_rss2_comments', 'itsme_disable_feed', 1);
add_action('do_feed_atom_comments', 'itsme_disable_feed', 1);

Suppression du stockage de l’adresse IP lors de la saisie des commentaires

function pavenum_comment_user_ip() {
  return '';
}
add_filter( 'pre_comment_user_ip', 'pavenum_comment_user_ip' );

source : Anonymiser les commentaires wordpress pour le RGPD

Suppression du champs site web des commentaires

function pavenum_disable_comment_infos( $fields ) { 
  unset( $fields['email'] );
  unset( $fields['url'] );
  unset( $fields['cookies'] );
  return $fields;
}
add_filter('comment_form_default_fields','pavenum_disable_comment_infos');

Désactiver l’accès à l’API REST de WordPress pour les utilisateurs non loggés

add_filter( 'rest_authentication_errors', function( $result ) {
  if ( ! empty( $result ) ) {
    return $result;
  }
  if ( ! is_user_logged_in() ) {
    return new WP_Error( 'rest_not_logged_in', 'Vous devez être connecté pour accéder à cette ressource.', array( 'status' => 401 ) );
  }
  if ( ! current_user_can( 'administrator' ) ) {
    return new WP_Error( 'rest_not_admin', 'Vous n\'avez pas les droits suffisants pour accéder à cette ressource.', array( 'status' => 401 ) );
  }
  return $result;
});

Désactiver les emojis (Permet d’éviter au moins 2 requêtes HTTP)

function disable_emojis() {
 remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
 remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
 remove_action( 'wp_print_styles', 'print_emoji_styles' );
 remove_action( 'admin_print_styles', 'print_emoji_styles' );
 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', 'disable_emojis_tinymce' );
}
add_action( 'init', 'disable_emojis' );

function disable_emojis_tinymce( $plugins ) {
 if ( is_array( $plugins ) ) {
 return array_diff( $plugins, array( 'wpemoji' ) );
 } else {
 return array();
 }
}

Différer le chargement des commentaires

Ce code utilise le hook wp_enqueue_scripts pour dé-enregistrer le script comment-reply et le ré-enregistrer avec l’option true pour la valeur $in_footer, ce qui signifie qu’il sera chargé à la fin de la page au lieu de l’être immédiatement au début.

function defer_comments_js() {
  if (!is_admin()) {
    wp_deregister_script('comment-reply');
    wp_register_script('comment-reply', false, array('jquery'), null, true);
  }
}
add_action('wp_enqueue_scripts', 'defer_comments_js');

Désactiver la fonction d’intégration (embed) dans WordPress

Ce code utilise les hooks rest_api_init, embed_oembed_discover, oembed_dataparse, wp_head pour supprimer les actions associées à la fonction d’intégration. Il utilise également un filtre embed_oembed_discover pour désactiver la découverte automatique d’intégration.

function disable_embeds_code_init() {
  // Remove the REST API endpoint.
  remove_action('rest_api_init', 'wp_oembed_register_route');
  
  // Turn off oEmbed auto discovery.
  add_filter('embed_oembed_discover', '__return_false');
  
  // Don't filter oEmbed results.
  remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
  
  // Remove oEmbed discovery links.
  remove_action('wp_head', 'wp_oembed_add_discovery_links');
  
  // Remove oEmbed-specific JavaScript from the front-end and back-end.
  remove_action('wp_head', 'wp_oembed_add_host_js');
}

add_action('init', 'disable_embeds_code_init', 9999);

Désactiver Gravatar dans WordPress en utilisant un filtre de commentaire

function disable_gravatar($default, $email, $rating, $default_image) {
  return false;
}
add_filter('get_avatar', 'disable_gravatar', 10, 4);