Bonjour à tous,

Voici mon problème ! J'ai suivis et utilisé les tutoriels "Custom Post Type" et "Taxonomy" pour réaliser mon portfolio sous Wordpress. Le tout fonctionne à merveille sauf sur un petit point.

Ma page "/portfolio" n'affiche que 10 images maximum alors qu'elle devrait en afficher une vingtaine !

Quelqu'un a-t-il une idée du pourquoi et du comment ?

Pako

6 réponses


Grafikart
Réponse acceptée

Je suis désolé mais je peux pas t'aider plus que ça (tu demande limite qu'on te fasse le code).

pako974
Auteur

Voici le contenu de page "type-portfolio.php"

<div class="portfolio">
<ul class="image-grid">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <li>
        <h2><a><?php the_title(); ?></a><h2>

        <?php 
         if ( has_post_thumbnail()) {
           $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'large');
           echo '<a rel="lightbox[uniqueID|filename]" href="' . $large_image_url[0] . '" title="<?php the_title(); ?>' . the_title_attribute('echo=0') . '" >';
           echo get_the_post_thumbnail($post->ID, 'portfolio'); 
           echo '</a>';
         }
        ?>

    </li>
    <div class="clear"></div>
<?php endwhile; else: ?>
    <p><?php_e('Sorry, no posts'); ?></p>
<?php endif; ?>
</ul>
</div>

J'ai associé un plugin Lightbox permettant de zoomer sur mes images.
Je pense que la fonction

'posts_per_page' =>-1

est la bonne solution pour afficher toutes mes images (et supprimer cette limitation à 10 images) mais après avoir essayé pendant des heures je n'ai malheureusement pas trouvé comment l'utiliser.

Quelqu'un peut-il m'éclairer ?

Alors là tu te base sur la boucle normal qui récupère 10 articles par défaut, si tu veux supprimer cette limite il faut que tu utilise l'objet WP_query (je l'explique dans le tutoriel) pour récupérer les élements de ton portfolio en mettant le post_per_page à -1.

pako974
Auteur

Merci beaucoup !
J'ai enfin reussi ! Cela dit je tombe sur un ultime dernier problème :(
Les système "post_per_page => -1" fonctionne parfaitement sur ma page "type-portfolio" mais pas sur ma page "taxonomy-type". Je n'arrive pas à coupler le principe de taxonomy tout en supprimant la limitation.

Voici le contenu de ma page "taxonomy-type" :

<?php get_header(); ?>
<?php $term = get_term_by('slug',get_query_var('term'),get_query_var('taxonomy')); ?>
<?php $terms = get_terms('type'); ?>
<div id="access2">
    <ul>
        <?php foreach($terms as $t): ?>
        <li><a href="<?php echo get_term_link($t->slug,'type'); ?>"><?php echo $t->name; ?></a></li>
        <?php endforeach; ?>
    </ul>
</div>
<p>Toutes les réalisations : <?php echo $term->name; ?></p>
<div class="portfolio">
    <ul class="image-grid">
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <li>
            <h2><a><?php the_title(); ?></a><h2>
            <?php
                $portfolio=new WP_query(array(
                'post_type' => 'portfolio',
                'posts_per_page' =>-1
                ));
            ?>
            <?php 
                if ( has_post_thumbnail()) {
                $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'large');
                echo '<a rel="lightbox[uniqueID|filename]" href="' . $large_image_url[0] . '" title="<?php the_title(); ?>' . the_title_attribute('echo=0') . '" >';
                echo get_the_post_thumbnail($post->ID, 'portfolio'); 
                echo '</a>';
                }
            ?>
        </li>

        <?php wp_reset_query(); ?>
        <div class="clear"></div>
    <?php endwhile; else: ?>
        <p><?php_e('Sorry, no posts'); ?></p>
    <?php endif; ?>
    </ul>
</div>
<?php get_footer(); ?>

Une idée ?

Tu fais ton WP query dans la boucle O_o ?

pako974
Auteur

Je suis vraiment désolé mais je suis une bille en programmation, surtout avec le php ^^

Si je comprend bien mon "wp_query" ce trouve dans une boucle alors qu'il ne devrait pas et c'est ce qui empêche "'posts_per_page' =>-1" de fonctionner ?
Pourtant ma page "type-portfolio.php" excepté la ligne

<?php $term = get_term_by('slug',get_query_var('term'),get_query_var('taxonomy')); ?>

est la même et fonctionne parfaitement.