Category

Wordpress 4.2

Theme Wordpress gratuit en Material design

Theme WordPress gratuit en Material design

By | Le graphisme et wordpress, Thèmes Wordpress, Wordpress 4.2 | No Comments

Material Gaze est un theme WordPress gratuit en Material design. Basé sur le thème Stargazer, il reprend tous les codes du Material Design défini par Google.

Pour ceux qui ne connaissent pas encore le Material design, il s’agit d’un semble de règle de dessin établie par Google qui s’applique à la partie graphique des applications mobile (Android) et des sites Web.

Présenté en juin 2014 lors de la conférence Google I/O, commence doucement à conquérir le cœur des infographistes.

Pour ceux qui souhaitent rejoindre cette mouvance, voici un thème wordpress gratuit en Material design baptisé: Material Gaze.

Installation

Material Gaze, n’est pas un thème, mais un child theme (ou thème enfant) du thème Stargazer.

Par conséquant, il faut installé Stargazer et Material Gaze. Comme ils sont tous les deux gratuits, il est possible de lés installer de manière automatique.

Soit: Apparence -> Thèmes -> Ajout

Une fois Stargazer Material Gaze installé, activez Material Gaze.

Configuration

Les paramètres du thème se trouvent dans le menu Apparence -> Personnaliser et permettent d’effectuer les changements suivants:

Theme WordPress gratuit en Material design-2

  • Titre de site et slogan.
  • Disposition: choisissez entre quatre modèles de pages différents.
  • Couleurs: changez la couleur du texte d’en-tête, de l’arrière-plan ainsi que la couleur principale du thème.
  • Image d’en-tête: choisissez une image d’en-tête parmi les modèles proposés, ou bien choisissez une image personnelle.
  • Image d’arrière-plan: peur ceux qui n’ont pas pris la disposition 1 Column Wide, il est possible de changer l’image d’arrière-plan.
  • Navigation: trois emplacements sont prévus. Principal s’affichera en haut à droite, Secondaire juste au-dessus de l’image d’en-tête et Media sociaux dans le footer. Pour cet emplacement, créez un menu et placez-y des Liens vers vos pages de réseaux sociaux.
  • Widgets: un seul emplacement possible, il s’agit de la sidebare. Dans Disposition, l’option 2 Columns: Content / Sidebar ou 2 Columns: Sidebar / Content doit être activée.
  • Page d’accueil statique.

Ressources utiles

Tous savoir sur les thèmes enfants: Comment créer un thème enfant ?

Qu’est ce que le Material Design: Introduction au Material Design

WP-CLI

WP-CLI – Configurez WordPress en ligne de commande

By | côté serveur, Wordpress 4.2 | No Comments

WP-CLI est un petit fichier .phar, permettant la gestion de certaines tâches en ligne de commande.

WP-CLI est un logiciel qui s’adresse surtout au administrateurs systèmes qui doivent gérer un nombre conséquent de blog WordPress.
En effet ce couteau suisse en ligne de commande est le parfait compagnon pour manager l’installation de WordPress. Il est possible de mettre à jour les plugins, initialiser une installation multisite, et bien d’autres choses encore.

Prérequis

  • Un système d’exploitation de type UNIX (OS X, Linux, FreeBSD, Cygwin)
  • PHP 5.3.2 ou supérieur
  • WordPress 3.5.2 ou supérieur

Nota: pour les utilisateurs Windows, il faut savoir que WP-CLI n’est que partiellement compatible. Certaines commandes sont susceptibles de ne pas fonctionner.

Installation

Téléchargement du fichier via wget ou curl

# wget
$ wget https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

# curl
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Vérifiez qu’il n’y est pas erreurs

$ php wp-cli.phar --info

Si aucune erreur n’est retourné, il est à présent possible d’utiliser WP-CLI en ajoutant php wp-cli.phar avant chaque ligne de commande.
Pour une installation plus ergonomique, poursuivez les instructions suivantes.

Pour ne taper que wp au lieu de php wp-cli.phar il est nécessaire de créer un exécutable et de le placer dans un dossier où l’utilisateur système pourra l’exécuter.

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

# pour vérifier que tous fonctionne bien
$ wp --info

Pour ajouter l’auto complétion via la touche tabulation, télécharger le fichier <a href= »https://raw.githubusercontent.com/wp-cli/wp-cli/master/utils/wp-completion.bash » target= »_blank » title= »wp-completion.bash »>wp-completion.bash</a> puis ajouter-le comme fichier source dans <strong>~/.bash_profile</strong>

# téléchargement de wp-completion.bash
$ wget https://raw.githubusercontent.com/wp-cli/wp-cli/master/utils/wp-completion.bash

# Ajout de la source dans ~/.bash_profile
source /FULL/PATH/TO/wp-completion.bash

# Initialisation de la nouvelle source
$ source ~/.bash_profile

L’installation est à à présent complète. Tapé les lignes de commandes à la racine de WordPress ou dans l’un de ses sous-dossiers.

Quelques commandes utiles


# Afficher l'aide
$ wp help

# Installer un plugin (ex: hello dolly)
$ wp plugin install hello-dolly

Vérifier la présence de mises à jour de WordPress
$ wp core check-update

# Mise à jour de WordPress
$ wp core update

Toutes les commandes sont disponibles sur le site officiel.

Activer le protocole SSL sur votre site Wordpress

Activer le protocole SSL sur votre site WordPress

By | côté serveur, woocommerce, Wordpress 4.2 | No Comments

Cet article s’adresse à ceux qui souhaitent activer le protocole SSL sur votre site WordPress qui se trouve déjà en production.

Pourquoi activer le protocole SSL ?

Le protocole SSL pour Secure S Layer permet de crypter le téléchargent des pages. Ainsi, il n’est pas possible de récupérer au vol l’envoi de données d’un formulaire. Ce qui s’avère fortement utile pour les formulaires de payement sur les E-commerce.

De plus, Google et la fondation Mozilla (Firefox) encouragent les web-master à migrer du protocole HTTP à HTTPS.

Comment activer SSL ?

Avant de commencer, assurez-vous que la réécriture d’URL est bien active sur votre serveur (Apache2 mod_rewrite). et qu’il est possible d’éditer le fichier .htaccess ainsi que le fichier wp-config.php.

1. Côté serveur

L’activation propre dite du protocole SSL s’effectue sur le serveur. L’opération ne sera pas décrite ici car cela va dépendre de l’hébergeur de votre site. Toutefois il faut savoir que le cryptage des données s’effectue au moyen d’un certificat SSL qu’il faudra payer tous les ans.

2. Côté WordPress

La première étape consiste à mettre à jour l’URL de votre site. Rendez-vous dans la partie admin, allez dans Réglages -> Général puis dans les champs: Adresse web de WordPress (URL) et Adresse web du site (URL) ajouter un (s) devant le http. Enregistrez les modifications.

Ouvrer le fichier .htaccess et mettez-le à jour en fonction de la configuration ci-dessous:


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.mon-site.fr/$1 [R,L]
</IfModule>

Pour ceux qui utilisent nginx pour leur serveur Web, ajoutez à la suite le code ci-dessous


server {
listen 80;
server_name yoursite.com www.yoursite.com;
return 301 https://yoursite.com$request_uri;
}

Cela permettra à nginx de faire des redirections 301 de l’ancienne URL vers la nouvelle. Apache2 gérant cela très bien, il n’est pas nécessaire d’y ajouter ces paramètres supplémentaires.

Dernière étape, le fichier wp-config.php. Ajouter la constante suivante :


define('FORCE_SSL_ADMIN', true);

Cela activera le protocole SSL dans l’admin du site.

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.

Automatiser les mises à jour sur WordPress

By | sauvegarde wordpress, Sécurité, Wordpress 3.7, Wordpress 4.2 | No Comments

L’une des grandes avancées de WordPress 3.7, c’est la mise à jour automatique du programme. S’il reste la mise à jour des plugins à faire, la mise à jour du CMS se fait automatiquement. Ceux qui utilisent la fonction recevront même un email directement dans leur BAT.

C’est désormais une nécessité depuis la version 4 de WordPress et des malheureuses, mais régulières failles de sécurité. Ne serait ce que la dernière faille de sécurité de wordpress en date qui n’était pas violente, à condition de faire la mise à jour 4.1.2 qui a permis de régler le problème tout de suite.

Cependant, une mise à jour doit être optimisé et ne doit pas vous bloquer votre site. C’est pourquoi que l’automatisme c’est bien, mais à condition de mettre en place un système de sauvegarde automatique de votre base de données, chaque semaine, qui permettra de vous aider si la mise à jour automatique fait planter WordPress.

D’autres ont préféré refuser ces automatismes pour avoir la main et garder le contrôle sur un éventuel plantage. Solution idéale c’est vrai, mais à condition d’avoir un seul site à gérer. Nous qui en avons une centaine, c’est plus compliqué.

Dans ce cas précis on organise en parallèle des sauvegardes automatiques, le nécessaire pour connaître les sites à risque et les autres.

Du coup, les automatismes, nous les réglons à la main : Démarrons par la plus simple, le réglage des mises à jour plugins et thèmes:

Pour cela il faut aller dans le fichier functions.php, pour rajouter les deux lignes suivantes:

add_filter( 'auto_update_plugin', '__return_true' ); // Plugins
add_filter( 'auto_update_theme', '__return_true' ); // Thèmes

La première ligne activera la mise à jour automatique des plugins, la deuxième la mise à jour automatique des thèmes.

 

Ensuite, le réglage du core, des réglages plus avancés et bien précis.

Pour activer les mises à jour mineures:

add_filter (‘allow_dev_auto_core_updates’, ‘__return_true’);

Pour l’activation des mises à jour majeures:

add_filter (‘allow_major_auto_core_updates’, ‘__return_true’);

Attention, à bien noter : Si les mises à jour majeures sont plus importantes dans le fonctionnement du site, les mises à jour mineures sont souvent des mises à jour d’ajustement et de sécurité : Donc si la différence est faite pour wp, nous vous conseillons d’activer les deux, et même plus les mises à jours mineures, security first !