Hook, callback, filter : WordPress m’insulte en PHP
Blogoblablas, Ingénieur Informaticien Rédiger un commentaire
Cela faisait quelques temps que je cherchais à modifier mon blog pour y inclure quelques fonctionnalités. Par exemple, je voulais exclure mes propres réponses du décompte total des commentaires.
Et bien pour cette modification mineure, cette chiure de mouche dans le code, j’y ai passé une bonne partie de la nuit. Plusieurs raisons à cela : je suis rouillé en PHP, je découvre à peine WordPress et probablement que je ne dois pas avoir les yeux en face des trous en pleine nuit.
WordPress m’en a fait voir de toutes les couleurs, mais je l’ai vaincu. Non sans mal. Et non sans aide. Pour ceux qui arrivent ici en cherchant des informations pour customiser leur blog, voici quelques liens qui m’ont donc bien aidé :
- L’API officielle de WordPress et quelques explications au sujet des Filter et des Actions. Je vous le dis tout de suite, brut comme ça, ça n’aide pas forcément
:
http://codex.wordpress.org/Plugin_API.
- La liste des fonctions de WordPress :
http://codex.wordpress.org/Function_Reference/
- La liste des « hooks » de WordPress :
http://adambrown.info/p/wp_hooks.
Indispensable. Vous saurez exactement ce que vous pouvez modifier dans WordPress pour créer vos propres plugins.
- La description de la base de données de WordPress :
http://codex.wordpress.org/Database_Description.
Vous y viendrez quand vous en aurez marre de manipuler les fonctions avancées. Des requêtes en base, il n’y a que ça de vrai (et ceux qui utilisent des framework ORM en Java savent de quoi je parle).
Pour la modification en question, en fait c’est élémentaire une fois qu’on a parcouru tout ce qui précède. Je vous livre ici le bout de code en question, à mettre dans le fichier functions.php de votre thème :
Plugin Name: ZOFREN - Custom
Plugin URI: http://lepetitkopat.fr
Description: Ne pas compter les commentaires de l'auteur dans le decompte des commentaires
Version: 1.0
Author: Zofren
Author URI: http://lepetitkopat.fr
**/
add_filter(
'get_comments_number',
'get_comments_number_without_author');
function get_comments_number_without_author( $count ) {
global $wpdb, $post;
$post_id = $post->ID;
$post_author_id = $post->post_author;
$count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1' AND comment_post_ID = '$post_id' AND user_id <> '$post_author_id'");
return $count;
}
?>
Pour ceux qui viennent uniquement ici pour se détendre ou parce qu’ils se sont perdus dans la blogosphère, désolé pour cet article un peu technique rempli de gros mots. Mais j’ai passé tellement de temps sur cette affaire que je devais libérer mon âme tourmentée et possédée par le démon du code.

Je fait partis ce ceux qui ce sont perdus dans la blogosphère, je débute dans wordpress et j’essai de faire un plugin, crois tu qu’il soit possible d’agir sur les droits utilisateur avec un hook?
Tout dépend de quelle genre d’interactions. Tu as une idée plus précise ?
ce que je cherchais, merci