- Statut : non résolu
- Ce sujet contient 6 réponses, 3 participants et a été mis à jour pour la dernière fois par grosbouff, le il y a 17 années et 2 mois.
-
AuteurMessages
-
5 septembre 2007 à 14 h 55 min #453917
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 2.2.2
– Thème utilisé : mélange très maladroit de plusieurs, donc le mien
– Plugins en place : Askimet, Bkvideo, ClickableDate, FLV Embeded-FR, Simple Tagging, Stick Post 2, WP-Contactform
– Nom de l’hebergeur : free
– Adresse du site : http://incaudavenenum.label.free.fr/blog/Problème(s) rencontré(s) :
Je personnalise peu à peu mon blog en pompant des bouts de code sur différents thèmes et en explorant le forum et le codex. Jusque là, je m’en sortais pas trop mal, mais là, je sèche sur un truc.
Je voudrais que certains articles restent affichés en tête de leur catégorie (même s’il y a des articles plus récents), mais n’apparaissent pas sur la home page (index.php).
J’ai donc installé le plug-in « Stick Post2 » qui, si j’ai bien compris, est censé placer un article en tête, justement, mais de la home page (ce que je ne veux pas). J’ai donc cherché un moyen d’empêcher l’affichage d’un article sur la home page, et j’ai trouvé ça :
<?php
if (is_home()) {
query_posts("cat=-3");
}
?>à placer avant la boucle sur index.php, sauf que cela permet d’exclure une catégorie la 3, dans l’exemple) et non un article.
J’ai donc transformé le code ainsi :<?php
if (is_home()) {
query_posts("p=-58");
}
?>en espérant que cela exclurait l’article « 58 » de l’affichage en home page.
En fait, cela m’a enlevé tous les articles. Pas cool.
Je suppose que le « p=-58 » ne doit pas être un truc orthodoxe, mais je ne vois pas quoi faire d’autre.Autre solution envisagée : créer une catégorie (« 7 » dans mon exemple) sous la catégorie-mère (« 3 ») où se trouve l’article que je veux exclure, et exclure cette nouvelle catégorie de l’affichage en home page, avec
<?php if (in_category('7')) continue; ?>
placé après
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>Là, ça marche impec pour exclure la catégorie « 7 ».
En plus de la catégorie « 3 », j’associe donc mon article à la catégorie « 7 » (que je voudrais virer aussi de la sidebar, mais ça, j’y songerai plus tard). Mais tant que mon article reste aussi associé à une catégorie visible en home page, il reste visible aussi. Pas bon. parce que je ne vais pas mettre mon article uniquement dans la catégorie « 7 » puisque je veux qu’il apparaisse normalement dans la « 3 »En attendant de trouver une solution, j’essaie tout de même le plug-in « Stick Post 2 » cité plus haut.
Bon, la page d’admin du plug-in m’offre un menu déroulant avec en choix seulement 25 articles (or, ceux que je veux « sticker » sont loin derrière). Je trifouille donc le code du plug-in à la recherche de la limitation à 25, et je remplace ce chiffre par 200. Ça semble marcher et je peux ainsi sélectionner mon article pour le mettre en position 1.
Et là, non seulement il me met bien l’article en tête de sa catégorie, mais contrairement à ce à quoi je m’attendais, il ne le place pas en tête de la home page. C’est finalement assez proche de ce que je voulais : miracle !
Eh non. Maintenant, quand je clique sur une autre catégorie que la « 3 » (celle de mon article), j’obtiens ce message d’insulte :Erreur de la base de données de WordPress : [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘122,88,87,71,65,1,67,66,86,118,42,103,100,85,96)’ at line 1]
SELECT post_id, category_id FROM wpblog_post2cat WHERE post_id IN (,122,88,87,71,65,1,67,66,86,118,42,103,100,85,96)
Erreur de la base de données de WordPress : [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘122,88,87,71,65,1,67,66,86,118,42,103,100,85,96) ORDER BY post_id, meta_key’ at line 1]
SELECT post_id, meta_key, meta_value FROM wpblog_postmeta WHERE post_id IN(,122,88,87,71,65,1,67,66,86,118,42,103,100,85,96) ORDER BY post_id, meta_keyÇa ne fait pas très beau sur la page, ça.
Voilà donc où j’en suis. Désolé d’avoir été si long, mais parmi tous les trucs que j’ai tenté, je me suis sûrement planté quelque part et quelqu’un de plus calé que moi pourrait peut-être me dire où ?
Sinon, si quelqu’un a une autre solution à me proposer pour arriver à mon but, je suis preneur.
Merci d’avance.5 septembre 2007 à 18 h 29 min #609080Il y a une solution correspondant à peu près à ce que tu recherches en cours de test ^^
Ici : http://www.wordpress-fr.net/support/sujet-7793-query-posts-conditions5 septembre 2007 à 18 h 52 min #609081Merci pour cette réponse.
J’avais vu ce post mais j’avoue que cela m’a semblé un peu trop compliqué pour moi, surtout qu’il s’agit de forcer un article d’une catégorie à apparaître en premier sur la page d’accueil, alors que moi, je voudrais qu’il n’apparaisse pas du tout sur la page d’accueil, sans exclure pour autant les autres posts de la même catégorie.
Le fond du problème, c’est comment exclure un post unique de la page d’accueil… J’ai vu plusieurs fois des solutions pour exclure des catégories, mais jamais pour exclure des posts individuellement.5 septembre 2007 à 19 h 56 min #609082En fait, la solution donnée fait apparaître un article, mais ensuite montre comment l’exclure.
5 septembre 2007 à 20 h 07 min #609083Bon ben je vais essayer de comprendre, alors, mais les query_post, j’ai un peu de mal à saisir (je me lance là-dedans sans aucune maîtrise du php).
Merci du tuyau.28 septembre 2007 à 14 h 11 min #609084Salut, est ce que tu as trouvé le moyen de faire ce que tu voulais ? C’est exactement ce que je cherche !
28 septembre 2007 à 17 h 23 min #609085J’ai réussi à le faire en modifiant le plugin « get-a-post » comme suit : http://pastebin.ca/718721
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.