background preloader

Gestion Thémes

Facebook Twitter

Post Formats WordPress. Disponible depuis la version 3.1, les Posts Formats permettent de subdiviser les articles en plusieurs types afin de leur appliquer un style différent en choisissant parmi l’un des types de contenu fournis par WordPress lui-même : aside : article rapide (sans titre)chat : une discussiongallery : une galerie d’images affichant les images d’un postlink : Une présentation d’un ou plusieurs liens externesimage : une présentation d’une simple imagequote : une citationstatus : un statut, comme Twitter ou Facebook par exemplevideo : une vidéoaudio: un podcast, une musique ou autre sons La MetaBox des Post Formats dans l’édition d’un article Déclarer les Post Formats Pour déclarer les Post Formats, il faut utiliser la fonction add_theme_support() de WordPress : add_theme_support('post-formats', $post_formats); 'post-formats' indique le support des Post Formats et la variable $post_formats est un array contenant la liste des Post Formats que l’on souhaite utiliser.

Longueur des extraits WordPress. Ajouter Google Analytics sur WordPress. J’utilise fréquemment une fonction qui permet d’insérer correctement le script de Google Analytics et de le changer facilement. Cela s’avère pratique lorsque l’on crée un thème pour le diffuser ou même pour ses propres besoins. Pour cela, rendez-vous dans votre fichier functions.php où il faut d’abord définir l’UA de Google Analytics qui va être utilisé dans la fonction : define('GOO_ANALYTICS_ID', 'UA-xxxxxxxx-x'); // remplacer les x par votre UA Ensuite la fonction devra ressembler à ceci : On part du principe que vous avez la fonction wp_head() au bon endroit dans le fichier header.php.

Assez pratique, qu’en pensez-vous ? Afficher les archives mensuelles des articles WordPress classés par années. J’ai eu besoin d’afficher les archives d’un blog en mettant l’année en en-tête et les mois en-dessous. N’ayant pas trouvé de solution toute faite dans WordPress, j’ai réalisé une petite fonction et je vous la partage. Copier le code ci-dessous dans le fichier functions.php présent à la racine de votre thème : Dans votre template – à l’endroit où vous avez besoin d’afficher ces archives, voire même où vous souhaitez remplacer les anciennes archives – il est nécessaire d’inscrire ceci (par défaut, pas d’affichage du nombre d’articles et aucune limite) : Le résultat est le suivant : Pour les arguments, vous pouvez utiliser « limit » et « show_post_count » comme pour wp_get_archives sur lequel ce code se base.

Voici un exemple pour les 12 derniers mois seulement, avec affichage du nombre d’articles : <? Les autres arguments ne sont plus disponibles, cela n’est pas trop grave. Ce dernier exemple nous donne : Bon codage. Date relative dans les articles WordPress. Afficher un message d'avertissement en fonction de l'âge d'un article sur WordPress. Ça a du vous arriver, vous lisez un article, puis vous testez et ça ne fonctionne pas. Vous remarquez après avoir lu l’article qu’il a été publié il y a déjà 2 ans … Si vous ne voulez pas que cela arrive sur votre blog, cette astuce est faite pour vous. Il vous suffit d’ajouter cette fonction dans le fichier functions.php de votre thème : Ensuite, il vous faut l’appeler dans votre fichier single.php, à l’endroit ou vous voulez afficher le message d’avertissement (si le post est trop ancien).

Comme ceci: verif_age_post('mois', 5); Et si le coeur vous en dit (il faudra bien), ajoutez un peu de css, et voila ce que ça donnera pour l’utilisateur: Lier automatiquement avec un lien la miniature d'un article WordPress. En général, quand on met en place une liste d’articles avec une miniature (Image à la Une), on englobe cette image dans un lien hypertexte qui ramène à l’article. Cela permet d’inciter les visiteurs à cliquer sur l’image pour accéder à l’article.

En effet, je pense que la plupart d’entre nous ont le réflexe de cliquer sur la miniature d’un article. Cela est plutôt logique puisqu’une image attire plus l’oeil qu’un texte. Dans ce cas, il serait intéréssant de faire en sorte que la fonction the_post_thumbnail() retourne une image englobée par un lien menant vers l’article. Pour cela, copier le code ci-dessous dans le fichier functions.php présent à la racine de votre thème : add_filter('post_thumbnail_html', 'gkp_post_thumbnail_html', 10, 2 );function gkp_post_thumbnail_html( $html, $post_id ) { $html = '<a href="' . get_permalink( $post_id ) . '">' .

Exemple d’utilisation dans une boucle WordPress : Modifier automatiquement un mot ou une phrase d'un article WordPress. Parfois, on peut vouloir modifier un mot ou même une phrase entière d’un article. Soudain, on se rend compte que cette phrase ou ce mot est utilisé dans plusieurs articles et l’on souhaiterait appliquer automatiquement la modification sur tous les articles. Dans l’exemple suivant, on décide de modifier les mots « wordpress » et « contact » par des liens hypertexte (code insérer dans le fichier functions.php) : Limiter les articles WordPress mis en avant avec les sticky posts. Pour mon dernier thème, j’avais la contrainte d’avoir qu’un seul article à mettre en avant sur la page d’accueil. Pour cela, j’ai utilisé les sticky posts inclus dans WordPress. Le souci est que je devais à chaque fois retourner décocher l’ancien article mis en avant pour avoir qu’un seul sticky post de sauvegarder dans la BDD… Pour résoudre ce problème, la solution est de modifier automatiquement la valeur de l’option sticky_posts à l’aide du filtre pre_update_option_sticky_posts.

Copiez le code ci-dessous dans le fichier functions.php présent à la racine de votre thème : add_filter( 'pre_update_option_sticky_posts', 'gkp_pre_update_option_sticky_posts' );function gkp_pre_update_option_sticky_posts( $posts ) { return array_slice( $posts, -1 );} Modifiez -1 en -N, N étant le nombre de sticky maximum que vous voulez garder sachant que les N derniers seront gardés, les premiers oubliés ! Afficher un thème WordPress en fonction du rôle des membres. Par défaut, il n’existe aucune alternative pour afficher un thème différent en fonction du rôle d’un membre. Cette fonctionnalité pourrait s’avérer pratique dans le cas du développement d’une nouvelle version d’un site. En effet, on pourrait limiter l’accès à ce nouveau thème aux administrateurs et faire en sorte que les autres membres continuent à naviguer sur la version actuellement en ligne. Dans l’exemple suivant, on souhaite afficher le thème Techified aux administrateurs et le thème Twenty Eleven aux autres membres.

Pour cela, on doit obligatoirement créer un plugin avec le code suivant : <? Les valeurs « techified » et « twentyeleven » correspondent aux noms des dossiers des thèmes concernés par le script. PS : Merci à Julio pour la correction du code d’origine. Écraser les fonctions de bases d'un thème parent sur WordPress. Les Child Themes (ou thèmes enfants en français) sont très utiles pour personnaliser l’apparence ou le code d’un thème (payant ou gratuit) tout en continuant à bénéficier des mises à jour sans perdre nos modifications.

Lorsqu’il s’agit de créer des nouvelles fonctions, il n’y a aucun risque de conflit avec le thème parent puisqu’elles n’ont jamais été déclarées auparavant. Par contre, quand il faut modifier des fonctions présentes dans le thème parent, c’est un peu plus délicat. En effet, le fichier functions.php du thème parent n’est pas « écrasé » par celui de l’enfant. Par conséquent, si on déclare une fonction déjà présente dans le fichier functions.php du thème parent dans celui du thème enfant, une erreur fatale sera déclenchée. Pour écraser le comportement d’un hook WordPress apporté par une fonction du thème parent à partir du thème enfant, voici un modèle de base que l’on pourrait insérer dans le fichier functions.php d’un thème enfant :

Ajout d'un Custom Post Type à la fonction wp_get_archives de WordPress. La fonction wp_get_archives() de WordPress permet de récupérer une liste basée sur la date des archives. Par défaut, la fonction affiche toutes les dates des articles de type « Post » sur une même page. Pour ajouter un ou plusieurs custom post type à ces archives, nous allons changer le filtre getarchives_where qui permet de modifier le comportement de la requête SQL de la fonction wp_get_archives().

Copier le code suivant dans le fichier functions.php de votre thème et remplacer CUSTOM_POST_TYPE_NAME de la ligne 5 par le ou les slugs de vos custom post type : Source : WP-Snipp. Ajouter une class CSS aux fonctions next et previous_post_link. Ajouter une class CSS à la fonction the_tags de WordPress. Exclure la miniature d'une galerie dans un article WordPress. Lors du développement d’un thème personnalisé, je devais récupérer et afficher toutes les images attachées d’un article. Ces images permettront par la suite de créer une galerie photo. De plus, il fallait faire en sorte que l’image à la une de l’article ne soit pas présente dans cette galerie. Grâce à la configuration des paramètres de la fonction get_children() de WordPress, il est facile de se procurer les images d’un article tout en excluant l’image à la une. Copier le code ci-dessous dans le fichier single.php de votre thème à l’endroit où la galerie doit être affichée : <? Grâce à la clé 'exclude' du tableau passé en argument de la fonction get_children(), on a pu préciser qu’on ne devait pas prendre en compte l’image à la une de l’article dont l’ID a été récupéré à l’aide de la fonction get_post_thumbnail().

Afficher uniquement les articles WordPress avec une image à la une. En fonction de la thèmatique de votre site, il se peut que vos articles soient obligatoirement accompagnés d’une image à la une. Dans ce cas, il serait judicieux d’optimiser la requête affichant vos articles en lui indiquant la contrainte suivante : « tu dois récupérer les articles qui contiennent une image à la une ». Pour cela, on utilise les arguments 'meta_key', 'meta_value_num' et 'meta_compare' de la fonction query_posts().

Dans l’exemple ci-dessous, on affiche le titre et l’image à la une des articles qui en possèdent une : <? A noter que cette astuce peut servir pour la création d’un carrousel composé d’articles avec une image à la une. Liste d'articles WordPress en 2 colonnes. Lorsque l’on veut mettre l’aperçu de ses articles sur 2 colonnes, un problème survient s’il n’y a pas de hauteur à la div qui contient l’aperçu. En effet, les blocs se positionnent par rapport au float de cette div, donc si vous avez 3 articles sur votre page et que le deuxième article à une hauteur plus petite que le premier article alors le troisième article sera affiché en dessous du second article.

Pour parer ce problème il y a une astuce toute simple à mettre en place : l’utilisation du modulo (%). Commencez par créer une variable $i = 0; avant la boucle WordPress, une fois dans cette boucle, incrémenter votre variable $i ($i++). Votre boucle doit maintenant contenir une div conteneur qui contiendra l’aperçu de votre article (exemple : <div class=’post-preview’>Votre contenu</div>), cette div sera flottante sur la gauche avec une marge à gauche et une largeur. Voici un code complet pour appuyer la théorie : <?

Le CSS : Exemple de rendu en 2 colonnes. Image par défaut dans vos articles WordPress. Nombre d'articles et de commentaires d'un auteur en dehors de la loop WordPress. Si vous cherchez une fonction qui permet d’afficher le nombre d’articles et de commentaires postés par un auteur en dehors de la loop WordPress, alors cette astuce est faite pour vous Copiez le code ci-dessous dans le fichier functions.php de votre thème : function get_posts_and_comments_count() { global $wpdb; // On récupère l'id de l'auteur $user_id = get_the_author_meta( 'ID' ); // On construit la requete pour récupérer le nombre de commentaire $comment_count = $wpdb->get_var( 'SELECT COUNT( * ) AS total FROM ' . $wpdb->comments . ' WHERE comment_approved = 1 AND user_id = ' . $user_id ); // On récupère le nombre d'articles de l'auteur $user = get_userdata($user_id); $post_count = get_usernumposts($user->ID); echo $user->display_name . ' a écrit ' .

$post_count .' article(s) et posté ' . $comment_count . ' commentaire(s)'; } if( have_posts() ) : while( have_posts() ) : the_post();// ICI ON MET LE RESTE DE NOTRE CODEendwhile; endif; Afficher un lien "Lire la suite" aux extraits WordPress. Ajouter un lien de connexion au menu personnalisé de WordPress. Depuis la version 3.0, WordPress a considérablement simplifié l’ajout d’un menu grâce à une interface d’administration intuitive. On peut ajouter des pages, des catégories et des liens personnalisés. Cependant, comment doit-on faire pour insérer un lien permettant de se connecter ou se déconnecter ? Souvenez-vous de la fonction wp_logout() : elle permet d’afficher un lien de connexion ou de déconnexion lorsque l’utilisateur est connecté. C’est grâce à cette fonction et au filtre wp_nav_menu_items que nous allons pouvoir greffer notre lien de connexion ou de déconnexion.

Copiez le code ci-dessous dans le fichier functions.php présent à la racine de votre thème : add_filter('wp_nav_menu_items', 'gkp_add_login_logout_link', 10, 2);function gkp_add_login_logout_link($items, $args) { ob_start(); wp_loginout('index.php'); $loginout = ob_get_contents(); ob_end_clean(); $items .= '<li>'.

Sticky Custom Post Types : Mettre en avant les CPT sur WordPress. Sticky Posts de WordPress. Infinite Scroll avec jQuery sur WordPress. Désactiver les fichiers Javascript et CSS de Contact Form 7. Pagination WordPress sans plugin. Simple Pagination : Pagination avancée pour WordPress. Changer le nom et l'adresse d'expédition des emails sur WordPress. Créer un mode maintenance pour WordPress. Gravatar comme favicon sur WordPress. Indisponibilité temporaire pour cause de maintenance... Mise en cache des fichiers CSS sur WordPress. Supprimer la variable ?ver=3.x des fichiers JS et CSS de WordPress. Récupérer l'ID d'un article WordPress à partir de son titre. Récupérer le rôle de l'auteur dans un article WordPress. Ajouter un lien "Accueil" au menu personnalisé de WordPress.

Insérer des fichiers JavaScript dans le footer sur WordPress. Ajouter les fichiers CSS dans le header de WordPress. Ajouter tinyMCE au champ Extrait de WordPress. Ajouter un extrait aux pages WordPress en 1 ligne de code.