Bonjour à tous !

Alors voilà, je me suis mit aux custom post type, tout fonctionne à merveille ( grace aux conseils de Grafikart, bien entendu ), mais je rencontre une bosse.
J'ai intégré un breadcrumbs sur l'ensemble du site, sans plugin, fonctionnel.
J'y ai ajouté qq lignes :

elseif ( is_post_type_archive() ) {
            $sep = ' > ';
            echo $sep;
            echo post_type_archive_title(). "</span>";}

ça affiche bien le nom du custom post, mais lorsque je rentre dans l'un des posts, catastrophe...
Le code prend en compte la condition "is_single" de mon breadcrumbs, alors que je souhaiterai qu'il m'affiche tout ça sous cette forme :

Accueil > Custom post type > (custom post type )Post title

Et impossible de trouver le bon conditionnal tag. J'en ai testé plusieurs, sans résultat. Vous avez une idée ?

Ci-joint, le code complet du breadcrumbs

global $wp_query; ?>

    <div class="breadcrumbs">
    <span class="prefix-text"><?php echo __( 'Vous êtes ici') . ':'; ?></span>
    <a href="<?php echo home_url( '/' ); ?>" rel="home"><?php _e( 'Accueil'); ?></a>
    <?php
    if ( is_category() ){
        $catTitle = single_cat_title( "", false );
        $cat = get_cat_ID( $catTitle );
        echo " > ". get_category_parents( $cat, TRUE, " > " ) ."</span>";}
    elseif ( is_tag() ) {
        echo " > Articles sur le Thème <span id=\"breadtitle\">> ";
        echo the_title('','', FALSE) ."</span>";}
    elseif ( is_post_type_archive() ) {
            $sep = ' > ';
            echo $sep;
            echo post_type_archive_title(). "</span>";}
    elseif ( is_archive() && !is_category() ) {
        if (is_author() ) {
        $author = get_userdata( get_query_var( 'author' ) );
        $sep = ' › ';
        echo $sep;
        if( is_paged() ) {
            echo '<a href="' . get_author_posts_url( get_query_var( 'author' ) ) . '">';
            echo __( 'Articles de', '' ) . ' ' . $author->display_name . '';
            echo '</a>';
        } else
            echo __( 'Articles de', '' ) . ' ' . $author->display_name . '';}
        else echo " > Archives</span>";}
    elseif ( is_search() ) {
        echo " > Résultats de votre recherche <span id=\"breadtitle\">> ";
        echo get_search_query() ."</span>";}
    elseif ( is_404() ) {
        echo " > 404 Page non trouvée</span>";}
    elseif ( is_single() ){
        $category = get_the_category();
        $category_id = get_cat_ID( $category[0]->cat_name );
        echo ' > '. get_category_parents( $category_id, TRUE, " > " );
        echo ' > ';
        echo '<span id="breadtitle">';
        echo the_title('','', FALSE) ."</span>";}
    elseif ( is_page() ) {
        $post = $wp_query->get_queried_object();
        if ( $post->post_parent == 0 ){
            echo " > ".the_title('','', FALSE)."</span>";
            } 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></span>';
                } else {
                    echo ' '. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</span>';}}}}
        echo "</div>"

4 réponses


Lotfi Berrahal
Réponse acceptée

Bonsoir,
Il y a ce petit lien ( je suppose que c'est ici que tu a pris le code pour ton fil d'arianne mais on sais jamais je te le laisse ! :)

Le lien
Dans les commentaires il y a plusieurs techniques utilisées dont tu peux t'inspirer et peut être trouver ton bonheur.

Si vraiment tu bute alors reviens vers nous et on verra ce qu'on peut faire plus profondément ! :)

Estillia
Auteur
Réponse acceptée

Rebonjour !

Alors, j'ai testé la version breadcrumbs de SeoMix et elle a l'air de correctement fonctionner. Le code est bien moins simple pour moi, mais reste editable en cas de besoin.
Merci à SeoMix pour son code et merci à Lotfi pour m'avoir guidé :)

( Là j'essaie de dépiauter le code pour comprendre comment il a fait, quand même, mais j'ai un peu de mal... )

Estillia
Auteur

Petite précision :
Si je laisse le code tel quel, j'ai une erreur dans la condition is_single ( echo ' > '. get_category_parents( $category_id, TRUE, " > " ); )
Si je la passe en commentaire, j'ai le titre qui s'affiche, mais je n'ai pas le nom du custom post type entre ce titre et Accueil ( en clair, j'ai Accueil > titre, alors que je veux Accueil > custom post > titre )

Je radote, mais j'essaie d'apporter le plus de précisions possibles :)

Merci d'avance !

Estillia
Auteur

Bonjour et merci Lotfi!
Bon, je n'ai pas vraiment trouvé la réponse à ma question, hormis peut-être avec la solution de Soemix, que je vais essayer maintenant, j'ai cru appercevoir dans son code une partie custom post type. ( Et comme le dit l'auteur, le sien présente des avantages sur le référencement google etc etc ).

Bref, je teste ça et je reviens par ici :)

ps : Non ce n'est pas le code que j'ai utilisé, je l'ai trouvé je ne sais plus où et je l'ai un peu modifié. mais ça n'était pas loin en effet :)