Snippets : ces extraits de code indispensables à votre site WordPress

Déjà un mois de passé depuis le retour des vacances et les nouveautés que je vous annonçaient. Après le tour d’horizon de la semaine WordPress de WpInfos, qui paraît tous les vendredis, voici une seconde nouveautés que vous retrouverez régulièrement, les Snippets!

Mais les snippets, qu’est ce que c’est?

Snippet est un terme de programmation informatique désignant une petite portion de code source réutilisable.

Snippets : ces extraits de code indispensables à votre site WordPress

Des snippets pour améliorer votre site WordPress

Les snippets sont des extraits de code que l’on insère dans le fichier `functions.php` de votre thème WordPress, ou dans un plugin créé spécialement pour votre site. Les snippets peuvent être utilisés pour ajouter ou modifier une fonction particulière.

Trève de bavardages, vous percevrez rapidement l’utilité de ces snippets avec les explications qui leur sont attachées.

1 – Personnaliser le logo de votre site WordPress

Grâce à ce snippet, la page de connexion de WordPress peut être être adaptée au design d’un client.

<?php
// Change le logo de connexion à l'administration WordPress
   function my_custom_login_logo() {
    echo '<style type="text/css"> h1 a { background-image:url('.get_bloginfo('template_directory').'/images/democratic-post-logo-google.jpg) !important; } </style>';
   }
   add_action('login_head', 'my_custom_login_logo');

// L'URL du Logos doit pointer vers votre site
function gp_change_login_page_url($login_header_url) {
    return get_bloginfo( 'url' );
}
add_filter( 'login_headerurl', 'gp_change_login_page_url' );

//Modifie le logo du site
function gp_change_login_page_title($login_header_title) {
    return get_bloginfo('title');
}
add_filter( 'login_headertitle', 'gp_change_login_page_title' );

2 – Enlever des widgets de la console d’administration WordPress

Ce code peut désactiver complètement ou partiellement les widgets de la page d’accueil de la console d’administration WordPress.

<?php
// Désactive les widgets de la console d'administration WordPress
function binf_remove_dashboard_widgets() {
    global $wp_meta_boxes;
 
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_drafts']);
    unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
    unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
 
} 
add_action('wp_dashboard_setup', 'binf_remove_dashboard_widgets' );

3 – Ajouter les types d’articles personnalisés à la recherche WordPress

Les types d’articles personnalisé existent depuis WordPress 3.0, mais par défaut ils n’apparaissent pas dans les résultats des recherches WordPress. Cet extrait de code corrige cet oubli.

<?php
// Ajouter les types d'articles personnalisés à la recherche WordPress
function binf_searchAll( $query ) {
 if ( $query->is_search ) { $query->set( 'post_type', array( 'site','plugin', 'theme','person' )); } // Custom Post Types noch anpassen
 return $query;
}
add_filter( 'the_search_query', 'ah_searchAll' );

4- Insérer le code Google Analytics dans le pied de page du site du site

Avec seulement quelques lignes de code, vous pouvez intégrer le code Google Analytics dans le footer de votre site. Vous pouvez également inclure tout autre code.

<?php
//Insérer le code Google Analytics dans le pied de page du site
function binf_add_googleanalytics() { ?>

<script>Insérer ICI le code Google Analytics</script>

<?php }
add_action('wp_footer', 'binf_add_googleanalytics');

5 – Afficher un copyright dynamique dans le pied de page du site

L’on voit fréquemment des sites avec des données de copyright erronées, acr elles indiquent la dernière fois que la fonction WordPress a été utilisée. Ces données erronées peuvent être gênantes, voire dangereuses pour des sites existant depuis de nombreuses années. Ils peuvent s’exposer à un problème de droit d’auteur.

Si par exemple un site indique « Copyright© 2014 à 2016« , tous les articles antérieures à 2014 ne sont pas protégés par le copyright, dommage car tout le monde pourra s’en réclamer être l’auteur.

Corrigeons rapidement cette erreur avec un peu de code:

<?php

// Affiche un copyright dynamique © De l'année à l'année...
/* Coller cette balise à l'endroit où le copyright doit apparaître 
 <?php echo binf_dynamic_copyright(); ?> - 
*/

function binf_dynamic_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "&copy; " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}

6 – Comment afficher les articles par Catégorie

Bien qu’il soit possible de le faire manuellement, pour vous faciliter le travail, l’extrait ci-dessous, vous permet d’afficher les article par catégorie.

/**
 * Affiche les derniers articles par catégories
 * 
 * @return 
 * @param object $cats
 * @param object $show[optional]
 */
function show_title_cat( $cats, $show=5 ) {
    global $post; 
    $posts = query_posts('cat=' . $cats . '&showposts=' . $show );
    echo "<ul>";
    foreach ($posts as $post ) : setup_postdata($post); ?>
        <li><a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></li>
    <?php endforeach;
    echo "</ul>";
}

7 – Utiliser votre image Gravatar en tant que  Favicon

Le snippet ci-dessous vous permettra d’avoir votre image Gravatar en tant que Favicon pour votre site WordPress

function GravatarAsFavicon() {

$GetTheHash = md5(strtolower(trim('vous@votredomaine.fr')));

echo 'http://www.gravatar.com/avatar/' . $GetTheHash . '?s=16';

}

N’oubliez pas de remplacer `vous@votredomaine.fr` par l’adresse email utilisée pour obtenir votre Gravatar

8 – Exiger une image vedette

Si vous avez un blog ou un site magazine qui a besoin d’une image vedette pour chaque article, cet extrait est la solution idéale. Les nouveaux auteurs qui voudront publier des articles sans image vedette, parce qu’ils l’auront oublié, n’ont plus d soucis à se faire.

Ce code vérifie la présence d’une image vedette. Si aucune image n’existe, il enregistrera l’article sans le publier et affichera un message d’erreur. Cela permet de  s’assurer qu’aucun aucun article ne soit publié sans image vedette.

add_action('save_post', 'binf_check_thumbnail');
add_action('admin_notices', 'binf_thumbnail_error');

function binf_check_thumbnail($post_id) {
    // Vérifie qu'il s'agit bien d'un article
    if(get_post_type($post_id) != 'post')
        return;
    if ( !has_post_thumbnail( $post_id ) ) {
        // Définit un transient afin de pouvoir afficher le message d'erreur
        set_transient( "has_post_thumbnail", "no" );
        // interruption de la fonction de sorte qu'elle ne boucle pas infiniment
        remove_action('save_post', 'binf_check_thumbnail');
        // enregistrement en tant que brouillon
        wp_update_post(array('ID' => $post_id, 'post_status' => 'draft'));
        add_action('save_post', 'binf_check_thumbnail');
    } else {
        delete_transient( "has_post_thumbnail" );
    }
}

function binf_thumbnail_error()
{
    // vérifie si le transient est actif, et affiche le message d'erreur
    if ( get_transient( "has_post_thumbnail" ) == "no" ) {
        echo "<div id='message' class='error'><p><strong>Vous n'avez pas sélectionné d'image vedette. Votre article est enregistré en tant que brouillon.</strong></p></div>";
        delete_transient( "has_post_thumbnail" );
    }
}

9 – Ajouter une taille d’image personnalisée

Les images téléchargées peuvent être intégrées dans un article en utilisant des formats personnalisés. WordPress est livré avec un certain nombre de tailles d’image par défaut. Mais vous pouvez aussi créer vos propres dimensions d’images qui pourront être sélectionnées depuis l’éditeur d’article.

if ( function_exists( 'add_image_size' ) ) {
    add_image_size( 'new-size', 300, 100, true ); 
}
add_filter('image_size_names_choose', 'my_image_sizes');

function my_image_sizes($sizes) {

        $addsizes = array(
                "new-size" => __( "New Size")
                );
        $newsizes = array_merge($sizes, $addsizes);
        return $newsizes;
}

10 – Forcer tous les scripts dans wp_footer ()

Lorsque l’on parle de vitesse de chargement, les scripts sont souvent responsables des lenteurs, chaque script étant plus ou plus moins long à se charger, selon s’il doit ou non se connecter à un serveur distant.  En les chargeant dans le pied de page, vous permettez à vos lecteurs d’accéder à votre article, sans avoir besoin d’attendre que tous les scripts soient chargés.

Cela ne sera certainement pas utile à tout le monde, mais ce code permet d’accélérer le site WordPress aux utilisateurs non-techniciens.

if(!is_admin()){
	remove_action('wp_head', 'wp_print_scripts');
	remove_action('wp_head', 'wp_print_head_scripts', 9);
	remove_action('wp_head', 'wp_enqueue_scripts', 1);

	add_action('wp_footer', 'wp_print_scripts', 5);
	add_action('wp_footer', 'wp_enqueue_scripts', 5);
	add_action('wp_footer', 'wp_print_head_scripts', 5);
}

11 – Bloquer la console d’administration sauf pour les Administrateurs

Si votre site WordPress encourage les nouvelles inscriptions, ce code peut éviter des maux de tête en ce qui concerne l’accès à l’administration du site. Cet extrait de code sera utile lorsque vous souhaiterez que des utilisateurs s’inscrivent, mais ne que vous souhaitez pas leur donner accès au tableau de bord.

Toute personne n’étant pas administrateur sera automatiquement redirigée vers la page d’accueil.

add_action( 'init', 'blockusers_init' );

function blockusers_init() {
        if ( is_admin() && ! current_user_can( 'administrator' ) ) {
                wp_redirect( home_url() );
                exit;
        }
}

Voilà pour ce premier article spécialement dédié aux snippets WordPress. Beaucoup d’autres sont à venir, et si vous êtes à la recherche d’une fonction particulière, n’hésitez pas à la demander via le formulaire de contact.

Pour vous facilitez les choses, vous pouvez téléchargez le fichier contenant l’ensemble des codes présentés.

 

séparateur de texte

Si cet article vous a été utile, Partagez le, il pourra être utile à d’autres personnes. Merci!

Publié à l'origine le : 29 septembre 2016 @ 13 h 55 min

Pour compléter votre lecture.