Exlure le fil d'ariane de sa page d'accueil

Nouveau WRInaute
Bonjour à tous,

Je me permet de vous importuner car je n'arrive pas à trouvé la réponse chez mon ami Google.

Je suis en phase de création d'un blog. Sur celui-ci, j'ai mis un fil d'ariane avec le code php suivant, que j'ai trouvé chez notre ami GG:

Code:
// BreadCrumb
function get_breadcrumbs() {
	global $wp_query;
	if ( is_home ()) {
    echo '<font color="#C42200">Bienvenue sur le <strong>blog de la Guyonniere, un camping en Vend&eacute;e</strong> !</font><ul class="breadcrumbs">';
		echo '<span id="breadhome">Nos derniers articles :</span>'; }
  else {
		echo '<a id="breadhome" href="'. get_settings('home') .'">'. get_bloginfo('name') .'</a>';
		if ( is_category() ){
			$catTitle = single_cat_title( "", false );
			$cat = get_cat_ID( $catTitle );
			echo " &raquo;&raquo; ". get_category_parents( $cat, TRUE, " &raquo;&raquo; " ) ."</li>";}
    elseif ( is_tag() )	{
			echo " &raquo;&raquo; Articles sur le Th&egrave;me <span id=\"breadtitle\">&raquo;&raquo; ";
      echo the_title('','', FALSE) ."</span></li>";}
    elseif ( is_archive() && !is_category() )	{
			echo " &raquo;&raquo; Archives</li>";}
		elseif ( is_search() ) {
			echo " &raquo;&raquo; R&eacute;sultats de votre recherche <span id=\"breadtitle\">&raquo;&raquo; ";
      echo get_search_query() ."</span></li>";}
		elseif ( is_404() )	{
			echo " &raquo;&raquo; 404 Page non trouv&eacute;e</li>";}
		elseif ( is_single() ){
			$category = get_the_category();
			$category_id = get_cat_ID( $category[0]->cat_name );
			echo ' &raquo;&raquo; '. get_category_parents( $category_id, TRUE, " &raquo;&raquo; " );
			echo '<span id="breadtitle">';
      echo the_title('','', FALSE) ."</span></li>";}
		elseif ( is_page() ) {
			$post = $wp_query->get_queried_object();
			if ( $post->post_parent == 0 ){
				echo " &raquo;&raquo; ".the_title('','', FALSE)."</li>";
			} else {
				$title = the_title('','', FALSE);
				$ancestors = array_reverse( get_post_ancestors( $post->ID ) );
				array_push($ancestors, $post->ID);
				foreach ( $ancestors as $ancestor ){
					if( $ancestor != end($ancestors) ){
						echo '<a href="'. get_permalink($ancestor) .'">'. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</a></li>';
					} else {
						echo ' '. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</li>';}}}}
		echo "</ul>";}}

Que modifier pour exclure mon fil d'ariane de ma page d'accueil.
J'ai essayé de mettre (!is_home()), mais le fil s'exclut de toutes les pages du site.

Par avance, merci
Antoine
 
Nouveau WRInaute
SpeedAirMan a dit:
Bonjour et bienvenue sur WRI La Guyonniere !

Il y'a aussi is_front_page()

Lien précieux : http://codex.wordpress.org/Conditional_Tags

If is_home devrait fonctionner (attention : il est déjà présent dans le code que tu as fourni).

Bonjour SpeedAirMan,

Merci pour le lien, je vais essayer d'y trouver mon bonheur.
2 questions, cependant: Quel est le contraire de is_home() ? et où dois-je placer is_front_page()?
 
WRInaute passionné
@tyran : ton code devrait fonctionner sur n'importe quel site en PHP.
WordPress donne accès à des fonctions toutes prêtes (cf lien donné plus haut) qui permettent de... disons, mieux gérer ça.


2 questions, cependant: Quel est le contraire de is_home() ? et où dois-je placer is_front_page()?
!is_home() ou is_page() ou is_single(), tout dépend de ce que tu veux faire et de ce que tu entends pas "contraire".

is_front_page() : tout dépend encore de ce que tu veux faire...

Quel est ton niveau en PHP / "WordPress templating" ? Car je dirai qu'à priori le code est simple... (et que tu as tous les éléments pour y arriver).
 
Nouveau WRInaute
!is_home() ou is_page() ou is_single(), tout dépend de ce que tu veux faire et de ce que tu entends pas "contraire".
is_front_page() : tout dépend encore de ce que tu veux faire...
Je souhaite que mon fil d'Ariane n'apparaisse pas sur ma page d'accueil. Par contraire, j'entendais le fait d'exclure is home.

Comment peut-on dire en PHP, que je ne veux pas de fil d'ariane sur ma page d'accueil?

Quel est ton niveau en PHP / "WordPress templating" ? Car je dirai qu'à priori le code est simple... (et que tu as tous les éléments pour y arriver).

Mon niveau était proche du zéro hier matin et je me doutais que ce soit simple pour beaucoup d'entre vous. Mais je ne désespère pas de comprendre.
 
WRInaute passionné
Ok ;-)

Je demandais ça car tu es très proche de la solution (à priori), et que le but n'est pas que je fasse le boulot à ta place :mrgreen:


Essaye de remplacer le code que tu as donné plus haut par celui ci :
Code:
    // BreadCrumb
    function get_breadcrumbs() {
       global $wp_query;
       if ( is_home ()) {}
      else {
          echo '<a id="breadhome" href="'. get_settings('home') .'">'. get_bloginfo('name') .'</a>';
          if ( is_category() ){
             $catTitle = single_cat_title( "", false );
             $cat = get_cat_ID( $catTitle );
             echo " &raquo;&raquo; ". get_category_parents( $cat, TRUE, " &raquo;&raquo; " ) ."</li>";}
        elseif ( is_tag() )   {
             echo " &raquo;&raquo; Articles sur le Th&egrave;me <span id=\"breadtitle\">&raquo;&raquo; ";
          echo the_title('','', FALSE) ."</span></li>";}
        elseif ( is_archive() && !is_category() )   {
             echo " &raquo;&raquo; Archives</li>";}
          elseif ( is_search() ) {
             echo " &raquo;&raquo; R&eacute;sultats de votre recherche <span id=\"breadtitle\">&raquo;&raquo; ";
          echo get_search_query() ."</span></li>";}
          elseif ( is_404() )   {
             echo " &raquo;&raquo; 404 Page non trouv&eacute;e</li>";}
          elseif ( is_single() ){
             $category = get_the_category();
             $category_id = get_cat_ID( $category[0]->cat_name );
             echo ' &raquo;&raquo; '. get_category_parents( $category_id, TRUE, " &raquo;&raquo; " );
             echo '<span id="breadtitle">';
          echo the_title('','', FALSE) ."</span></li>";}
          elseif ( is_page() ) {
             $post = $wp_query->get_queried_object();
             if ( $post->post_parent == 0 ){
                echo " &raquo;&raquo; ".the_title('','', FALSE)."</li>";
             } else {
                $title = the_title('','', FALSE);
                $ancestors = array_reverse( get_post_ancestors( $post->ID ) );
                array_push($ancestors, $post->ID);
                foreach ( $ancestors as $ancestor ){
                   if( $ancestor != end($ancestors) ){
                      echo '<a href="'. get_permalink($ancestor) .'">'. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</a></li>';
                   } else {
                      echo ' '. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</li>';}}}}
          echo "</ul>";}}
J'ai simplement retiré ce qui était ajouté en lieu et place du fil d'ariane pour la page d'accueil (en haut du code).


Au passage, intéressant la façon de coder le breadcrumb (la partie HTML) : utilisation de listes.
Perso, je préfère utiliser un simple paragraphe ou un div id="breadcrumb" (sans listes).
Plus d'informations à ce sujet : Exploring Markup for Breadcrumbs.
 
Nouveau WRInaute
SpeedAirMan a dit:
Ok ;-)

J'ai simplement retiré ce qui était ajouté en lieu et place du fil d'ariane pour la page d'accueil (en haut du code).

Dorénavant, je n'ai plus les info du style "bienvenue sur mon blog" (c'est très bien ça ;)) mais malheureusement, j'ai encore:
Accueil>> Page Accueil.

Il faudrait que je trouve le langage qui dit: "Mets un fil d'Ariane partout sauf sur ma home, OK? :evil: ". :lol:

Je vais voir du côté de mon code de mon template de page, pour voir s'il n'y a pas quelque chose à supprimer là-bas.
 
WRInaute passionné
Là j'ai fait le code "à l'aveuglette". Voir comment est codé l'ensemble de la page pourrait être utile.

Si tu ne trouves pas, reviens vers moi en me donnant plus d'infos (adresse de ton site, code du template de la page etc.).
 
Nouveau WRInaute
SpeedAirMan a dit:
Là j'ai fait le code "à l'aveuglette". Voir comment est codé l'ensemble de la page pourrait être utile.

Si tu ne trouves pas, reviens vers moi en me donnant plus d'infos (adresse de ton site, code du template de la page etc.).

Ok, là je n'ai plus que:

Accueil
le >>Page Accueil à disparu :)

Je suis sur la bonne voie. Je reviens vers toi si je suis bloqué ;) Merci

Maintenant, il faut lui dire "Si on est en page d'accueil, oublie le fil d'ariane"
 
Nouveau WRInaute
Yes, Yes, Yes!

Après de nombreuses heures de prise de tête, j'ai réussi :) et tout seul en plus :lol:

En faite, j'ai lu quelque part que si notre page d'accueil était une page statique il fallait remplacer is home () par is page (ID)... That's all!

Merci à vous tous, même si la blague de Haroeris était facile ;)
 
WRInaute passionné
Bravo ;-)
D'autant plus si tu ne connaissais pas grand chose au PHP avant.


Tu devrais partager le code final afin qu'il profite à d'autres webmasters qui font face au même problème :)
 
Nouveau WRInaute
Code:
   // BreadCrumb
    function get_breadcrumbs() {
       global $wp_query;
       if ( is_page (ID)) {}
      else {
          echo '<a id="breadhome" href="'. get_settings('home') .'">'. get_bloginfo('name') .'</a>';
          if ( is_category() ){
             $catTitle = single_cat_title( "", false );
             $cat = get_cat_ID( $catTitle );
             echo " &raquo;&raquo; ". get_category_parents( $cat, TRUE, " &raquo;&raquo; " ) ."</li>";}
        elseif ( is_tag() )   {
             echo " &raquo;&raquo; Articles sur le Th&egrave;me <span id=\"breadtitle\">&raquo;&raquo; ";
          echo the_title('','', FALSE) ."</span></li>";}
        elseif ( is_archive() && !is_category() )   {
             echo " &raquo;&raquo; Archives</li>";}
          elseif ( is_search() ) {
             echo " &raquo;&raquo; R&eacute;sultats de votre recherche <span id=\"breadtitle\">&raquo;&raquo; ";
          echo get_search_query() ."</span></li>";}
          elseif ( is_404() )   {
             echo " &raquo;&raquo; 404 Page non trouv&eacute;e</li>";}
          elseif ( is_single() ){
             $category = get_the_category();
             $category_id = get_cat_ID( $category[0]->cat_name );
             echo ' &raquo;&raquo; '. get_category_parents( $category_id, TRUE, " &raquo;&raquo; " );
             echo '<span id="breadtitle">';
          echo the_title('','', FALSE) ."</span></li>";}
          echo "</ul>";}}

Voilà grâce à ce code, vous avez un fil d'ariane partout sauf sur la page d'accueil. :wink:
 
Discussions similaires
Haut