Boucle qui ne se termine pas? (Créer un compte)

  • Statut : non résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #464707
    geekubuntu
    Participant
    Chevalier WordPress
    286 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 2.6.3

    Problème(s) rencontré(s) :

    voici deux codes sur le header:

    <?php if (have_posts()) :
    query_posts("p=36");
    while (have_posts()) : the_post(); ?>

    > <a href="<?php the_permalink(); ?> » title= »Titre en Une »><?php the_title(); ?></a>

    <?php endwhile; ?>
    <?php endif; ?>

    <br />
    <br />

    <?php if (have_posts()) :
    query_posts("p=10");
    while (have_posts()) : the_post(); ?>

    > <a href="<?php the_permalink(); ?> » title= »Titre en Une »><?php the_title(); ?></a>

    <?php endwhile; ?>
    <?php endif; ?>

    pour afficher deux titres de billets précis.

    le problème c’est qu’à chaque page d’article c’est toujours le même contenu: celui du dernier publié! si je les enléve, les billets s’affichent normalement. Ais-je fait une erreur de syntaxe?

    ++

    #651436
    dlo
    Participant
    Maître WordPress
    1849 contributions

    Humm, si tu connais à l’avance les 2 articles à afficher, pourquoi se fatiguer (et charger inutilement le serveur) à faire une requête dans la base ? Il suffit d’inclure directement leurs URL dans le code.

    Ainsi tu ne perturbes pas le fonctionnement normal de WordPress.

    Cordialement

    #651435
    geekubuntu
    Participant
    Chevalier WordPress
    286 contributions

    Oui mais le problème c’est que ça le fait si j’intégre un code comme


    > <a href=" » title= »Titre en Une »></a>

    j’aimerais savoir ce qui beuggue :(

    #651434
    dlo
    Participant
    Maître WordPress
    1849 contributions

    Je ne comprend pas bien où tu veux en venir, je suis désolé…
    Dans quel fichier mets-tu ce code ? Et que cherches-tu à obtenir exactement ?

    #651433
    geekubuntu
    Participant
    Chevalier WordPress
    286 contributions

    je le mets dans mon header, afin d’afficher un titre d’article d’une catégorie précise.

    Sur les pages single.php et page.php , je me retrouve avec le même contenu, quelque soit le message 😕 Et quand j’enléve ce code de mon header, et bien tout redevient normal, d’ou ma question sur quelle erreur de syntaxe j’ai bien pu faire.

    #651437
    dlo
    Participant
    Maître WordPress
    1849 contributions

    Ce n’est pas une errreur de syntaxe mais plutôt une erreur de logique…

    Le fait d’introduire une requête query_posts() dans le header.php (ou dans tout autre fichier template, d’ailleurs) annule la sélection d’articles faite automatiquement par WordPress en fonction de la dernière action de l’utilisateur.

    Donc, ce n’est pas étonnant que tu obtiennes toujours le même contenu puisque tu demandes à WordPress de sélectionner un article en particulier !

    C’est pour cela que je te suggérais d’utiliser directement les URL des articles au lieu de refaire une sélection via query_posts(). Ce qui est bien plus rapide et moins consommateur de ressources puisque tu connais déjà les identifiants des articles.

    Je ne sais pas si j’ai été clair.

    #651438
    geekubuntu
    Participant
    Chevalier WordPress
    286 contributions

    Donc c’est impossible d’avoir un article dans les fichiers header ou footer?

    Le problème c’est que j’ai besoin d’afficher un titre d’article, de manière dynamique; À moins de le faire manuelleùent, auquel cas je me rapproche d’un site en xhtml simple 😕 Tu prends l’exemple que je connais déjà les identifiants, mais finalement je vais aussi avoir besoin que cela soit dynamique.

    ++

    #651439
    dlo
    Participant
    Maître WordPress
    1849 contributions

    Il n’est pas impossible d’avoir une autre sélection d’articles sans perturber la sélection « standard » de WordPress.

    Pour cela, voici un article qui décrit la procédure à suivre pour créer « proprement » sa propre boucle.

    Cordialement

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