<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WordPress Channel &#187; Base de données</title>
	<atom:link href="http://wpchannel.com/category/tutoriels-wordpress/base-donnes-mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://wpchannel.com</link>
	<description>Tutoriels, thèmes &#38; plugins WordPress</description>
	<lastBuildDate>Thu, 17 May 2012 08:39:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Recalculer les compteurs d&#8217;utilisateurs dans l&#8217;administration de WordPress</title>
		<link>http://wpchannel.com/recalculer-compteurs-utilisateurs-administration-wordpress/</link>
		<comments>http://wpchannel.com/recalculer-compteurs-utilisateurs-administration-wordpress/#comments</comments>
		<pubDate>Sat, 17 Mar 2012 09:54:44 +0000</pubDate>
		<dc:creator>Julio Potier</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Tutoriels WordPress]]></category>
		<category><![CDATA[Astuces PHP]]></category>
		<category><![CDATA[Correction de bugs]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://wpchannel.com/?p=12743</guid>
		<description><![CDATA[Supprimer un compte utilisateur de WordPress depuis la base de données entraîne un curieux bug : les compteurs ne sont pas actualisés côté back office. 2 techniques pour corriger cela. Recalculer quoi !? Mais si, vous savez les compteurs des utilisateurs, &#8230; <a href="http://wpchannel.com/recalculer-compteurs-utilisateurs-administration-wordpress/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Supprimer un compte utilisateur de WordPress depuis la base de données entraîne un curieux bug : les compteurs ne sont pas actualisés côté back office. 2 techniques pour corriger cela.<span id="more-12743"></span></p>
<h2>Recalculer quoi !?</h2>
<p>Mais si, vous savez les compteurs des utilisateurs, triés par rôles dans la page des utiilsateurs de la partie administration !</p>
<div id="attachment_12752" class="wp-caption alignnone" style="width: 332px"><img class="size-full wp-image-12752" src="http://wpchannel.com/images/2012/03/baw_120316-1223261.png" alt="Capture d'écran - Comptes utilisateurs de WordPress" width="322" height="79" /><p class="wp-caption-text">Table des utilisateurs de WordPress</p></div>
<p>Il se peut que vous ayez un compteur indiquant (1) &#8211; ou 1 de trop, alors que vous n&#8217;avez pas &#8211; ou moins, de membre associé à ce rôle. Ici pour mon exemple, vous avez supprimé le compte <strong>Momo</strong> qui était <strong><a href="http://baw.li/modorole" target="_blank">Moderator</a></strong>.</p>
<p>Pourtant, WordPress continue de le prendre en compte.</p>
<h2>Comment est-ce possible ?</h2>
<p>Et bien, souvenez-vous !</p>
<p>Il se pourrait que vous soyez allé dans la base de données, avec <a href="http://www.phpmyadmin.net/home_page/index.php" target="_blank">phpMyAdmin</a> avec un <a href="http://wordpress.org/extend/plugins/portable-phpmyadmin/" target="_blank">plugin portable</a> par exemple, puis que vous ayez supprimé un utilisateur depuis la table <strong>wp_users</strong>.</p>
<p>Mais avez-vous supprimé les champs des données de cet utilisateur dans la table <strong>wp_usermeta</strong> ? Pas sûr&#8230;</p>
<p>Et c&#8217;est là tout le problème, car WordPress ne fait pas de lien entre le nombres de rôles trouvés dans les données utilisateur. Voici un extrait du core :</p>
<pre> * Count number of users who have each of the user roles.
 * Assumes there are neither duplicated nor orphaned capabilities meta_values.</pre>
<p>WordPress ne fait que compter les rôles trouvés dans la table <strong>wp_usermeta</strong> sans tester si l&#8217;utilisateur existe encore. Légitime quelque part car vous ne devez normalement pas intervenir de cette façon dans les tables de WordPress. En tout cas, à vos risques et périls&#8230;</p>
<p>La preuve, je suis ici pour vous en parler.</p>
<h2>Comment régler ce problème de compteur ?</h2>
<p>2 solutions comme souvent : une requête MySQL ou une fonction PHP.</p>
<h3>#1 &#8211; Exécuter une requête MySQL</h3>
<p>Ouvrez votre gestionnaire de base de données phpMyAdmin puis exécutez la requête suivante &#8211; en prenant soin de remplacer <strong>wp_</strong> par votre préfixe de base données WordPress :</p>
<pre>DELETE FROM wp_usermeta
WHERE user_id NOT IN ( SELECT concat( ID ) from wp_users )</pre>
<p>Cette requête va effacer tous les champs de la table <strong>wp_usermeta</strong> dont l&#8217;ID du membre associé n&#8217;est pas dans la table <strong>wp_users</strong>.</p>
<p>Autrement dit, les champs qui auraient dû être supprimés le seront ici !</p>
<h3>#2 &#8211; créer une fonction PHP</h3>
<p>Autre solution pour ceux qui sont frileux du phpMyAdmin ou qui n&#8217;y ont tout simplement pas d&#8217;accès, voici le code à copier dans le fichier <strong>functions.php</strong> de votre thème :</p>
<pre>function delete_bad_fields()
{
    global $wpdb;
    $wpdb-&gt;query( "DELETE FROM $wpdb-&gt;usermeta WHERE user_id NOT IN ( SELECT concat( ID ) from $wpdb-&gt;users )" );
}
add_action( 'admin_init', 'delete_bad_fields' );</pre>
<p>Puis raffraichissez le panneau administrateur. Si le requête s&#8217;exécute plusieurs fois, rien de grave, les prochaines fois ne servent juste à rien.</p>
<p>Vous pouvez supprimer le code de votre fichier maintenant !</p>
<h2>Comment prévenir ce problème à l&#8217;avenir ?</h2>
<p>Si effacer le membre n&#8217;est pas possible pour X raisons depuis l&#8217;administration de WordPress, exécutez alors ces 2 requêtes, ici pour l&#8217;utilisateur dont l&#8217;ID est 123 :</p>
<pre>DELETE FROM wp_users WHERE ID = 123

DELETE FROM wp_usermeta WHERE user_id = 123</pre>
<p>Ou pour dans votre <strong>functions.php</strong> :</p>
<pre>function delete_bad_fields()
{
    global $wpdb;
    $wpdb-&gt;query( "DELETE FROM $wpdb-&gt;users WHERE ID = 123" );
    $wpdb-&gt;query( "DELETE FROM $wpdb-&gt;usermeta WHERE user_id = 123" );
}
add_action( 'admin_init', 'delete_bad_fields' );</pre>
<p>Edit: <a href="http://www.screenfeed.fr/blog/" target="_blank">ScreenFeed</a> nous parle de <strong>wp_delete_user()</strong> qui a l&#8217;avantage de réassigner les articles à un autre utilisateur, excellente idée, voici le code :</p>
<pre>function delete_bad_fields_2()
{
    $delete_this_user_id = 123;
    $reassign_to_user_id = 1;
    $user_exists = new WP_User( $reassign_to_user_id );
    if ( $user_exists &amp;&amp;
         current_user_can( 'delete_user', $delete_this_user_id ) )
      wp_delete_user( $delete_this_user_id, $reassign_to_user_id );
}
add_action( 'admin_init', 'delete_bad_fields_2' );</pre>
<p><strong> Au terme de ce tutoriel, vous serez en mesure de résoudre ce problème de comptabilité. J&#8217;attends vos commentaires avec impatience !</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://wpchannel.com/recalculer-compteurs-utilisateurs-administration-wordpress/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>3 techniques pour réinitialiser votre mot de passe WordPress</title>
		<link>http://wpchannel.com/remise-zero-mot-passe-wordpress/</link>
		<comments>http://wpchannel.com/remise-zero-mot-passe-wordpress/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 18:30:07 +0000</pubDate>
		<dc:creator>Aurélien Denis</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Tutoriels WordPress]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://wpchannel.com/?p=12411</guid>
		<description><![CDATA[En cas de perte de mot de passe, WordPress dispose d&#8217;une fonction de renvoi par mail. Mais comment faire lorsque vous n&#8217;avez plus accès à votre boite mail et que toutes les possibilités de récupération sont épuisées ? Intervenir dans la &#8230; <a href="http://wpchannel.com/remise-zero-mot-passe-wordpress/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En cas de perte de mot de passe, WordPress dispose d&#8217;une fonction de renvoi par mail. Mais comment faire lorsque vous n&#8217;avez plus accès à votre boite mail et que toutes les possibilités de récupération sont épuisées ? Intervenir dans la base de données MySQL !</p>
<p><span id="more-12411"></span></p>
<h2>#1 &#8211; Réinitialisation du mot de passe WordPress via phpMyAdmin</h2>
<p>Connectez-vous dans un premier temps à phpMyAdmin via le lien fourni par votre hébergeur (panneau de contrôle cPanel, Plesk ou autre).</p>
<p>Passez en mode structure puis modifier la table <strong>wp_users</strong>.</p>
<p>Localisez le compte dont vous souhaitez changer le mot de passe à l&#8217;aide de la colonne <strong>user_login</strong>. Faites <strong>Modifier</strong>.</p>
<div id="attachment_12490" class="wp-caption alignnone" style="width: 356px"><img class="size-full wp-image-12490" title="Changement du mot de passe" src="http://wpchannel.com/images/2012/01/wordpress-password-reset-1.jpg" alt="Capture d'écran - Modification de la base" width="346" height="136" /><p class="wp-caption-text">Modification de wp_users</p></div>
<p>Notez qu&#8217;il vous sera impossible de connaître le mot de passe actuellement en place.</p>
<p>A la ligne <strong>user_pass</strong>, inscrivez votre nouveau de mot de passe puis sélectionnez <strong>MD5</strong> dans la liste déroulante.</p>
<div id="attachment_12489" class="wp-caption alignnone" style="width: 531px"><img class="size-full wp-image-12489" title="Inscription du nouveau mot de passe WordPress" src="http://wpchannel.com/images/2012/01/wordpress-password-reset-2.jpg" alt="Capture d'écran - Saisie d'un nouveau mot de passe" width="521" height="57" /><p class="wp-caption-text">Mot de passe WordPress crypté</p></div>
<p>Validez en cliquant sur <strong>Exécuter</strong>.</p>
<p>Connectez-vous au back office de WordPress à l&#8217;aide du nouveau mot de passe.</p>
<h2>#2 &#8211; Réinitialiser votre mot de passe WordPress via FTP</h2>
<p>Il existe une commande PHP permettant de remettre à zéro un mot de passe WordPress à condition de connaître l&#8217;identifiant&#8230;. et son ID.</p>
<p>L&#8217;administrateur du site est toujours le premier compte ce qui facilite grandement les choses &#8211; avec un compte admin vous pourrez modifier n&#8217;importe quel autre compte utilisateur.</p>
<p>Ouvrez le fichier <strong>functions.php</strong> présent dans le dossier du thème sous <strong>/wp-content/themes/NOM_DU_THEME/</strong> en effectuant une sauvegarde au préalable.</p>
<p>Placez ensuite les lignes de code suivantes en début de fichier :</p>
<pre>&lt;?php
$user_id = 1;
$password = 'nouveaumdp';
wp_set_password( $password, $user_id );
?&gt;</pre>
<p>Sauvegardez le fichier puis ouvrez la page de connexion. Avant de valider supprimez immédiatement ces lignes de code sans quoi le mot de passe sera réinitialisé à chaque chargement de page et donc à la connexion proprement dite.</p>
<p>Si vous oubliez de les retirer vous resterez bloqué sur la page de connexion tout simplement.</p>
<h2>#3 &#8211; Réinitialiser votre mot de passe via un script PHP</h2>
<p>Comme indiqué par l&#8217;auteur de ce script PHP, utilisez cette méthode à vos risques et périls !</p>
<p>Personnellement, je l&#8217;ai testé en local sur la version 3.3.1 de WordPress et&#8230; elle fonctionne parfaitement donc là voici en détails.</p>
<p>A l&#8217;aide de votre éditeur de texte favori, créer un fichier que vous nommerez <strong>emergency.php</strong> puis collez-y les lignes suivantes :</p>
<pre>&lt;?php
/*
	This program is free software; you can redistribute it and/or modify
    	it under the terms of the GNU General Public License as published by
    	the Free Software Foundation; either version 2 of the License, or
    	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
    	but WITHOUT ANY WARRANTY; without even the implied warranty of
    	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
    	along with this program; if not, write to the Free Software
    	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

require('./wp-blog-header.php');

function meh() {
global $wpdb;

		if (isset($_POST['update']))
		{
			$user_login = ( empty( $_POST['e-name'] ) ? '' : sanitize_user( $_POST['e-name'] ) );
			$user_pass  = ( empty( $_POST[ 'e-pass' ] ) ? '' : $_POST['e-pass'] );
			$answer = ( empty( $user_login ) ? '&lt;div id="message"&gt;&lt;p&gt;&lt;strong&gt;The user name field is empty.&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;' : '' );
			$answer .= ( empty( $user_pass ) ? '&lt;div id="message"&gt;&lt;p&gt;&lt;strong&gt;The password field is empty.&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;' : '' );
			if ( $user_login != $wpdb-&gt;get_var("SELECT user_login FROM $wpdb-&gt;users WHERE ID = '1' LIMIT 1") )
			{
				$answer .="&lt;div id='message' class='updated fade'&gt;&lt;p&gt;&lt;strong&gt;That is not the correct administrator username.&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;";
			}
			if( empty( $answer ) )
			{
				$wpdb-&gt;query("UPDATE $wpdb-&gt;users SET user_pass = MD5('$user_pass'), user_activation_key = '' WHERE user_login = '$user_login'");
				$plaintext_pass = $user_pass;
				$message = __('Someone, hopefully you, has reset the Administrator password for your WordPress blog. Details follow:'). "\r\n";
				$message  .= sprintf(__('Username: %s'), $user_login) . "\r\n";
				$message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n";
				@wp_mail(get_option('admin_email'), sprintf(__('[%s] Your WordPress administrator password has been changed!'), get_option('blogname')), $message);
$answer="&lt;div id='message' class='updated fade'&gt;&lt;p&gt;&lt;strong&gt;Your password has been successfully changed&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;An e-mail with this information has been dispatched to the WordPress blog administrator&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;You should now delete this file off your server. DO NOT LEAVE IT UP FOR SOMEONE ELSE TO FIND!&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;";
			}
		}

		return ( empty( $answer ) ? false : $answer );
	}

$answer = meh();
?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;title&gt;WordPress Emergency PassWord Reset&lt;/title&gt;
&lt;meta http-equiv="Content-Type" content="&lt;?php bloginfo('html_type'); ?&gt;; charset=&lt;?php bloginfo('charset'); ?&gt;" /&gt;
	&lt;link rel="stylesheet" href="&lt;?php bloginfo('wpurl'); ?&gt;/wp-admin/wp-admin.css?version=&lt;?php bloginfo('version'); ?&gt;" type="text/css" /&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div&gt;
  	&lt;form method="post" action=""&gt;
&lt;h2&gt;WordPress Emergency PassWord Reset&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Your use of this script is at your sole risk. All code is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness. Further, I shall not be liable for any damages you may sustain by using this script, whether direct, indirect, special, incidental or consequential.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This script is intended to be used as &lt;strong&gt;a last resort&lt;/strong&gt; by WordPress administrators that are unable to access the database.
Usage of this script requires that you know the Administrator's user name for the WordPress install. (For most installs, that is going to be "admin" without the quotes.)&lt;/p&gt;
&lt;?php
echo $answer;
?&gt;
&lt;p&gt;&lt;input type="submit" name="update" value="Update Options" /&gt;&lt;/p&gt;

&lt;fieldset&gt;
&lt;legend&gt;WordPress Administrator&lt;/legend&gt;
&lt;label&gt;&lt;?php _e('Enter Username:') ?&gt;&lt;br /&gt;
		&lt;input type="text" name="e-name" id="e-name" value="&lt;?php echo attribute_escape(stripslashes($_POST['e-name'])); ?&gt;" size="20" tabindex="10" /&gt;&lt;/label&gt;
&lt;/fieldset&gt;
&lt;fieldset&gt;
&lt;legend&gt;Password&lt;/legend&gt;
&lt;label&gt;&lt;?php _e('Enter New Password:') ?&gt;&lt;br /&gt;
		&lt;input type="text" name="e-pass" id="e-pass" value="&lt;?php echo attribute_escape(stripslashes($_POST['e-pass'])); ?&gt;" size="25" tabindex="20" /&gt;&lt;/label&gt;
&lt;/fieldset&gt;

	&lt;p&gt;&lt;input type="submit" name="update" value="Update Options" /&gt;&lt;/p&gt;
  	&lt;/form&gt;
	&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;

&lt;pre&gt;</pre>
<p>Envoyez ce fichier à la racine de votre serveur &#8211; au même niveau que le célèbre fichier <strong>wp-config.php</strong>.</p>
<p>Ouvrez votre navigateur Internet puis lancez le script en indiquant http://monsite.com/emergency.php comme URL &#8211; prenez soin de remplacer le domaine par le votre.</p>
<p>Changez le mot de passe à l&#8217;aide du formulaire en spécifiant dans un premier temps l&#8217;identifiant administrateur.</p>
<div id="attachment_12493" class="wp-caption alignnone" style="width: 444px"><img class="size-full wp-image-12493" title="WordPress Emergency PassWord Reset" src="http://wpchannel.com/images/2012/01/wordpress-reset-script-password.jpg" alt="Capture d'écran - Remise à zéro mot de passe WordPress" width="434" height="400" /><p class="wp-caption-text">En cas d&#39;urgence, appelez le script PHP !</p></div>
<p>Indiquez le nouveau mot de passe puis faites <strong>Update Options</strong>.</p>
<p>Supprimez immédiatement le script <strong>emergency.php</strong> présent sur votre serveur. Notez que vous recevrez le nouveau de mot de passe sur la boite mail du compte administrateur &#8211; ce qui peut poser un risque de sécurité si votre compte a été piraté.</p>
<p>Si vous le préférez, le fichier PHP est disponible en téléchargement direct :</p>
Note: There is a file embedded within this post, please visit this post to download the file.
<p><strong>Avec les 3 techniques de remise à zéro de mot de passe WordPress évoquées ici, vous devriez être en mesure de faire face à toutes les situations. Vous connaissez d&#8217;autres méthodes alternatives de réinitialisation ? Partagez-les !</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://wpchannel.com/remise-zero-mot-passe-wordpress/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Augmenter la limite du champ description des liens sous WordPress</title>
		<link>http://wpchannel.com/augmenter-limite-champ-description-liens-wordpress/</link>
		<comments>http://wpchannel.com/augmenter-limite-champ-description-liens-wordpress/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 10:00:16 +0000</pubDate>
		<dc:creator>Aurélien Denis</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Tutoriels WordPress]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://wpchannel.com/?p=10500</guid>
		<description><![CDATA[Le module Liens de WordPress vous permet de gérer facilement une bibliothèque de favoris en vue de les diffuser sur votre blog. Un champ Description nous permet de renseigner des infos qui apparaîtront sous forme d&#8217;infobulle. Seul problème : ce &#8230; <a href="http://wpchannel.com/augmenter-limite-champ-description-liens-wordpress/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Le module Liens de WordPress vous permet de gérer facilement une bibliothèque de favoris en vue de les diffuser sur votre blog. Un champ Description nous permet de renseigner des infos qui apparaîtront sous forme d&#8217;infobulle. Seul problème : ce champ est limité à 255 caractères. Voyons comment l&#8217;augmenter drastiquement via une intervention dans la base de données.<span id="more-10500"></span><br />
<em><strong>N.B</strong> : nous allons devoir intervenir dans la base de données MySQL de WordPress via l&#8217;outil phpMyAdmin. Je vous recommande vivement d&#8217;<a title="Sauvegarder automatiquement votre base de donnees MySQL" href="http://wpchannel.com/sauvegarder-automatiquement-base-donnees-mysql/">effectuer une sauvegarde complète de votre base</a> avant toute intervention. Une erreur de manipulation est si vite arrivée.</em></p>
<p>Connectez-vous dans un premier temps sur <strong>phpMyAdmin</strong>. Inutile de me demander la méthode officielle de connexion&#8230; elle dépend directement de votre hébergeur. Recherchez donc un module si rapprochant ou demandez de l&#8217;aide à ce dernier.</p>
<p>Modifiez ensuite la table intitulée <strong>wp_links</strong>.</p>
<div class="wp-caption alignnone" style="width: 570px"><img class="  " title="Modification de la table wp_links de WordPress" src="http://wpchannel.com/wp-content/uploads/tutoriels/php-my-admin-links-1.jpg" alt="Capture d'écran - Edition de la base dans phpMyAdmin" width="560" height="196" /><p class="wp-caption-text">Edition de la table wp_links</p></div>
<p>Cliquez à présent sur le bouton <strong>Modifier</strong> &#8211; en forme de crayon, pour <strong>link_description</strong>.</p>
<div class="wp-caption alignnone" style="width: 429px"><img title="Edition de la table link_description" src="http://wpchannel.com/wp-content/uploads/tutoriels/php-my-admin-links-2.jpg" alt="Capture d'écran - Modification du champ link_description" width="419" height="257" /><p class="wp-caption-text">Augmentez la valeur du champ au-delà de 255</p></div>
<p>Entrez une nouvelle valeur dans le champ <strong>Taille</strong>. Agissez en fonction de vos besoins mais n&#8217;indiquez pas une valeur exponentielle car cela augmentera inutilement la taille de votre base.</p>
<p>Pour confirmer le changement, cliquez sur le bouton <strong>Sauvegarder</strong>.</p>
<p><strong>Le champ description du module Liens est à présent capable d&#8217;accueillir plus de données. Les plus accros d&#8217;entre nous appliqueront une modification CSS dans l&#8217;admin pour augmenter visuellement la taille du champ&#8230; ce sera pour un prochain tutoriel !</strong></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://wpchannel.com/augmenter-limite-champ-description-liens-wordpress/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Modifier le préfixe de votre base de données WordPress après installation</title>
		<link>http://wpchannel.com/modifier-prefixe-base-donnees-wordpress-apres-installation/</link>
		<comments>http://wpchannel.com/modifier-prefixe-base-donnees-wordpress-apres-installation/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 23:30:42 +0000</pubDate>
		<dc:creator>Aurélien Denis</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Tutoriels WordPress]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Podcasts WordPress]]></category>

		<guid isPermaLink="false">http://wpchannel.com/?p=10316</guid>
		<description><![CDATA[Laisser le préfixe de votre base de données MySQL sur sa valeur par défaut, à savoir wp_, constitue un risque de sécurité pour votre installation WordPress. Si vous ne l&#8217;avez jamais changé, suivez donc ce tutoriel simple et rapide. N.B &#8230; <a href="http://wpchannel.com/modifier-prefixe-base-donnees-wordpress-apres-installation/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Laisser le préfixe de votre base de données MySQL sur sa valeur par défaut, à savoir wp_, constitue un risque de sécurité pour votre installation WordPress. Si vous ne l&#8217;avez jamais changé, suivez donc ce tutoriel simple et rapide.</p>
<p><iframe src="http://www.youtube.com/embed/9WYnxIVgsJw?hd=1" frameborder="0" width="585" height="468"></iframe><br />
<span id="more-10316"></span><em><strong></strong></em></p>
<p><em><strong>N.B</strong> : avant toute intervention dans votre base de données WordPress, faites une <a title="Sauvegarder automatiquement votre base de donnees MySQL" href="http://wpchannel.com/sauvegarder-automatiquement-base-donnees-mysql/">sauvegarde complète</a> !</em></p>
<h2>Étape n°1 &#8211; Édition du fichier wp-config.php</h2>
<p>Situé à la racine de votre serveur FTP, le fichier wp-config.php abrite les identifiants de connexion à la base de données.</p>
<p>Ainsi, localisez la ligne suivante qui contient le préfixe des tables de la base :</p>
<pre>$table_prefix  = 'wp_';</pre>
<p>Il s&#8217;agit donc de modifier la valeur par défaut fixée sur <code>wp_</code></p>
<div class="wp-caption alignnone" style="width: 350px"><img title="Edition du fichier wp-config.php" src="http://wpchannel.com/wp-content/uploads/tutoriels/wordpress-database-prefixe-1.jpg" alt="Capture d'écran - Modification du préfixe de base dans le wp-config.php" width="340" height="283" /><p class="wp-caption-text">Indiquez un préfixe différent que le classique wp_</p></div>
<p>Évidement, si celle-ci est déjà fixée sur une autre valeur, parcourez les autres tutoriels du site. <img src='http://wpchannel.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>N&#8217;oubliez pas de sauvegarder le fichier modifié.</p>
<h2>Etape n°2 &#8211; Changer le préfixe de l&#8217;ensemble de vos tables WordPress</h2>
<p>Cette étape est de loin la plus fastidieuse et la plus risquée !</p>
<p>Il vous faut intervenir dans votre base à l&#8217;aide de phpMyAdmin ou de l&#8217;outil de gestion proposé par votre hébergeur. Connectez-vous donc sur l&#8217;administration de votre serveur pour y accéder.</p>
<div class="wp-caption alignnone" style="width: 570px"><img title="Utilisation de phpMyAdmin pour modifications des préfixes" src="http://wpchannel.com/wp-content/uploads/tutoriels/wordpress-database-prefixe-2.jpg" alt="Capture d'écran - Actions de renommage des tables SQL" width="560" height="319" /><p class="wp-caption-text">Utilisez les commandes SQL pour un renommage de masse</p></div>
<p>Exécutez à présent les requêtes SQL suivantes en prenant soin d&#8217;indiquer votre nouveau préfixe :</p>
<pre>Rename table wp_commentmeta to wplabo_commentmeta;
 Rename table wp_comments to wplabo_comments;
 Rename table wp_links to wplabo_links;
 Rename table wp_options to wplabo_options;
 Rename table wp_postmeta to wplabo_postmeta;
 Rename table wp_posts to wplabo_posts;
 Rename table wp_terms to wplabo_terms;
 Rename table wp_term_relationships to wplabo_term_relationships;
 Rename table wp_term_taxonomy to wplabo_term_taxonomy;
 Rename table wp_usermeta to wplabo_usermeta;
 Rename table wp_users to wplabo_users;</pre>
<h2>Étape n°3 &#8211; Modifications de certains tables de la base MySQL</h2>
<p>Si vous en restez là, WordPress ne vous donnera plus les droits d&#8217;accès à votre administration. Vous obtiendrez alors, ce type d&#8217;erreur :</p>
<div class="wp-caption alignnone" style="width: 431px"><img title="Problèmes de droits d'accès dans WordPress" src="http://wpchannel.com/wp-content/uploads/tutoriels/wordpress-database-prefixe-3.jpg" alt="Capture d'écran - Message d'erreur de WordPress" width="421" height="115" /><p class="wp-caption-text">Faisons en sorte d&#39;obtenir les droits d&#39;accès à votre administration WordPress</p></div>
<p>Adaptez ce qui suit avec votre nouveau préfixe !</p>
<h3>Édition de la table wp_options</h3>
<p>Il nous faut donc intervenir dans <code>wp_options</code>, recherchez donc la valeur <code>wp_user_roles</code> dans la colonne <code>option_name</code> et indiquez votre nouveau préfixe.</p>
<div class="wp-caption alignnone" style="width: 383px"><img title="Recherche de la valeur wp_user_roles" src="http://wpchannel.com/wp-content/uploads/tutoriels/wordpress-database-prefixe-4.jpg" alt="Capture d'écran - Recherche de la valeur wp_user_roles" width="373" height="88" /><p class="wp-caption-text">Cette valeur est située à la ligne 96.</p></div>
<div class="wp-caption alignnone" style="width: 560px"><img title="Modification de la valeur wp_user_roles" src="http://wpchannel.com/wp-content/uploads/tutoriels/wordpress-database-prefixe-5.jpg" alt="Capture d'écran - Modification de la valeur wp_user_roles" width="550" height="130" /><p class="wp-caption-text">Remplacez le préfixe wp_ par celui que vous venez de définir</p></div>
<h3>Édition de la table wp_usermeta</h3>
<p>Changez à présent tout les anciens préfixes de la colonne <code>meta_key</code> au nombre de 5 dans mon cas.</p>
<div class="wp-caption alignnone" style="width: 496px"><img title="Modification des valeurs de la colonne meta_key" src="http://wpchannel.com/wp-content/uploads/tutoriels/wordpress-database-prefixe-6.jpg" alt="Capture d'écran - Modification des valeurs de la colonne meta_key" width="486" height="118" /><p class="wp-caption-text">Le nombre de champs à éditer peut varier en fonction de votre version de WordPress</p></div>
<p><strong>Félicitations ! Nous voici arriver au terme de ce tutoriel qui vous aura montrer comment changer manuellement le préfixe de votre base de données WordPress. Votre site bénéficie à présent d&#8217;un <a title="14 astuces indispensables pour sécuriser votre site WordPress" href="http://wpchannel.com/14-astuces-securiser-site-wordpress/">niveau de sécurité accru contre les hackers</a>.</strong></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://wpchannel.com/modifier-prefixe-base-donnees-wordpress-apres-installation/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
<enclosure url="http://media.blubrry.com/wpchannel/wpchannel.com/ressources/podcasts/wordpress-prefixe-mysql-54.mov" length="121370047" type="video/quicktime" />
		</item>
		<item>
		<title>22 requêtes MySQL indispensables pour WordPress</title>
		<link>http://wpchannel.com/22-requetes-mysql-indispensables-wordpress/</link>
		<comments>http://wpchannel.com/22-requetes-mysql-indispensables-wordpress/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 11:00:57 +0000</pubDate>
		<dc:creator>Aurélien Denis</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Tutoriels WordPress]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://wpchannel.com/?p=10069</guid>
		<description><![CDATA[WordPress stocke les données (articles, pages, catégories, etc.) dans une base de données MySQL. Il est donc utile de connaître certaines requêtes pour intervenir rapidement et de façon massive. A ne pas mettre entre toutes les mains toutefois ! N.B &#8230; <a href="http://wpchannel.com/22-requetes-mysql-indispensables-wordpress/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>WordPress stocke les données (articles, pages, catégories, etc.) dans une base de données MySQL. Il est donc utile de connaître certaines requêtes pour intervenir rapidement et de façon massive. A ne pas mettre entre toutes les mains toutefois !<span id="more-10069"></span></p>
<p><em><strong>N.B</strong> : cet article regroupe 22 requêtes MySQL pour le CMS WordPress. Avant toute intervention dans votre base de données, faites une sauvegarde préalable. Vous êtes responsable de vos actions !</em></p>
<h2>Avertissements</h2>
<h3>Utilisation de phpMyAdmin</h3>
<p>Pour exécuter les requêtes listées ici vous devez être capable de vous connecter à <strong>phpMyAdmin</strong>, un outil généralement accessible depuis l&#8217;administration de votre hébergeur (via cPanel ou Plesk par exemple).</p>
<p>Rendez-vous ensuite dans l&#8217;onglet <strong>SQL</strong> correspondant à la base de données préalablement sélectionnée dans la partie gauche de l&#8217;interface.</p>
<p>Si vous n&#8217;avez jamais utilisé phpMyAdmin, faites très attention ! Vous pourriez tout supprimer en 1 clic de souris, je dis bien un !</p>
<h3>Préfixe de la base wp_</h3>
<p>Pour chacune des requêtes ci-dessous, n&#8217;oubliez pas de remplacer le préfixe <code>wp_</code> par celui correspondant à votre base de données MySQL.</p>
<p>Il est fort probable que vous n&#8217;ayez pas gardé le préfixe par défaut comme il est recommandé par souci de sécurité.</p>
<h3>Sauvegarde de votre base</h3>
<p>Avant toute intervention dans phpMyAdmin, faites une sauvegarde de votre base MySQL en suivant le tutoriel pour savoir <a title="Sauvegarder automatiquement votre base de données MySQL" href="http://wpchannel.com/sauvegarder-automatiquement-base-donnees-mysql/">comment sauvegarder automatiquement la base de données MySQL</a>.</p>
<h2>Requêtes sur les <em>custom fields</em></h2>
<h3>#1 &#8211; Ajouter un <em>custom field</em> à tous les articles et pages</h3>
<pre>INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'MonCustomField'
AS meta_key, 'MaValeur' AS meta_value FROM wp_posts
WHERE ID NOT IN (SELECT post_id FROM wp_postmeta WHERE meta_key = 'MonCustomField');</pre>
<p>Cette requête ajoute un champ personnalisé (custom field) à tous les articles présents dans la base.</p>
<p>Pensez à remplacer <code>MonCustomField</code> par le nom du champ en question et <code>MaValeur</code> par la valeur de votre choix.</p>
<h3>#2 &#8211; Ajouter un <em>custom field</em> dans les articles uniquement</h3>
<pre>INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'MonCustomField'
AS meta_key, 'MaValeur' AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'MonCustomField')
AND `post_type` = 'post';</pre>
<p>La même chose que précédemment &#8211; avec les mêmes conseils, mais pour les articles seulement.</p>
<h3>#3 &#8211; Ajouter un <em>custom field</em> dans les pages uniquement</h3>
<pre>INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT ID AS post_id, 'MonCustomField'
AS meta_key, 'MaValeur' AS meta_value
FROM wp_posts WHERE ID NOT IN
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'MonCustomField')
AND `post_type` = 'page';</pre>
<p>La même chose que précédemment &#8211; avec les mêmes conseils, mais pour les pages seulement.</p>
<h3>#4 &#8211; Supprimer un <em>custom field</em> de tous les articles et pages</h3>
<pre>DELETE FROM wp_postmeta WHERE meta_key = 'MaValeur';</pre>
<p>Cette requête a déjà été expliquée dans le tutoriel <a title="Supprimer des champs personnalisés (custom fields) dans WordPress" href="http://wpchannel.com/supprimer-des-champs-personnalises-custom-fields-dans-wordpress/">Supprimer des champs personnalisés (custom fields) dans WordPress</a>.</p>
<h3>#5 &#8211; Supprimer un <em>custom field</em> de tous les articles uniquement</h3>
<pre>DELETE FROM wp_postmeta WHERE meta_key = 'MyField'  AND `post_type` = 'post';</pre>
<p>Idem que précédemment mais pour les articles uniquement.</p>
<h3>#6 &#8211; Supprimer un <em>custom field</em> de toutes les pages uniquement</h3>
<pre>DELETE FROM wp_postmeta WHERE meta_key = 'MyField'  AND `post_type` = 'page';</pre>
<p>Idem mais pour les pages seulement.</p>
<h3>#7 &#8211; Changer la valeur d&#8217;un <em>custom field</em></h3>
<pre>UPDATE `wp_postmeta`
SET `meta_value` = REPLACE(meta_value, 'AncienneValeur', 'NouvelleValeur')
WHERE `meta_key` LIKE 'MonCustomField';</pre>
<p>Remplacez <code>AncienneValeur</code> par la valeur à modifier et <code>NouvelleValeur</code> par la valeur qui doit prendre la place de l&#8217;ancienne.</p>
<p>Précisez également le <em>custom field</em> concerné en modifiant <code>MonCustomField</code>.</p>
<h2>Requêtes sur les révisions</h2>
<h3>#8 &#8211; Effacer l&#8217;historique des révisions d&#8217;articles et de pages</h3>
<pre>DELETE FROM `wp_posts` WHERE `post_type` = 'revision'</pre>
<p>Cette requête supprime le versionning de vos articles et de vos pages ; autrement dit, les sauvegardes d&#8217;état du contenu.</p>
<p>Pour en savoir plus et aller plus loin en spécifiant une date avant suppression, rendez-vous sur le tutoriel <a title="#2 – Optimiser WordPress | Supprimer les révisions d’articles de WordPress" href="http://wpchannel.com/optimiser-wordpress-supprimer-revisions-articles/">Supprimer les révisions d&#8217;articles de WordPress</a>.</p>
<h3>#9 &#8211; Rechercher les articles d&#8217;une catégorie donnée</h3>
<pre>SELECT post_title FROM wp_posts p
JOIN wp_term_relationships r ON r.object_id = p.ID
JOIN wp_term_taxonomy t ON r.term_taxonomy_id = t.term_taxonomy_id
JOIN wp_terms terms ON terms.term_id = t.term_id
WHERE t.taxonomy ='category'
AND terms.name = 'NomCatégorie'
AND p.post_type = 'post';</pre>
<p>Cette requête liste les articles présents dans une catégorie déterminée par <code>NomCatégorie</code>.</p>
<h3>#10 &#8211; Modifier le statut de publication de vos articles d&#8217;une catégorie donnée</h3>
<pre>UPDATE wp_posts p
JOIN wp_term_relationships r ON r.object_id = p.ID
JOIN wp_term_taxonomy t ON r.term_taxonomy_id = t.term_taxonomy_id
JOIN wp_terms terms ON terms.term_id = t.term_id
SET p.post_status = 'publish'
WHERE t.taxonomy ='category'
AND terms.name = 'NomCatégorie'
AND p.post_type = 'post';</pre>
<p>Comme précédemment, remplacez le mot-clé <code>NomCatégorie</code> par la catégorie concernée et indiquez le statut de publication de votre choix dans SET p.post_status = &#8216;publish&#8217; ; soit publish, pending ou draft.</p>
<h2>Requêtes de statistiques</h2>
<h3>#11 &#8211; Nombre d&#8217;articles publiés en 2010</h3>
<pre>SELECT COUNT(*) FROM wp_posts WHERE post_status="publish"
AND post_date BETWEEN '2010-01-01' AND '2010-12-31';</pre>
<p>Cette requête vous retournera le nombre d&#8217;articles parus au cours de l&#8217;intervalle de temps défini. N&#8217;oubliez pas de formater vos date à l&#8217;anglaise et inversant l&#8217;ordre du type année, mois, jour.</p>
<h3>#12 &#8211; Nombre total de commentaires pour vos articles en 2010</h3>
<pre>SELECT SUM(comment_count) FROM wp_posts WHERE post_status="publish"
AND post_date BETWEEN '2010-01-01' AND '2010-12-31' GROUP BY post_status;</pre>
<p>Cette requête MySQL vous renvoie la somme des commentaires validés au cours de l&#8217;année 2010. Là encore, vous pouvez varier l&#8217;intervalle de temps ou même supprimer la période pour obtenir le total de commentaires &#8211; total qui est affiché dans le <strong>Tableau de bord </strong>de WordPress.</p>
<h3>#13 &#8211; Top 10 des articles les plus commentés en 2010</h3>
<pre>SELECT post_title,comment_count FROM wp_posts WHERE post_status="publish"
AND post_date BETWEEN '2010-01-01' AND '2010-12-31'
ORDER BY comment_count DESC LIMIT 0,10;</pre>
<p>Cette commande affiche la liste des 10 articles ayant reçu le plus de commentaires en 2010.</p>
<h3>#14 &#8211; Top 10 des meilleurs commentateurs sur votre site en 2010</h3>
<pre>SELECT comment_author,COUNT(comment_count) AS F01
FROM wp_comments,wp_posts WHERE comment_approved=1
AND comment_post_ID=ID AND comment_date BETWEEN '2010-01-01'
AND '2010-12-31' GROUP BY comment_author ORDER BY F01 DESC LIMIT 0,10;</pre>
<p>Renvoies la liste des 10 lecteurs ayant le plus commenté sur votre site en 2010.</p>
<p>Une nouvelle fois, vous pouvez faire varier l&#8217;intervalle de temps.</p>
<p>De là à créer un widget pour afficher le Top commentateur&#8230; il n&#8217;y a qu&#8217;un pas !</p>
<h2>Requêtes sur les URLs de WordPress</h2>
<h3>#15 &#8211; Changer l&#8217;URL du site et l&#8217;URL d&#8217;installation (Siteurl et Homeurl)</h3>
<pre>UPDATE wp_options
SET option_value =
replace(option_value, 'http://www.vieuxsite.fr', 'http://www.nouveausite.fr')
WHERE option_name = 'home' OR option_name = 'siteurl';</pre>
<p>WordPress stocke le chemin absolu de l&#8217;URL de votre site et de l&#8217;accueil dans la base de données.</p>
<p>Si vous transférez celui-ci d&#8217;un serveur local vers un hébergement en ligne, votre site ne fonctionnera car les URLs d&#8217;installation pointeront vers les dossiers locaux.</p>
<p>Cette requête est donc là pour résoudre ce problème.</p>
<h3>#16 &#8211; Changer GUID</h3>
<pre>UPDATE wp_posts
SET guid = REPLACE (guid, 'http://www.vieuxsite.fr', 'http://www.nouveausite.fr');</pre>
<p>Après avoir migré votre blog à partir d&#8217;un serveur local sur votre serveur en ligne, ou d&#8217;un ancien domaine vers un nouveau domaine, vous aurez besoin de réparer les URLs pour le champ GUID dans la table <code>wp_posts</code>. Un point crucial pour convertir correctement vos permaliens en cas d&#8217;erreurs de saisie.</p>
<h3>#17 &#8211; Changer les URLs de contenu</h3>
<pre>UPDATE wp_posts
SET post_content =
REPLACE (post_content, 'http://www.vieuxsite.fr', 'http://www.nouveausite.fr');</pre>
<p>Pour rappel, les liens présents dans vos articles et pages de WordPress sont inscrites en chemin absolu dans la base de données &#8211; et non pas en relatif. Vous devez donc là encore indiquer l&#8217;adresse du nouveau site.</p>
<h3>#18 &#8211; Changer le chemin des images seulement</h3>
<pre>UPDATE wp_posts
SET post_content =
REPLACE (post_content, 'src="http://www.vieuxsite.fr', 'src="http://amazon.nouveausite.fr');</pre>
<p>Si vous avez décidé de basculer vos images dans le cloud computing avec Amazon CloudFront par exemple, il est nécessaire de changer massivement les liens pointant vers chacune de vos images.</p>
<p>Il est également nécessaire de mettre à jour le GUID des fichiers joints :</p>
<pre>UPDATE wp_posts
SET  guid = REPLACE (guid, 'http://www.vieuxsite.fr', 'http://amazon.nouveausite.fr')
WHERE post_type = 'attachment';</pre>
<h3>#19 &#8211; Mettre à jour les meta de vos articles</h3>
<pre>UPDATE wp_postmeta
SET meta_value = REPLACE
(meta_value, 'http://www.vieuxsite.fr','http://www.nouveausite.fr');</pre>
<p>De la même façon que les requêtes d&#8217;URLs précédentes, celle-ci agira sur les différentes informations insérées dans vos articles comme les custom fields pour mettre à jour les adresses.</p>
<h2>Requêtes administratives</h2>
<h3>#20 &#8211; Modifier le compte utilisateur admin</h3>
<pre>UPDATE wp_users SET user_login = 'Nouveau pseudo' WHERE user_login = 'Admin';</pre>
<p>Très utile, cette commande permet de changer le pseudo du compte admin créé par défaut. Cette requête n&#8217;est plus utile pour les dernières versions de WordPress qui permette une telle chose dès l&#8217;installation.</p>
<h3>#21 &#8211; Remettre à zéro le mot de passe</h3>
<pre>UPDATE wp_users SET user_pass = MD5( 'nouveau_mot_de_passe' )
WHERE user_login = 'votre_pseudo';</pre>
<p>Utilisez cette requête pour modifier à votre convenance le mot de passe de n&#8217;importe quel utilisateur WordPress. Il suffit d&#8217;indiquer le nouveau mot de passe et le nom de l&#8217;utilisateur concerné.</p>
<p>Pour en savoir plus, rendez-vous sur le tutoriel <a title="Modifier le mot de passe d’un utilisateur WordPress via phpMyAdmin" href="http://wpchannel.com/modifier-mot-passe-utilisateur-wordpress-phpmyadmin/">Modifier le mot de passe d’un utilisateur WordPress via phpMyAdmin</a>.</p>
<h3>#22 &#8211; Supprimer les commentaires en attente de modération</h3>
<pre><code>DELETE from `wp_comments` WHERE `comment_approved` = '0';</code></pre>
<p>Envoyez cette requête pour supprimer la totalité des commentaires qui n&#8217;ont pas encore été validés. Utile dans certains cas de spamming importants !</p>
<h2>Sources</h2>
<p>Cette liste a été constituée à partir de nombreux articles trouvés au fil de mes recherches Google et d&#8217;anciens tutoriels sur WordPress Channel.</p>
<p>Tout le mérite revient donc à ses auteurs passionnés de WordPress pour leur travail ! <img src='http://wpchannel.com/wp-includes/images/smilies/icon_cool.gif' alt=':cool:' class='wp-smiley' /> </p>
<ul>
<li><a href="http://www.wordpress-fr.net/support/viewtopic.php?pid=160737">Requêtes MySQL utiles sur le forum francophone de WordPress</a> ;</li>
<li><a title="4 hacks pour extraire des statistiques de WordPress" href="http://blog.nicolargo.com/2011/01/4-hacks-pour-extraire-des-statistiques-de-wordpress.html">4 hacks pour extraire des statistiques de WordPress</a> ;</li>
<li><a title="13 useful WordPress SQL queries you wish you knew earlier" href="http://www.onextrapixel.com/2010/01/30/13-useful-wordpress-sql-queries-you-wish-you-knew-earlier/">13 useful WordPress SQL queries you wish you knew earlier</a> ;</li>
</ul>
<p><strong>Cette liste de requêtes MySQL pour le CMS WordPress n&#8217;est sans doute pas exhaustive ! N&#8217;hésitez pas à proposer vos propres requêtes pour qu&#8217;elles soient ajoutées dans cet article. </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://wpchannel.com/22-requetes-mysql-indispensables-wordpress/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Modifier le mot de passe d&#8217;un utilisateur WordPress via phpMyAdmin</title>
		<link>http://wpchannel.com/modifier-mot-passe-utilisateur-wordpress-phpmyadmin/</link>
		<comments>http://wpchannel.com/modifier-mot-passe-utilisateur-wordpress-phpmyadmin/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 16:48:11 +0000</pubDate>
		<dc:creator>Aurélien Denis</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Tutoriels WordPress]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://wpchannel.com/?p=9663</guid>
		<description><![CDATA[La base de données MySQL de WordPress stocke l&#8217;ensemble des mots de passe utilisateurs dans la table wp_users. Grâce à phpMyAdmin, apprenez à générer de nouveaux mots de passe pour chacun des comptes utilisateurs de votre installation WordPress. Très utile &#8230; <a href="http://wpchannel.com/modifier-mot-passe-utilisateur-wordpress-phpmyadmin/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>La base de données MySQL de WordPress stocke l&#8217;ensemble des mots de passe utilisateurs dans la table wp_users. Grâce à phpMyAdmin, apprenez à générer de nouveaux mots de passe pour chacun des comptes utilisateurs de votre installation WordPress. Très utile en cas de perte de mot de passe irrécupérable !<span id="more-9663"></span><br />
<h2>Procédure de réinitialisation du mot de passe</h2>
<p>Il nous faut dans un premier accéder à phpMyAdmin qui n&#8217;est autre que l&#8217;outil de gestion des bases de données MySQL via un navigateur Internet.</p>
<p>Pour faire simple, c&#8217;est un genre de Microsoft Access.</p>
<p>Ce module est accessible via votre hébergeur, votre plateforme cPanel ou Plesk. Reportez-vous à la documentation de votre hébergeur pour en savoir plus.</p>
<p>Une fois connecté à phpMyAdmin, localisez la table <strong>wp_users</strong> à partir de la colonne de gauche.</p>
<p>Cliquez dessus pour voir apparaître l&#8217;intégralité des comptes utilisateurs de votre site WordPress.</p>
<div class="wp-caption alignnone" style="width: 520px"><img title="phpMyAdmin, table wp_users de WordPress" src="http://wpchannel.com/wp-content/uploads/tutoriels/phpmyadmin-1.jpg" alt="Capture d'écran - Identifiez l'utilisateur WordPress à modifier" width="510" height="306" /><p class="wp-caption-text">Les mots de passe sont cryptés par défaut.</p></div>
<p>A l&#8217;aide de la colonne <strong>user_login</strong>, identifiez l&#8217;utilisateur dont le mot de passe doit être modifié puis cliquez sur l&#8217;icône en forme de crayon pour l&#8217;éditer.</p>
<p>Dans le champ <strong>user_pass</strong>, inscrivez votre nouveau mot de passe puis n&#8217;oubliez pas de sélectionner <strong>MD5</strong> dans la colonne <strong>Fonction</strong>.</p>
<div class="wp-caption alignnone" style="width: 434px"><img title="phpMyAdmin, modification du mot de passe WordPress" src="http://wpchannel.com/wp-content/uploads/tutoriels/phpmyadmin-2.jpg" alt="Capture d'écran - Saisie d'un nouveau mot de passe utilisateur" width="424" height="130" /><p class="wp-caption-text">Saisissez votre mot de passe dans le champ user_pass</p></div>
<p>Validez en cliquant sur le bouton <strong>Exécuter</strong>.</p>
<p>Votre mot de passe est à présent réinitialisé et vous remarquerez que celui-ci a bien été crypté dans la table des utilisateurs de WordPress.</p>
<p>Retournez ensuite sur votre page de connexion WordPress et saisissez les nouveaux identifiants de connexion. Vous êtes maintenant connecté avec votre nouveau mot de passe !</p>
<h2>Étude de cas : droits insuffisants</h2>
<p>Ce tutoriel part d&#8217;une expérience récente pour le moins désagréable. Suite au piratage d&#8217;un site client, l&#8217;un des comptes utilisateurs s&#8217;était retrouvé sans aucun droit d&#8217;administration.</p>
<p>Autrement dit, j&#8217;obtenais le traditionnel message <cite>Vous n’avez pas les droits suffisants pour accéder à cette page</cite> dès lors que je tentais de me connecter. J&#8217;ai donc résolu le problème en modifiant le mot de passe d&#8217;un autre compte utilisateur qui m&#8217;a permis de me connecter sur l&#8217;administration WordPress et donc, au final, de réattribuer les pleins pouvoirs au compte administrateur.</p>
<p><strong>Cet exemple d&#8217;application n&#8217;est là que pour illustrer l&#8217;intérêt de connaître une méthode de réinitialisation des mots de passe directement depuis la base MySQL. C&#8217;est en apprenant de la sorte que vous gagnerez en sécurité sur votre site WordPress !</strong></p>
<p><small>Crédits photo : <a rel="nofollow" href="http://www.flickr.com/photos/rimuhosting/5092109793/">pbkwee</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://wpchannel.com/modifier-mot-passe-utilisateur-wordpress-phpmyadmin/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Créer une page d’erreur de base données WordPress personnalisée</title>
		<link>http://wpchannel.com/creer-page-erreur-base-donnees-wordpress-personnalisee/</link>
		<comments>http://wpchannel.com/creer-page-erreur-base-donnees-wordpress-personnalisee/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 10:00:15 +0000</pubDate>
		<dc:creator>Aurélien Denis</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Tutoriels WordPress]]></category>
		<category><![CDATA[Podcasts WordPress]]></category>
		<category><![CDATA[Template WordPress]]></category>

		<guid isPermaLink="false">http://wpchannel.com/?p=8751</guid>
		<description><![CDATA[&#171;&#160;Error establishing a database connection&#160;&#187;, vous connaissez ? C&#8217;est le message par défaut en cas de soucis avec votre base de données MySQL. Apprenons comment utiliser un fichier d&#8217;erreur sur-mesure avec WordPress. N.B : cet article fait suite à un &#8230; <a href="http://wpchannel.com/creer-page-erreur-base-donnees-wordpress-personnalisee/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&laquo;&nbsp;Error establishing a database connection&nbsp;&raquo;, vous connaissez ? C&#8217;est le message par défaut en cas de soucis avec votre base de données MySQL. Apprenons comment utiliser un fichier d&#8217;erreur sur-mesure avec WordPress.</p>
<p><iframe width="585" height="468" src="http://www.youtube.com/embed/gt5unFi7zuo?hd=1" frameborder="0" allowfullscreen></iframe><br />
<span id="more-8751"></span></p>
<p><em><strong>N.B</strong> : cet article fait suite à un mail que j&#8217;ai reçu dernièrement à propos d&#8217;un bug sur WordPress Channel. L&#8217;erreur n&#8217;était pas lié à MySQL mais cette personne m&#8217;a indiqué 2 liens très intéressants (en anglais) concernant la création de cette fameuse page d&#8217;erreur de base de données personnalisée. J&#8217;ai donc librement adapté le premier des 2 à ma façon, dont l&#8217;original est accessible sur <a href="http://digwp.com/2009/11/custom-database-error-page/">Digging Into WordPress</a>.</em></p>
<h2>Intérêts d&#8217;une page d&#8217;erreur</h2>
<p>Cette page est essentielle et je trouve dommage que personne ne m&#8217;en ait encore parlé&#8230; depuis le temps que j&#8217;utilise WordPress, je n&#8217;avais encore jamais lue d&#8217;informations à ce sujet !</p>
<ol>
<li>Ainsi, le premier avantage consiste à ne pas indiquer au monde entier que vous subissez un problème lié à votre base de données. La planète n&#8217;a pas besoin d&#8217;être au courant de ce type d&#8217;information et encore moins les hackers&#8230; un message personnalisé est donc nettement plus intéressant ;</li>
<li>Deuxième point qui rejoint en partie le précédent. Cette page étant entièrement sur-mesure, vous pouvez donc saisir le texte de votre choix et même y ajouter des éléments visuels &#8211; un logo, par exemple. Toutefois, rappelons qu&#8217;il n&#8217;est pas conseillé de surcharger inutilement votre serveur pour le coup ;</li>
<li>Troisième point important du point de vue de Google. Ce fichier PHP va retourner une erreur 503 dans l&#8217;en-tête indiquant un problème passager. Les robots de Google ne devrait donc pas indexer cette page et revenir plus tard indexer le reste de votre site ;</li>
<li>Quatrième point capital à mes yeux, vous serez notifié par e-mail dès qu&#8217;une erreur surviendra. Très pratique pour surveiller l&#8217;apparition de ce type d&#8217;erreur et surtout pour n&#8217;en manquer aucune ;</li>
</ol>
<h2>Méthode de création détaillée</h2>
<p>Une fois de plus, créez un tel fichier d&#8217;erreur avec WordPress n&#8217;a rien de compliqué !</p>
<p>A l&#8217;aide de votre client FTP favori, localisez le dossier <strong>/wp-content/</strong>. A l&#8217;intérieur de celui-ci, créez donc un nouveau fichier que vous nommerez <strong>db-error.php</strong>.</p>
<p>Copiez / collez les lignes de code suivantes :</p>
<pre>&lt;?php // custom WordPress database error page wpchannel.com
 header('HTTP/1.1 503 Service Temporarily Unavailable');
 header('Status: 503 Service Temporarily Unavailable');
 header('Retry-After: 3600'); // 1 hour = 3600 seconds
 mail("wpchannel@gmail.com", "Database Bug", "Le site rencontre des soucis techniques (MySQL).", "From: WordPress Channel");

?&gt;
&lt;!DOCTYPE HTML&gt;
&lt;html dir="ltr" lang="fr-FR"&gt;
 &lt;head&gt;
 &lt;title&gt;503 Service Temporarily Unavailable&lt;/title&gt;
 &lt;style type="text/css"&gt;
 h1, p {
 font-family: Helvetica, sans-serif;
 font-size: 24px;
 color: #333;
 }
 p {
 font-size: 14px;
 }
 &lt;/style&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;h1&gt;C'est quoi ce bug ???&lt;/h1&gt;
 &lt;p&gt;Bon ok, j'ai bidouillé ma base de données et j'ai planté le site... pas de soucis, le problème n'est que temporaire ! Ou alors, mon hébergeur rencontre quelques bugs... allez savoir pourquoi !&lt;/p&gt;
 &lt;/body&gt;
&lt;/html&gt;</pre>
<p>Il ne vous reste plus qu&#8217;à sauvegarder le fichier pour valider le tout. Bien entendu, vous pouvez modifier à votre guise les différents éléments et notamment les lignes de texte humoristiques&#8230;</p>
<p>Pour les plus téméraires, vous pouvez vous amuser à planter votre base de données en éditant par exemple le fichier <strong>wp-config.php</strong> situé à la racine de votre installation WordPress. Supprimez par exemple le mot de passe&#8230; et voyez le résultat sur votre blog !</p>
<p>Non seulement, vous verrez la page d&#8217;erreur mais vous serez également averti par e-mail d&#8217;un bug MySQL.</p>
<div class="wp-caption alignnone" style="width: 531px"><img title="Erreur MySQL personnalisée" src="http://wpchannel.com/wp-content/uploads/tutoriels/custom-error-mysql.jpg" alt="Capture d'écran - db-error.php" width="521" height="147" /><p class="wp-caption-text">J&#39;ai planté WordPress Channel pour le fun...</p></div>
<p><strong>Cette technique est donc un moyen supplémentaire de maîtriser les messages d&#8217;erreurs qui peuvent survenir sur un site. Dans le même ordre d&#8217;idée, vous pouvez créez un modèle de page personnalisé pour les erreurs de type 404 !</strong></p>
<p><small>Crédits photo : <a href="http://www.flickr.com/photos/jonathanbishop/3853784154/" rel="nofollow">Jon Bishop (spazcer)</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://wpchannel.com/creer-page-erreur-base-donnees-wordpress-personnalisee/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
<enclosure url="http://media.blubrry.com/wpchannel/wpchannel.com/ressources/podcasts/wordpress-database-error-34.mov" length="68296077" type="video/quicktime" />
		</item>
		<item>
		<title>#2 &#8211; Optimiser WordPress &#124; Supprimer les révisions d&#8217;articles de WordPress</title>
		<link>http://wpchannel.com/optimiser-wordpress-supprimer-revisions-articles/</link>
		<comments>http://wpchannel.com/optimiser-wordpress-supprimer-revisions-articles/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 15:41:18 +0000</pubDate>
		<dc:creator>Aurélien Denis</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Tutoriels WordPress]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Optimiser WordPress]]></category>
		<category><![CDATA[Podcasts WordPress]]></category>

		<guid isPermaLink="false">http://wpchannel.com/?p=8118</guid>
		<description><![CDATA[Les révisions d&#8217;articles permettent de restaurer à une date précise la sauvegarde du billet en question. Bien que très pratique, cette fonctionnalité finit par encombrer la base de données après de nombreux enregistrements. N.B : avant d&#8217;opérer une quelconque modification &#8230; <a href="http://wpchannel.com/optimiser-wordpress-supprimer-revisions-articles/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Les révisions d&#8217;articles permettent de restaurer à une date précise la sauvegarde du billet en question. Bien que très pratique, cette fonctionnalité finit par encombrer la base de données après de nombreux enregistrements.</p>
<p><iframe width="585" height="359" src="http://www.youtube.com/embed/fxfJrP7QOPg?hd=1" frameborder="0" allowfullscreen></iframe><br />
<span id="more-8118"></span></p>
<p><em><strong>N.B</strong> : avant d&#8217;opérer une quelconque modification dans votre base de données, je vous recommande fortement de visionner le podcast <a title="Sauvegarder automatiquement votre base de données MySQL - Podcast WordPres Channel" href="http://wpchannel.com/sauvegarder-automatiquement-base-donnees-mysql/">Sauvegarder automatiquement votre base de données MySQL</a>.</em></p>
<p>Il est donc conseillé d&#8217;effacer les révisions d&#8217;articles. Toutefois, pour aller plus loin, nous allons faire en sorte que les X dernières soient conservées pour allier performances et sécurité.</p>
<h2>#1 &#8211; Effacer toutes les révisions d&#8217;articles</h2>
<p>Exécutez la requête SQL ci-dessous pour supprimer la totalité des versions d&#8217;articles. Après cette action, il vous sera impossible de restaurer l&#8217;un d&#8217;eux à une date antérieure.</p>
<pre>DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';
</pre>
<h2>#2 &#8211; Effacer les révisions en fonction d&#8217;une date</h2>
<p>Pour ne garder que l&#8217;historique récent de vos articles, préférez cette requête. La dernière ligne indique une date que vous pouvez modifier ; en l&#8217;occurrence, le 1er janvier 2010. Avant celle-ci, toutes les sauvegardes seront supprimées.</p>
<pre>DELETE a,b,c

FROM wp_posts a

LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)

LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)

WHERE a.post_type = 'revision'

AND a.post_date &lt; '2010-01-01';
</pre>
<h2>Pour aller plus loin</h2>
<p>Il est possible de désactiver le versionning des articles. A l&#8217;aide de votre client FTP favori, connectez-vous à la racine de votre site WordPress puis ouvrez <strong>wp-config.php</strong>.</p>
<p>Ajoutez ensuite la ligne suivante :</p>
<pre>define('WP_POST_REVISIONS', false);</pre>
<p>En indiquant un chiffre à la place du paramètre <strong>false</strong>, vous limiterez le nombre de sauvegardes &#8211; à 5 dans cet exemple. Idéal pour un système optimisé et sécurisé</p>
<pre>define('WP_POST_REVISIONS', 5);</pre>
<p><strong>Les révisions d&#8217;articles constituent un atout majeur de WordPress. Il n&#8217;est pas rare de devoir revenir en arrière après une modification malencontreuse. Entre performances SQL et niveau de risques, à vous de trouver un juste milieu !</strong></p>
<p><small>Crédits photo : <a rel="nofollow" href="http://www.flickr.com/photos/mookxi/3918521215/">mookxi</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://wpchannel.com/optimiser-wordpress-supprimer-revisions-articles/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
<enclosure url="http://media.blubrry.com/wpchannel/wpchannel.com/ressources/podcasts/wordpress-versionning-26.mov" length="80358964" type="video/quicktime" />
		</item>
		<item>
		<title>Optimiser la base de données MySQL de WordPress</title>
		<link>http://wpchannel.com/optimiser-base-donnes-mysql-wordpress/</link>
		<comments>http://wpchannel.com/optimiser-base-donnes-mysql-wordpress/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 19:01:45 +0000</pubDate>
		<dc:creator>Aurélien Denis</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Tutoriels WordPress]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Optimiser WordPress]]></category>
		<category><![CDATA[Podcasts WordPress]]></category>

		<guid isPermaLink="false">http://wpchannel.com/?p=180</guid>
		<description><![CDATA[Pour continuer sur cette série d&#8217;articles consacrée aux base de données MySQL, nous évoquerons dans ce didacticiel l&#8217;optimisation de ces dernières. Très simple à mettre en application, cette astuce vous permettra de gagner en performances et ce, sans connaissances particulières &#8230; <a href="http://wpchannel.com/optimiser-base-donnes-mysql-wordpress/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pour continuer sur cette série d&#8217;articles consacrée aux base de données MySQL, nous évoquerons dans ce didacticiel l&#8217;optimisation de ces dernières. Très simple à mettre en application, cette astuce vous permettra de gagner en performances et ce, sans connaissances particulières comme en témoigne ce podcast.</p>
<p><iframe width="585" height="359" src="http://www.youtube.com/embed/eQHDFt-Rj-g?hd=1" frameborder="0" allowfullscreen></iframe><br />
<span id="more-180"></span><br />
La base de données MySQL de WordPress se doit d&#8217;être optimisée de façon régulière. Appliquez les consignes de ce tutoriel vidéo selon une base mensuelle me paraît conseillé.</p>
]]></content:encoded>
			<wfw:commentRss>http://wpchannel.com/optimiser-base-donnes-mysql-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://media.blubrry.com/wpchannel/wpchannel.com/ressources/podcasts/wordpress-optimiser-mysql-16.mov" length="25064497" type="video/quicktime" />
		</item>
		<item>
		<title>Restaurer une base de données MySQL</title>
		<link>http://wpchannel.com/restaurer-base-donnees-mysql/</link>
		<comments>http://wpchannel.com/restaurer-base-donnees-mysql/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 17:00:51 +0000</pubDate>
		<dc:creator>Aurélien Denis</dc:creator>
				<category><![CDATA[Base de données]]></category>
		<category><![CDATA[Tutoriels WordPress]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Podcasts WordPress]]></category>

		<guid isPermaLink="false">http://wpchannel.com/?p=309</guid>
		<description><![CDATA[Après avoir vu comment Sauvegarder automatiquement votre base de données MySQL , il est temps de savoir comment la restaurer. Nous interviendrons directement dans la base de données avec phpMyAdmin. Pour y accéder, consultez l&#8217;aide de votre hébergeur &#8211; il &#8230; <a href="http://wpchannel.com/restaurer-base-donnees-mysql/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Après avoir vu comment <a title="Sauvegarder automatiquement votre base de données MySQL" href="http://wpchannel.com/sauvegarder-automatiquement-base-donnees-mysql/" target="_blank">Sauvegarder automatiquement votre base de données MySQL </a>, il est temps de savoir comment la restaurer. Nous interviendrons directement dans la base de données avec phpMyAdmin. Pour y accéder, consultez l&#8217;aide de votre hébergeur &#8211; il n&#8217;y a pas de manipulation officielle.</p>
<p><iframe width="585" height="468" src="http://www.youtube.com/embed/7H3hRWvu9Kg?hd=1" frameborder="0" allowfullscreen></iframe><br />
<span id="more-309"></span></p>
<p>Pour rappel, votre base de données contient vos articles, vos pages, vos commentaires, vos liens, vos configurations de plugins ainsi que votre configuration générale de WordPress. Bref, chaque partie de l&#8217;administration WordPress dispose d&#8217;une table de stockage dans la base MySQL.</p>
<p>A la différence, le serveur FTP stockera vos contenus multimédias tels que les photos, les vidéos, les sons ou n&#8217;importe quel autre type de documents.</p>
]]></content:encoded>
			<wfw:commentRss>http://wpchannel.com/restaurer-base-donnees-mysql/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
<enclosure url="http://media.blubrry.com/wpchannel/wpchannel.com/ressources/podcasts/wordpress-restaurer-base-donnees-mysql-14.mov" length="37094957" type="video/quicktime" />
		</item>
	</channel>
</rss>

