Toutes mes réponses sur les forums
-
AuteurMessages
-
Dans la boucle de commentaire en 2.7 qui doit ressembler à wp_list_comments(), tu peux rajouter des paramêtres :
http://codex.wordpress.org/Template_Tags/wp_list_comments
En l’occurence, ça devrait ressembler à
XXX prenant une valeur parmi les suivantes : ‘all’, ‘comment’, ‘trackback’, ‘pingback’, or ‘pings’. ‘pings’ is ‘trackback’ and ‘pingback’ together. Default is ‘all’.
Si si mais j’ai encore du mal à comprendre.
Quand tu affiches un article, les commentaires sont toujours ceux de l’article Z c’est bien ça ?
Regardes dans le fichier comments.php, il y a peut être un paramêtre en dur pour wp_list_comment (par exemple).
Il y a deux types de hook : les actions et les filters.
Désolé pour la pub mais tu trouveras ici des liens qui listent tous les actions hook (les endroits où il y a do_action dans le code WP) et les filter hooks (les endroits où il y a apply_filter) : http://www.lepetitkopat.com/blogoblabla/hook-callback-filter-wordpress-insulte-en-php.html
simonn wrote:Qu’est ce que tu veux dire concrètement par le bon header ?Pour WordPress 2.5 il y a rien de particulier au début des plugins.
les plugins doivent être gérés différemment alors.
simonn wrote:Pour revenir à l’histoire des filtres, effectivement je comprends ce que vous avez fait mais celà suppose qu’on a déjà un crocher[HOOK] qui s’appelle « kubrick_header_image », comme c’est le cas pour « the_content », or j’arrive pas àle trouver ce truc.D’où ma question comment ajouter un crochet[HOOK] qui n’existe pas déjà?
Amicalement Simon
Mais justement, la fonction spécifique au thème crée son propre hook avec cette ligne de code :
return apply_filters(‘kubrick_header_image’, get_settings(‘kubrick_header_image’));
Ce qui te permet d’utiliser le hook ainsi créé et nommé « kubrick_header_image »
return apply_filters(‘kubrick_header_image’, get_settings(‘kubrick_header_image’));
Cette ligne t’indique que tu peux appliquer un filtre à cet endroit pour modifier la valeur de get_settings(‘kubrick_header_image’). La première valeur est le nom du hook, la deuxième valeur est la valeur sur laquelle s’applique le hook (et qui doit être retournée par la fonction custom).
Pour créer ce filtre tu dois créer un plugin = un fichier php avec le bon header (regarde comment son fait les autres plugins dans Extensions->Editer), à poser dans le répertoire plugins/monrépertoire. Tu pourras l’activer via l’admin. Dans ce fichier tu crées une fonction masuperfonction qui prend en paramêtre une valeur du même type que ce qui est retourné par le fameux get_settings et surtout qui retourne le même type de valeur.
Ensuite tu ajoutes dans le même fichier :
function masuperfonction($settings) {
// code custom
return $settings
}add_filter(« kubrick_header_image », »masuperfonction »);
Alors attention c’est comme ça que j’ai fait sur la version 2.7, je ne sais pas si c’était déjà valable sur le 2.5 (que je n’ai jamais utilisé). Je n’ai pas encore creusé mais je compte bien le faire bientôt.
Euh pas sûr d’avoir tout saisi. Tu voudrais qu’en supprimant un commentaire, ça supprime toutes ses réponses c’est bien ça ?
23 février 2009 à 16 h 50 min en réponse à : Problèmes de Respect de l’affichage Images et Textes mis en pages ! #650249Même problème pour moi, les images sont centrées en édition et se retrouvent plaquées à gauche une fois publiées.
Je me permets donc un petit up.
Pour créer un plugin, c’est vraiment simplissime en fait. Il suffit de faire un fichier PHP avec le header standard, et de le copier dans un dossier dédié dans « plugin ».
Il est pris automatiquement en compte dans l’admin et on peut l’activer. De ce côté là, WordPress a fait très fort.
Pour le reste, j’ai enfin compris la logique des hook, des filters, des actions, des callbacks … Je n’irai pas jusqu’à coder un plugin avec page d’admin mais ça ne me fait plus peur 🙂
Au fait, si qqun est intéressé par ma chiure de mouche, c’est sans souci.
Ouf, après de longues heures de tatonnements :
function get_comments_number_without_author( $count ) {
global $wpdb, $post;
$post = get_post($post_id);
$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;
}En fait, j’ai repris la variable de la fonction d’origine plutôt que la variable définie dans le apply_filter pour écrire ma fonction.
Ensuite, je me suis emmélé les pinceaux car je n’avais pas compris le mécanisme des variables globales.
Bref, ça marche, euréka, it’s alive aliiiive !
Je vais quand même rafraichir mes connaissances en PHP 🙂
Bon ben je suis bloqué là. La requête marche très bien sur la base directement, mais par WP, ça ne donne pas le bon résultat :
function get_comments_number_without_author( $post_id = 0 ) {
$post = get_post($post_id);
$post_author_id = $post->post_author;
global $wpdb;
$count_req = « SELECT COUNT(*) FROM $wpdb->comments WHERE user_id « +$post_author_id+ » AND comment_post_ID = « +$post_id;
$count = $wpdb->get_var($count_req);
return $post_id;
}3 points d’erreur possible :
– la valeur de $post_id qui n’est pas celle que je pense
– post_author_id qui n’a pas la valeur que je pense
– get_var qui merdoieBon voilà mon plugin qui ne marche pas…
Une question subsidiaire : pas moyen de faire comprendre le header du plugin à l’administration. Il m’affiche presque tout le fichier pour le nom et la description dans la liste des plugin. C’est quoi le séparateur de chaque information ?
// Filter : get_comments_count (ne pas compter ceux de l’auteur)
function get_comments_number_without_author( $post_id = 0 ) {
global $id;
$post_id = (int) $post_id;
if ( !$post_id )
$post_id = (int) $id;
$post = get_post($post_id);
$post_author = $post->post_author;
$comments_array = get_approved_comments($post_id);
$count = 0;
foreach($comments_array as $comment){
$comment_author = $comment->comment_author;
if ($comment_author == $post_author) {
$count++;
}
}
return $count;
}
add_filter(‘get_comments_number’, ‘get_comments_number_without_author’);Bon je remonte ce post pour que quelqu’un m’aide à résoudre mes derniers soucis sur ce sujet 🙂
– Affichage différent des commentaires de l’auteur : OK grâce à WP2.7 natif (modification du CSS)
– Affichage threadé des commentaires de l’auteur quand il répond : OK grâce à WP2.7Il me reste un dernier problème : comment puis-je faire pour que le décompte des commentaires d’un article ne compte pas les commentaires de l’auteur sur les pages du blog (article seul, accueil, par catégories …)
Merci beaucoup piekes, ta solution me fait moins peur que les autres 🙂
La réponse m’intéresse aussi 🙂 Tout ce que j’avais trouvé, c’était des hacks des fichiers WordPress et ça ne me plait pas des masses.
Pareil gros souci avec la mise à jour automatique, j’ai pris la version complète
En revanche, ça n’a pas enlevé le message d’information sur la mise à jour 2.7.1 dans l’admin, c’est chiant …
-
AuteurMessages