Petit probleme de code HTML

pomme man

Membre actif
8 Juin 2004
151
8
Bonjour,

j'ai récupérer un bout de code d'un thème gratuit et je suis en train de la modifier à ma sauce.
C'est là que j'ai besoin de vous oh joyeux héros de la toile !

Voila l'histoire.
De base, sur le thème, il est prévu en "colonne de gauche" un titre qui laisse apparaitre de façon automatique les postes provenant de la catégorie "PORTFOLIO".


------------------------------- le code original ----------------------------------
Bloc de code:
<?php get_header(); ?>
  
  <div id="left_container">
  
  <h3>Portfolio</h3>
    <ul class="left_list">
    
       <?php
         global $post;
         $myposts = get_posts('numberposts=9&category_name=Portfolio');
         foreach($myposts as $post) :
           setup_postdata($post);
         ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      
       <?php endforeach; ?>
-------------------------------------------------------------------------------------
d4k1oe


je souhaiterais "dupliquer" cette fonction pour afficher d'autre catégories...


Donc, quand je duplique le code... ça fonctionne !

------------------------------- le code original dupliqué----------------------------------
Bloc de code:
<?php get_header(); ?>
  
  <div id="left_container">
  
  <h3>Portfolio</h3>
    <ul class="left_list">
    
       <?php
         global $post;
         $myposts = get_posts('numberposts=9&category_name=Portfolio');
         foreach($myposts as $post) :
           setup_postdata($post);
         ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      
       <?php endforeach; ?>    
    
    <h3>Portfolio</h3>
    <ul class="left_list">
    
       <?php
         global $post;
         $myposts = get_posts('numberposts=9&category_name=Portfolio');
         foreach($myposts as $post) :
           setup_postdata($post);
         ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      
       <?php endforeach; ?>    
    </ul>
-------------------------------------------------------------------------------------
6adg5u


mais quand je modifier le la catégory... ça n'affiche plus rien !

------------------------------- le code dupliqué et modifié----------------------------------
Bloc de code:
<?php get_header(); ?>
  
  <div id="left_container">
  
  <h3>[COLOR=#FB2B03]ESSAI[/COLOR]</h3>
    <ul class="left_list">
    
       <?php
         global $post;
         $myposts = get_posts('numberposts=9&category_name=[COLOR=#F72407]ESSAI[/COLOR]');
         foreach($myposts as $post) :
           setup_postdata($post);
         ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      
       <?php endforeach; ?>    
    
    <h3>Portfolio</h3>
    <ul class="left_list">
    
       <?php
         global $post;
         $myposts = get_posts('numberposts=9&category_name=Portfolio');
         foreach($myposts as $post) :
           setup_postdata($post);
         ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      
       <?php endforeach; ?>    
    </ul>
-------------------------------------------------------------------------------------
qiwx9g


Je pense que, quelques part, un code définie les catégory qui marche avec cette fonction...

Mais je n'y connais pas grand choses puisque je débute... donc... aidez moi svp !




Ma configuration WP actuelle

- Version de WordPress :3.1
- Version de PHP/MySQL : PHP/5.3.2 DAV/2 et Version du client MySQL: 5.1.44
- Thème utilisé :Swiss Design
 
Bonjour,

j'ai récupérer un bout de code d'un thème gratuit et je suis en train de la modifier à ma sauce.
C'est là que j'ai besoin de vous oh joyeux héros de la toile !

Voila l'histoire.
De base, sur le thème, il est prévu en "colonne de gauche" un titre qui laisse apparaitre de façon automatique les postes provenant de la catégorie "PORTFOLIO".


------------------------------- le code original ----------------------------------
Bloc de code:
<?php get_header(); ?>
  
  <div id="left_container">
  
  <h3>Portfolio</h3>
    <ul class="left_list">
    
       <?php
         global $post;
         $myposts = get_posts('numberposts=9&category_name=Portfolio');
         foreach($myposts as $post) :
           setup_postdata($post);
         ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      
       <?php endforeach; ?>
-------------------------------------------------------------------------------------
d4k1oe


je souhaiterais "dupliquer" cette fonction pour afficher d'autre catégories...


Donc, quand je duplique le code... ça fonctionne !

------------------------------- le code original dupliqué----------------------------------
Bloc de code:
<?php get_header(); ?>
  
  <div id="left_container">
  
  <h3>Portfolio</h3>
    <ul class="left_list">
    
       <?php
         global $post;
         $myposts = get_posts('numberposts=9&category_name=Portfolio');
         foreach($myposts as $post) :
           setup_postdata($post);
         ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      
       <?php endforeach; ?>    
    
    <h3>Portfolio</h3>
    <ul class="left_list">
    
       <?php
         global $post;
         $myposts = get_posts('numberposts=9&category_name=Portfolio');
         foreach($myposts as $post) :
           setup_postdata($post);
         ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      
       <?php endforeach; ?>    
    </ul>
-------------------------------------------------------------------------------------
6adg5u


mais quand je modifier le la catégory... ça n'affiche plus rien !

------------------------------- le code dupliqué et modifié----------------------------------
Bloc de code:
<?php get_header(); ?>
  
  <div id="left_container">
  
  <h3>[COLOR=#FB2B03]ESSAI[/COLOR]</h3>
    <ul class="left_list">
    
       <?php
         global $post;
         $myposts = get_posts('numberposts=9&category_name=[COLOR=#F72407]ESSAI[/COLOR]');
         foreach($myposts as $post) :
           setup_postdata($post);
         ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      
       <?php endforeach; ?>    
    
    <h3>Portfolio</h3>
    <ul class="left_list">
    
       <?php
         global $post;
         $myposts = get_posts('numberposts=9&category_name=Portfolio');
         foreach($myposts as $post) :
           setup_postdata($post);
         ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      
       <?php endforeach; ?>    
    </ul>
-------------------------------------------------------------------------------------
qiwx9g


Je pense que, quelques part, un code définie les catégory qui marche avec cette fonction...

Mais je n'y connais pas grand choses puisque je débute... donc... aidez moi svp !




Ma configuration WP actuelle

- Version de WordPress :3.1
- Version de PHP/MySQL : PHP/5.3.2 DAV/2 et Version du client MySQL: 5.1.44
- Thème utilisé :Swiss Design

il faut que tu regardes dans ta base de donnée le nom exact de la catégorie que tu veux ajouter
 
Dernière édition:
il faut que tu regardes dans ta base de donnée le nom exacte de la catégorie que tu veux ajouter

ok... merci de me répondre si vite !
mais... de quel base de donné parle tu ? MySql ?
j'ai épluché les boucles... mais je ne trouve définitivement rien !
 
Dernière édition:
Si tu ne nous donnes pas la source de la fonction get_posts (et ses éventuelles sous-fonctions) et qu'on ne connait pas non plus le contenu de la base, on ne va pas pouvoir aller bien loin.

Salut.
Merci de vouloir m'aider...
j'aimerais bien te donner tous ce que tu demande... mais je n'ai aucun idée de ce que c'est !

Alors : get_posts, ou trouver ses fonctions et sous fonctions ?
"le contenu de la base"... ok, quel base ?
 
Salut.
Merci de vouloir m'aider...
j'aimerais bien te donner tous ce que tu demande... mais je n'ai aucun idée de ce que c'est !

Alors : get_posts, ou trouver ses fonctions et sous fonctions ?
"le contenu de la base"... ok, quel base ?

de la base de données.
bon, j'ai vraiment pas envie d'installer un WP juste pour regarder...
 
dit moi juste rapidement comment te donner les info don tu as besoin ! aahahahahaha

---------- Nouveau message ajouté à 00h41 ---------- Le message précédent a été envoyé à 00h36 ----------

la base ne comporte que 4 poste pour le moments.
mais je n'arrive pas à trouver justement la fonction get_posts autre part que dans les extrait déjà posté !

pfff, j'men sort pas... SOS!
 
as tu créé un seconde categorie autre que Portfolio ?
 
oui, j'ai deux cat et 2 poste dans chaque categorie

---------- Nouveau message ajouté à 00h59 ---------- Le message précédent a été envoyé à 00h57 ----------

je suis en train d’éplucher des sites qui parle de la fonction get_poste ... mais je comprend de moine en moine pourquoi ça ne fonctionne pas !
Je pense que, quelques part dans le code, il y a une fonction qui dit que seul la categorie "portfolio"" fonctionne justement avec ce get_poste... non ?

---------- Nouveau message ajouté à 01h33 ---------- Le message précédent a été envoyé à 00h59 ----------

Bloc de code:
function catch_that_image() {
  global $post, $posts;
  $first_img = '';
  ob_start();
  ob_end_clean();
  $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
  $first_img = $matches [1] [0];

j'ai trouvé ça dans le fichier fonction.php
il y a ici une référence au balise post et mypost...
ce ne serais pas ça la restriction ?

---------- Nouveau message ajouté à 01h53 ---------- Le message précédent a été envoyé à 01h33 ----------

Comme je ne m'en sort définitivement, voici la totalité du fichier index.php...
finalement, je pense que le problème réside quelques part ici ?


Bloc de code:
<?php get_header(); ?>
  
  <div id="left_container">
  
  <h3>Portfolio</h3>
    <ul class="left_list">
    
       <?php
         global $post;
         $myposts = get_posts('numberposts=9&category_name=Portfolio');
         foreach($myposts as $post) :
           setup_postdata($post);
         ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      
       <?php endforeach; ?>    
      
  
  <h3>ESSAI</h3>
    <ul class="left_list">
    
       <?php
         global $post;
         $myposts = get_posts('numberposts=9&category_name=Factual');
         foreach($myposts as $post) :
           setup_postdata($post);
         ?>
      <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
      
       <?php endforeach; ?>  
    
    <h3>About</h3>
    
    <p>Monsieur le DA /Designer and Art Director</p>

    <p>Expert Branding and print &amp; Illustrations design, focus on font and usability.</p>
    
    <h3>Contact</h3>
    
    <ul class="left_list">
      <li>Monsieur Le DA</li>
      <li><a href="mailto:[email protected]">[email protected]</a></li>
       <li><a href="http://www.twitter.com">Twitter</a></li>
      <li><a href="http://www.facebook.com">Facebook</a></li>
      <li><a href="http://www.tumblr.com">Tumblr</a></li>
      <li class="last"><a href="http://www.flickr.com">Flickr</a></li>
    </ul>
    
    <h3>Links</h3>
    
    <ul class="left_list">
      <?php wp_list_bookmarks('title_li=&categorize=0'); ?>
    </ul>
    
  </div><!--//left_container-->
  
  
  <div id="center_container">
  
     <?php
       global $post;
       $myposts = get_posts('numberposts=5&category_name=Featured Small');
       foreach($myposts as $post) :
         setup_postdata($post);
       ?>
       
    
    <div class="featured_post">
      <h3 class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); //echo substr(get_the_title(),0,35); ?></a></li>
      
      <?php
      if ( has_post_thumbnail() ) {
        ?> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('featured-small'); ?></a> <?php
      } else {
        ?> <a href="<?php the_permalink(); ?>"><img src="<?php echo catch_that_image() ?>" /></a> <?php
      }
      ?>
    </div><!--//featured_post-->
    
     <?php endforeach; ?>    
    
  </div><!--//center_container-->
  
  
  <div id="right_container">
  
     <?php
       global $post;
       $myposts = get_posts('numberposts=5&category_name=Featured Big');
       foreach($myposts as $post) :
         setup_postdata($post);
       ?>
       
    <div class="featured_post">
      <h3 class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); //echo substr(get_the_title(),0,85); ?></a></h3>
      
      <?php
      if ( has_post_thumbnail() ) {
        ?> <span class="home_image"><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('featured-big'); ?></a></span> <?php
      } else {
        ?> <a href="<?php the_permalink(); ?>"><img src="<?php echo catch_that_image() ?>" class="featured_big" /></a> <?php
      }
      ?>
      
    </div><!--//featured_post-->
  
     <?php endforeach; ?>    
    
  </div>
  
<?php get_footer(); ?>
 
D'après l'exemple que tu mets

qiwx9g


Il semblerai que la catégorie que tu nommes "ESSAI" soit vide

attention, il faut prendre la version normalisée du nom de la catégorie et pas son nom (voir dans l'admin l'édition de la catégorie et "identifiant")

L'autre idée serait que la requète n'est pas remise à zéro et il faudrait alors entre chaque boucle après le endforeach mettre
Bloc de code:
<?php wp_reset_query(); ?>
 
plutot que d'interroger la base sur le nom de la catégorie, il aurait été plus simple et plus propre de l'interroger sur l'identifiant de la catégorie, soit au lieu de demander category_name=Factual, demander l'identifiant de la catégorie que tu trouves directement dans ton espace d'administration wordpress, dans la partie relative à la gestion des tes catégories

De plus, Johannès a raison, si tu passe par une interrogation sur le nom de la catégorie, il faut utiliser le nom normaliser qui est peut-être différent du nom affiché (minuscule/majuscule etc)

Sinon, c'est clair, pour que des résultats s'affichent, il faut que tu aies au moins un articles publié dans la catégorie que tu appelles

Ensuite, deuxième chose. Tu définies 2 fois ta variable global $post; Or pour la deuxième boucles, tu l'assignes à une catégorie différente...

Pour la deuxième boucle, change ta boucle plutôt avec $post2 pour ne pas interférer avec la première boucle