Cédric Lengagne
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.
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);
function pavenum_comment_user_ip() {
return '';
}
add_filter( 'pre_comment_user_ip', 'pavenum_comment_user_ip' );
source : Anonymiser les commentaires wordpress pour le RGPD
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');
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();
}
}
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');
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);
function disable_gravatar($default, $email, $rating, $default_image) {
return false;
}
add_filter('get_avatar', 'disable_gravatar', 10, 4);