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).

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.

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 ?

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.