Garder un post en tête de sa catégorie mais l’exclure de la home page (Créer un compte)

  • Statut : non résolu
7 sujets de 1 à 7 (sur un total de 7)
  • Auteur
    Messages
  • #453917
    sigogosi
    Participant
    Initié WordPress
    26 contributions

    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.

    #609080
    alakhnor
    Participant
    Maître WordPress
    996 contributions

    Il 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-conditions

    #609081
    sigogosi
    Participant
    Initié WordPress
    26 contributions

    Merci 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.

    #609082
    alakhnor
    Participant
    Maître WordPress
    996 contributions

    En fait, la solution donnée fait apparaître un article, mais ensuite montre comment l’exclure.

    #609083
    sigogosi
    Participant
    Initié WordPress
    26 contributions

    Bon 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.

    #609084
    grosbouff
    Membre
    Initié WordPress
    13 contributions

    Salut, est ce que tu as trouvé le moyen de faire ce que tu voulais ? C’est exactement ce que je cherche !

    #609085
    grosbouff
    Membre
    Initié WordPress
    13 contributions

    J’ai réussi à le faire en modifiant le plugin « get-a-post » comme suit : http://pastebin.ca/718721

7 sujets de 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.