Category

Aide et astuces

fichiers de templates de Wordpress

Les fichiers de templates de WordPress

By | Aide et astuces, Thèmes Wordpress | One Comment

Une liste complète des fichiers de templates de WordPress pour bien commencer son développement « front ».

Un thème WordPress est composé de templates qui correspondent à des fichiers PHP permettant de générer et d’afficher le contenu d’un site.

La plupart du temps les fichiers de templates de WordPress sont utilisés sur toutes les pages, tel que header.php pour l’en-tête, footer.php pour le pied de page, ou encore sidebar.php pour afficher la barre latérale.

Les autres fichiers affichent un contenu dans des conditions spécifiques, tel que 404.php lorsque l’on tente d’accéder à une page qui n’existe pas.

Le dossier contenant le templates d’un thème doit impérativement être placé dans le dossier /wp-content/themes/.

front-page.php
ou home.php
Page d’accueil du site
index.php Template par défaut, il est utilisé en dernier recours. Ce fichier est obligatoire lors de la déclaration d’un thème.
header.php Contient toutes les balises d’en-tête et meta d’un thème.
footer.php Pied de page d’un thème.
sidebar.php Barre latérale contenant les widgets.
archive.php Liste des articles classés par moi.
category.php Liste des articles d’une catégorie.
tag.php Liste des articles portant un mot-clé.
taxonomy.php Liste des articles d’une taxonomie.
attachement.php Fichier attaché à un articles ou une page.
page.php Contenu d’une page (fichier par défaut).
single.php Contenue d’un article.
author.php Article d’un auteur.
search.php Résultats d’une recherche
404.php Page d’erreur 404 lorsqu’une page n’est pas trouvée.
comments.php Affiche les commentaires des internautes.
functions.php Fichier de gestion du thème, permetant de gérer et d’utiliser les hooks de WordPress.
style.css Fichier pour déclarer et styler le thème WordPress.
screenshot.png Image d’aperçu du thème dans l’administration Apparence -> Thèmes. Dimentions: 300 x 225px.

Plus d’infos sur le site officiel de WordPress: http://codex.wordpress.org/Template_Hierarchy

Sécuriser WordPress dès l’installation

By | Aide et astuces, Plugin Wordpress, sauvegarde wordpress, Wordpress 3.6 | 3 Comments

Sécuriser WordPress dès l’installation est primordial. Avec une popularité toujours croissante, beaucoup de sites Web créés avec WordPress sont victimes d’attaques en tout genre.

L’objectif de cet article est d’adopter les bons réflex pour sécuriser WordPress dès l’installation, car une telle entreprise après installation est déjà trop tard.

Etape 1 : Installer WordPress avec les premières sécurités

Télécharger la dernière version de WordPress sur le site office, est non sur des sites tiers. N’oubliez pas que WordPress est un logiciel libre de droit et que par conséquent, le code source est facile à modifier, donc à corrompre. Pour ceux qui sont sous Windows ou Mac OS X, préférer l’archive .zip pour les utilisateurs sous Linux, préférer l’archive en .tar.gz.

Décompressez l’archive, puis à l’aide d’un client FTP tel que Filezilla copiez le contenu du dossier /wordpress à la racine de votre site. Le dossier racine peut être différent d’un serveur à l’autre :

–          Sur un serveur Debian, comme dans l’article sur lequel nous avons déjà travaillé et qui vous permet de savoir comme installer un serveur lamp pour wordpress et ses dérivés tel que Ubuntu pour ne citer que la plus populaire, le chemin est /var/www/

–          Sur les serveurs Red Hat ses dérivés, le chemin est /srv/www/.

–          Sur les serveurs des hébergeurs comme 1&1, OVH, Amen… le chemin peut-être /www/ ou encore est /httpdocs/.

Vérifiez à présent les droits en lecture, écriture et exécution des dossiers et des fichiers:

–          Les dossiers doivent être en 755

–          Les fichiers doivent être en 644

A la racine de votre site figure un fichier nomé readme.html. Supprimez-le, car il pourrait fournir des informations précieuses aux hacker sur votre version de WordPress.

Attention ! Lors des mises à jour de WordPress, le fichier réaparait à chaque fois. Penssez à le supprimer après chaques mises à jours.

Créez à présent une base de données SQL. Ne pas utiliser le nom de votre site ou encore le nom de « wordpress »  pour votre base donnée. Ce nom est trop commun et trop simple.

Etape 2 : Configurer

Depuis votre navigateur Web, entrer le nom de domaine ou l’adresse IP du serveur web suivit de /wp-admin/install.php

Ex : www.serveur_web.com/wp-admin/install.php

Suivez l’assistant, puis remplissez les champs du premier formulaire avec les informations relatives à votre base de donnés. Pour le préfixe de la table, remplacez wp_ par autre chose. Peu importe le préfixe utilisé, le tout c’est qu’il soit différent.

Dans le second formulaire, à la ligne Identifiant remplacez admin par l’identifiant de votre choix. N’hésitez pas à utiliser des majuscules et des minuscules, les chiffres et les signes de ponctuation n’aident en rien à la sécurité.

Pourquoi les chiffres et les signes de ponctuation n’aident en rien à la sécurité de WordPress ? Un article est entièrement consacré à cette question.

Quant au mot de passe, depuis la  version 4.3 de WordPress un mot de passe (très) fort est proposé. N’hésitez pas à garder ce mot de passe. Dans le cas contraire, créez un mot de passe fort. N’oubliez pas que le compte administrateur a tous les droits.

Entrez à présent au tableau de bord de WordPress avec votre compte Administrateur. Ce compte ayant tous les droits, il est fortement conseillé de créer un nouvel utilisateur avec moins de privilèges : Utilisateur -> Ajouter. Avec comme précédemment un identifiant et un mot de passe digne de ce nom. Quant au Rôle, choisissez parmi : Abonné, Contributeur, Auteur ou Editeur, mais en aucun cas Administrateur.

Etape 3 : Renforcer la sécurité.

3.1 Protéger l’accès au fichier wp-config.php via .htaccess

Pour ceux qui n’ont pas accès au fichier de configuration d’Apache2, autrement dit ceux qui ne font pas d’auto-hébergent, ont un fichier .htaccess situé à la racine du site. Ajouter la ligne suivante empêchera un hacker de récupérer votre identifiant et mot de passe en cas de problèmes avec PHP sur le serveur.


<FilesMatch ^wp-config.php$>
    deny from all
</FilesMatch>

3.2 Restreindre l’accès au dossier wp-content et wp-content/uploads

Les dossiers wp-content et wp-content/uploads sont des emplacements de choix pour les hackeurs qui souhaiteraient placer des malware du type porte dérobé (backdoors). Ce script permet de bloquer l’exécution de fichiers PHP dans le répertoire où il se situe.

Dans le dossier wp-content  et wp-content/upload, créez un nouveau fichier .htaccess et ajoutez le code source suivant:

<FilesMatch "\.(?i:php)$">
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
    </IfModule>
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
</FilesMatch>

3.3 Restreindre l’accès au dossier wp-includes

Le dossier wp-include doit lui aussi faire l’objet de certaines restrictions. Créez un fichier .htaccess et ajoutez le code source suivant:

<FilesMatch "\.(?i:php)$">
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
    </IfModule>
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
</FilesMatch>

<Files wp-tinymce.php>
   Allow from all
</Files>
<Files ms-files.php>
   Allow from all
</Files>

Il s’agit du même code source que dans le paragraphe 3.2 à un détail près. Une exception est faite pour les modules wp-tinymce et ms-files qui eux sont des éléments essentiels à WordPress.

3.4 Cachez votre version de WordPress

La version de WordPress est une information précieuse pour les hackeurs. Alors cachons là !

Supprimer le fichier readme.html, situé à la racine. Dans ce fichier, est inscrit le numéro de version de WordPress.

Dans le fichier functions.php du thème ajoutez les lignes de code suivantes :

// Supprimez la balise « generator » visible depuis le code source des pages du site.
remove_action("wp_head", "wp_generator");

// Banaliser les erreurs de connexion de WordPress lorsque l’identifiant et/ou mot de passe sont incorrectes.
add_filter('login_errors',create_function('$erreur', "return 'Erreur de connexion';"));

// Supprimez la meta generator de votre flux RSS.
add_filter('get_the_generator_rss2', '__return_false');
add_filter('get_the_generator_atom', '__return_false');

Désactiver l’éditeur de thèmes et de plugin en ajoutant la ligne de code suivante dans le fichier wp-config.php:


define( 'DISALLOW_FILE_EDIT', true );

Etape 4 : La sécurité par les plugins

Des plugins peuvent contribuer à renforcer la sécurité de votre site, voici un échantillon des plus populaires :

Login LockDown,Limite le nombre de tentatives de connexions, et donc les attaques de type Brut force

Theme Authenticity Checker (TAC) permet de scanner un thème installé afin de vérifier qu’il ne contient pas de code malicieux.

WP Security Scan et Better WP Security, version bêta, pour déceler toutes les failles de sécurité de votre site.

HC Custom WP-Admin URL, pour personnaliser l’accès au wp-admin.

Sucuri Security, un plugin d’audit de sécurité et scanner de malwares.

Etape 5 : Dernies conseils de sécurité

Car il vaut mieux prévenir que guérir, quelques conseils avant de clôturer cet article.

Pensez à faire les mises à jour de WordPress :

Pour ceux qui auto-hébergent leur site, faites également les mises à jour système mais également du trio Apache2, MySQL et PHP. Sous Debian, dans un terminal en tant que root, taper la ligne de code suivante :

# apt-get update (pour la mise à jour la liste des dépôts)

# apt-get upgrade (pour la mise à jour les packages)

Sauvegarder régulièrement votre site WordPress et sa base de donné :

Pour sauvegarder WordPress, il suffit de conserver sur votre ordinateur une copie de l’intégralité des fichiers de votre site.

Pour sauvegarder la base de donné SQL, certains hébergeurs proposent ce type de service. Pour les autres, il est possible d’exporter la base de donné depuis PhpMyAdmin via le menu Exporter.

Ne téléchargez pas de thème gratuit provenant d’un autre site que celui de http://wordpress.org/themes/

Créer un shortcode pour Wordpress

Créer un shortcode pour WordPress

By | Aide et astuces, Plugin Wordpress, Thèmes Wordpress | No Comments

Créer un shortcode pour WordPress qui facilite l’affichage et le contrôle de modules HTML.

Les shortcodes sont à insérer dans un aticle ou une page à partir de l’éditeur Visuel ou Text de WordPress, puis transformés par l’API Shortcode.

Créer un shortcode simple

Pour qu’un shortcode soit opérationnel, il faut en premier lieu le déclarer dans le fichier function.php du thème actif ou bien dans l’un des fichiers source d’un plugin.

Créez d’abord une fonction qui retourne une chaine de caractères ou un module HTML, puis utilisez la fonction add_shortcode (voir fichier /wp-content/shortcodes.php ligne 89 pour plus d’infos) pour associer le shortcode à la fonction précédemment déclarée.


function first_shortcode() {

	return 'My first shortcode';

}

add_shortcode('first', 'first_shortcode');

Dans cet exemple, est créé un shortcode [first] qui sera remplacé par la chaine de caractères My first shortcode par l’API Shortcode.

Nota: La fonction return peut être substituée par echo. Toutefois, avec echo, il n’est pas possible d’insérer ce shortcode a l’intérieur d’un bloc HTML comme dans l’exemple ci-dessous:




This is [first] !


Car le contenu du shortcode s’affichera devant la balise p, comme ceci:


My first shortcodeThis is !

Créer un shortcode avec des attribus

Les shortcodes ne se placent pas forcément au millieu d’un bloc de texte. L’inverse est également possible. Dans l’exemple ci-dessous un shortcode transforme une portion de texte en lien hypertexte:

function url_cb($atts, $content = null) {
	extract(shortcode_atts(array(
		"href" => 'http://'
	), $atts));
	return '<a href=""' . $href . '">' . $content . '</a>';
}

add_shortcode( 'url', 'url_cb');

La fonction du shortcode doit être composée de deux arguments:

  • $atts: les attributs du shortcode dont les valeurs par défaut peuvent être définies à l’aide de la fonction shortcode_atts()
  • $content: contenu qui doit être inséré entre les balises ouvrantes et formantes du shortcode lors de sa déclaration dans l’éditeur de texte.

[url href='http://www.formation-wp.com']Créer un shortcode avancé[/url]

Utiliser un shortcode dans un template

WordPress propose une fonction appelée do_shortcode. Avec cette fonction il est possible d’utiliser n’importe quel shortcode au sein d’un template de thème mais aussi d’un fichier source de plugin.


<?php echo do_shortcode('[the_shortcode]'); ?>

Autoriser les shortcode dans les widgets

Par défaut, les widgets n’interprètent pas les shortcodes. Pour que le widget Texte puisse le faire, il suffit d’ajouter le code suivant dans le fichier function.php du thème actif.


if ( !is_admin() ) {

	add_filter('widget_text'. 'do_shortcode');

}

coupons de réductions Woocommerce

Créer des coupons de réductions Woocommerce

By | Aide et astuces, Plugin Wordpress, woocommerce | One Comment

Comment créer des coupons de réductions WooCommerce pour proposer des réductions à vos clients.

Les coupons de réductions WooCommerce appelés Codes promo dans sa version francophone, permettent aux e-commerçants de proposer des remises exceptionnelles à leurs clients.

Pour générer un code promo rendez-vous dans WooCommerce -> Codes Promo puis Ajouter un Code promo. Saisissez votre code dans le champ Code Promo. Le champ Description est peut être laissé vide.

En dessous, figure un menu à onglet vertical nommé Données Code Promo. C’est ici que l’on configure la promotion.

Dans l’exemple ci-dessous, le coupon de réductions WooCommerce permet d’obtenir une réduction de -20% sur l’ensemble du panier avec le code promo formation-wp et expire le 28/09/15.coupons de réductions Woocommerce

D’autres paramètres intéressants dans les onglet Restriction d’usage où il est possible de créer des conditions sur l’acceptation de la remise. Exemple: le panier doit attendre un montant minimum.

De même que Limite d’utilisation qui permet de créer une limite sur le nombre d’utilisations du code promo.

Pour éditer des coupons existants, retournez dans le menu WooCommerce -> Codes Promo puis cliquez sur le titre du code à modifier

payements en France pour WooCommerce

Les moyens de payements en France pour WooCommerce

By | Aide et astuces, woocommerce | No Comments

Tour d’horizon des différents moyens de payements en France pour WooCommerce, afin de commencer sont site e-commerce sur de bonne base.

Créer un site e-commerce avec le duo WordPress/WooCommerce est très simple et donc accéssible au plus grand nombre. Là où les choses se compliquent, c’est au moment de ratacher sont site e-commerce au compte courant de sa banque.
En effet, WordPress et WooCommerce sont des logiciels américains, il est donc pas supprenant de trouver une grande diversité de plugins et de service americains pour WooCommerce.
Et pourtant, c’est bien au millieu de cette jungle de plugins que l’on peut trouver des moyens de payement en France pour WooCommerce.

Note importante

Parmi les plugins proposés dans cet article, seul les plugins officiels WooCommerce et ceux reconnus comme étant fiables par WooCommerce seront présentés ici.

Formation-wp certifie n’avoir ancun partenariat ni même de faire du placement de produit. Pour rappel, l’objectif de cet article est bien de présenter différents moyents de payements en France pour WooCommerce, et non de convaincre ses lecteurs de choisir un plugins plutôt qu’un autre ni même de les faire changer de banque.

Les plugins WooCommerce

Nom Sources officiels Prix Surcouts par transactions Notes
Chèques Déjà inclus dans WooCommerce Gratuit Aucun Attention! en France, un chèque peut être refusé par votre banque deux semaines après son encaissement.
Paypal Déjà inclus dans WooCommerce Gratuit Avec un compte Paypal pro, il est possible de proposer le paiement par compte Paypal et par carte bancaire.
Payline Voir site officiel  Gratuit Voir site officiel
Ogone (ingenico) Voir site officiel
  • 79$ pour 1 site
  • 99$ pour 5 sites
  • 199$ pour 25 sites
Virement banquaire  Déjà inclus dans WooCommerce Gratuit Aucun Il faudra renseigner le SEPA (anciennement RIB/IBAN)
Payzen Voir site officiel  Gratuit Voir site officiel
Structure de la base de données Wordpress

Structure de la base de données WordPress

By | Aide et astuces, côté serveur | One Comment

La structure de la base de données WordPress se présente sous la forme de onze tables ayant le préfixe wp_.

Introduction

WordPress à besoin que d’une seule et unique base de données de type SQL pour fonctionner. La connexion à cette base de données s’effectue à l’aide de PDO, ce qui offre un large choix de système de gestion de base de données.

Seules les onze tables par défaut de WordPress sont citées ici.

Il est possible que des plugins aient créé d’autres tables voire même d’autres bases de données. Si un plugin créé de nouvelles tables elles porteront le même préfixe que celle de WordPress. Si un plugin créé une nouvelle base de données, elle est soumise à aucune restriction particulière.

Le préfixe wp_ est proposé par défaut durant l’installation. Il est fortement conseillé de le remplacer. En effet, dans le cas d’une injection SQL il est plus facile de cibler vos tables si elles ont gardé le préfixe par défaut.

 

Tour d’horizon des différentes tables

wp_commentmeta et wp_comments permettent la sauvegarde des commentaires sur les publications de site.

wp-links n’est plus utilisée aujourd’hui. Il y a quelques années de cela, le tableau de bord de WordPress proposé un menu appelé Liens. Il permettait d’ajouter toute une liste de liens et de les grouper par catégorie. C’est dans cette table que se trouvaient les liens.

wp_options contient les valeurs des paramètres du menu Réglages.

wp_postmeta et wp_posts contiennentt toutes les publications du site. Soit, les pages, les articles et le(s) menu(s). Depuis l’arrivée de la fonction Révision qui pour rappel permet de restaurer une page ou un article à une date antérieure, chaque version sauvegardée génère une nouvelle ligne dans la table wp_posts.

wp-term_relationships, wp_term_taxonomy et wp_terms contiennent les informations relatives aux catégories d’articles, aux mots-clés (tags) des articles, ainsi que leur lien avec les différents pages et articles.

wp_user et wp_usermeta. WordPress sépare dans deux tables les utilisateurs. wp_user contient la plupart des champs qu’il faut obligatoirement remplir pour créer un utilisateur. C’est dans cette table que figurent les noms, les adresses Email ainsi que les identifiants et mots de passe (encrypté) mais pas les Rôles. Les rôles quant à eux figurent dans wp-usermeta ainsi que les valeurs des champs non obligatoires.

rss-functions.php

Full Path Disclosure sur le fichier rss-functions.php

By | Aide et astuces, côté serveur, Sécurité, Wordpress 4.2 | One Comment

Full Path Disclosure ou (FPD) est un faille de sécurité qui concerne le fichier /wp-includes/rss-functions.php sur les sites WordPress.

 

Qu’es ce qu’une Full Path Disclosure ?

Il s’agit d’une vulnérabilités permettent de voir le chemin d’accès au webroot dans la fenêtre du navigateur. Si votre site est assujettie à cette faille, le simple fait de taper l’URL complète du fichier rss-functions.php (ex: http://site-wordpress.fr/wp-includes/rss-functions.php) affichera dans le navigateur une Fatal error ainsi que le chemin complet depuis la racine du serveur jusqu’à ce fameux fichier rss-functions.php.

 

Fatal error: Call to undefined function _deprecated_file() in /homepages/19/d253383552/htdocs/wp-includes/rss-functions.php on line 8

 

La faille FDP est executé en injectant un caractère inattendu à certains paramètres d’une page web. Le script défaillant, ne s’attendant pas à l’injection de ce caractère, retourne un message d’erreur dans lequel figure, le nom de la fonction PHP incriminé _deprecated_file(), le webroot /homepages/19/d253383552/htdocs/ ainsi que le numéro de ligne où se trouve la fonction line 8.

 

Quel sont les risques ?

Les vulnérabilités FPD sont généralement perçues comme des menaces à faibles risques. Toutes fois, il ne faut pas oublier que les messages d’erreurs sont des gardes fous, qui s’adressent aux développeurs afin qu’ils puissent garantir code stable et intègre et non aux utilisateurs.

 

Local File Include et injection SQL

La faille Local File Include (LFI) permet l’injection de fichier malveillant sur le serveur. Quant à l’injection SQL appelé aussi faille XSS, permet quant à elle d’injecter du code (écrit en JavaScript) malveillant interprété par le serveur.

Mais pour s’assurer que ces scripts malveillants pointent bien vers les bons fichiers, il est nécessaire de connaitre son emplacement dans l’arborescence.

Et c’est à ce moment précis qu’une petite faille du type Full Path Disclosure est la bienvenue. Devenant pour l’occasion un véritable mouchard.

Comment combler la faille ?

 

La faille Full Path Disclosure peut être facilement comblé en désactivant l’affichage des messages d’erreur par le serveur Apache. Deux méthodes sont possibles:

Depuis le fichier de configuration de PHP, /etc/php5/apache2/php.ini


display_errors = 'off'

Depuis le fichier de configuration d’Apache, /etc/apache2/apache2.conf


php_flag  display_errors  off

Nota: Les chemins mentionnés ci-dessus s’appliquent au système  Debian et ses dérivée tel que Ubuntu. Il est possible que ces chemins diffèrent en fonction du système d’exploitation utilisé.

 

Le cas 1&1

Pour une raison inconnu, les serveurs Web de chez 1&1 sont configurer avec l’option display_errors = ‘on’. Malheureusement il n’est pas possible de changer ce paramètre sur off.

Pour résoudre ce problème, deux autres méthodes sont encore exploitables.

  1. La suppression pur et simple du fichier rss-functions.php. En effet, ce fichier est une relique, remplacé depuis par rss.php lui aussi un déprécier et remplacé par class-simplepie.php. Si après cette suppression, un plugin ou une fonction du thème rencontre des difficultés avec les flux RSS, rétablissez le fichier rss-functions.php et préférez la seconde méthode.
  2. Editer le fichier rss-functions.php et y ajouter le code ci-dessous juste avant la fonction:

(isset($var) && is_array($var)) ? logfunction() : /*continue*/;

Moins conviviales et pouvant être considérées comme du rafistolage, ces deux dernières méthodes ont un inconvenant commun: Les mise à jour de WordPress. A chaque fois que WordPress est mis à jour, un nouveau fichier rss-functions.php est créé, écrasant à chaque fois vos modifications. C’est pourquoi, il faudra renouveler l’opération après chaque mise à jour.

 

marqueurs conditionnels de Wordpress

Les marqueurs conditionnels de WordPress

By | Aide et astuces, Plugin Wordpress, Thèmes Wordpress, Wordpress 4.2 | One Comment

Les marqueurs conditionnels de WordPress permettent d’agir différemment sur le rendu d’un thème en fonction d’une situation spécifique.

Qu’entent-on par une situation spécifique ?

Par exemple, si l’on utilise la sidebar pour faire de la taxonomie, autrement dit afficher du contenu différent dans la sidebar en fonction de la page où l’internaute se trouve, il va falloir créer un modèle de page spécifique dans lequel figurera un marqueur conditionnel.

Liste des marqueurs conditionnels de WordPress

Il n’est pas question ici de lister tous les marqueurs conditionnels car ils sont bien trop nombreux, non l’objectif est de présenter une liste des marqueurs conditionnels les plus utilisés. Une liste complète est disponible sur le codex officiel de WordPress.

Fonction Condition Arguments (optionnels)
is_single() un article (seul) id, slug ou titre d’un ou plusieurs articles
is_singular() un article ayant un Custom Post Type en particulier Slug d’un ou plusieurs Custom Post Type
is_sticky() un article déclaré comme Mis en avant id d’un article
is_attachment() une image, une vidéo, un son
is_page() une page id, slug ou titre d’une ou plusieurs pages
is_page_template() un template de page en particulier nom du fichier (ex: page-fullwidth.php)
is_preview() lorsque l’on prévisualise une page ou un article
is_post_type_archive() une archive d’un Custom Post Type
is_category() une archive d’une catégorie id, slug ou titre d’une ou plusieurs catégories
is_tag() une archive d’un tag id, slug, ou titre d’un ou plusieurs tags
is_tax() une archive d’une taxonomie id, slug ou titre d’une ou plusieurs taxonomie
is_author() une archive d’un auteur id, slug ou pseudo d’un ou plusieurs auteurs
is_search() un résultat de recherche
is_404 une page d’erreur 404
is_home() la page principal
is_front_page() la page d’accueil
is_admin une page du tableau de bord de WordPress

 

Dans la colonne Argument, le terme id correspond à l’identifiant (ex: ?p=202). Quant au Slug cela correspond à un identifiant unique figurant dans l’URL à la suite du nom de domaine.

ex: www.formation-wp.com/contact //ici, l’identifiant de la page est contact

Utilisation des marqueurs conditionnels de WordPress

Les marqueurs conditionnels de WordPress s’utilisent avec la fonction if

Exemple avec is_page():

if (is_page('contact')) {
    echo "C'est bien la page contact !";
}

Dans l’exemple ci-dessous, est retournée la chaine de caractère suivante C’est bien la page contact ! si l’on est bien dans la page contact.

exemple avec plusieurs conditions

Quant un marqueur conditionnel accepte de recevoir plusieurs arguments, il faut insérer ces arguments dans un array.

if (is_author(array('Jean', 'Jacques', 'Martin'))) {
    //do something
}

Faire une migration Drupal vers WordPress

By | Aide et astuces, Plugin Wordpress, Wordpress 4.2 | No Comments

Cet article s’adresse aux utilisateurs Drupal qui souhaiteraient faire une migration Drupal vers WordPress en toute simplicité.

Le but de ici n’est pas de d’énigrer Drupal ni même d’inciter qui que ce soit à rejoindre la communauté WordPress. Non, l’objectif est bien de présenter une solution simple pour tous ceux qui veulent/doivent faire une migration Drupal vers WordPress.

L’opération s’effectuera à l’aide d’un plugin WordPress nommé Drupal2Wordpress.

Prérequis

Côté WordPress:

  • Une version récente de WordPress installée.
  • Les accès FTP à votre blog WordPress, soit l’adresse FTP, l’identifiant et le mot de passe.
  • (Optionnel) le logiciel Git installé sur votre PC/Mac.

Côté Drupal:

  • Drupal 7.0 au minimum d’installé.
  • L’adresse IP du serveur MySQL.
  • Le nom de la base de données.
  • L’identifiant de la base de données.
  • Le mot de passe de la base de données.

Installation de Drupal2Wordpress

Drupal2Wordpress est un plugin développé par Jeremy Simkins , qui permet d’importer les pages, les articles, les commentaires, les utilisateurs, les catégories, les mots clé et même les médias.

Ce plugin n’a pas été publié sur le site officiel de WordPress, mais sur le dépo Git du développeur.

Télécharger le plugin au format ZIP ou bien clonez le dépo avec le logiciel Git. Dans le dossier racine (Drupal2WordPress-Plugin) se trouve un sous-dossier nommé drupal2wp. Copiez-le dans le dossier /wp-content/plugin de votre blog WordPress.

Il faut à présent activer le plugin. Pour cela, allez dans le tableau de bord de WordPress (http://votre-site.net/wp-admin), puis dans le menu Extensions. Le plugin doit apparaitre sur deux lignes comme ci-dessous:

migration Drupal vers WordPress 2

Si Drupal2Wordpress n’apparaît pas, c’est que les restrictions en lecture, écriture et exécutions sont trop restrictives, dans ce cas appliquer un chomd 775 au dossier drupal2wp.

Activez au minimum Drupal 2 WordPress et éventuellement Drupal 2 WordPress Page Tags Support pour importer également les tags (mots-clé) des pages Drupal.

Importation Drupal vers WordPress

Toujours depuis le tableau de bord de WordPress, allez dans Outils > Importer puis cliquez sur Drupal 2 WordPress.

Saisissez les informations demandées puis cliquez sur Proceed to Next Step.

Créer-un-plugin-Wordpress

Créer un plugin WordPress

By | Aide et astuces, Plugin Wordpress | No Comments

Le guide du développeur pour créer un plugin WordPress.

 Avant-propos

Pour créer un plugin WordPress, il est nécessaire de connaitre au minimum les bases des langages PHP et HTML. Il est bien entendu possible d’y ajouter d’autres langages tels que le CSS, JavaScript et XML pour ne citer que les plus couramment utilisés.

A ce jour, WordPress compte plus de 36 000 plugins.

 

Pour illustrer ce tutoriel, les exemples porteront sur un plugin nommé, formation-wp. Il ne possèdera pas de fonctionnalité particulière. Il peut être considéré comme un gabarit regroupant les indispensables pour créer un plugin WordPress.

L’arborescence des plugins

La première étape consiste à trouver un nom unique à votre plugin. Choisissez-le bien, car il figurera à différents endroits: dans le code est dans l’arborescence. De plus, si le plugin est voué à être publié sur le site officiel de WordPress, la publication de ce dernier pourrait être refusé si le nom est déjà pris.

Enfin, les plugins sont à placer dans le dossier /wp-content/plugins.

Le minimum vital

Créez un fichier PHP ayant pour nom celui du plugin (ici, formation-wp.php), ajoutez-y l’entête suivant:

<?php
/**
 * Plugin Name: Formation-WP.
 */

A ce stade, le plugin est considéré comme valide par WordPress. Il est désormais possible de taper du code à la suite de cet en-tête.

Pour aller plus loin

Bien que valide, notre plugin n’est pas suffisamment fourni pour être publié sur le site officiel de WordPress. L’en-tête du fichier formation-wp.php n’est pas complet et un fichier readme.txt manque à l’appel.

Dans la mesure où notre plugin contient plus d’un fichier, il faut également créer un dossier racine qui reprend le nom du plugin.

/wp-content
/plugins
/formation-wp
formation-wp.php
readme.txt

Reprenons l’entête du fichier formation-wp.php comme dans l’exemple ci-dessous:

<?php
/**
 * Plugin Name: Formation-WP.
 * Plugin URI: URL du site officiel du plugin.
 * Description: Description courte qui figurera dans le tableau de bord de wordpress
 * Version: 1.0.0
 * Author: Jeremy SPAETH
 * Author URI: URL du site de l'auteur.
 * Text Domain: Optionnel. Plugin's text domain for localization. Example: mytextdomain
 * Domain Path: Optionnel. Chemin relatif vers les fichiers de traduction .mo - Example: /languages/
 * Network: Optionnel. Valeurs: true/false. Si true, le plugin peut être activé/désactiver indépendamment sur chaque sites d'une structure Mulitsite.
 * License: Tout les plugins WordPress doivent être sous licence GPL2
*/

Pour ceux qui ont déjà eu l’opportunité de rédiger un fichier readme.txt savent que c’est une tache longue est ingrate. Heureusement le site GenerateWP se propose de le créer à votre place.

L’internalisation du plugin

Dans l’en-tête du fichier formation-wp.php il est mentionné l’informaiton Domain Path qui pour rappel indique le chemin relatif vers les fichiers de traduction. La ligne de code ci-dessous permet le chargement des fichiers .mo contenu dans le sous-dossier languages.


load_plugin_textdomain('your-unique-name', false, basename( dirname( __FILE__ ) ) . '/languages' );

Ressources externes

codex.wordpress.org

Template_Tags

Plugin_API