web-dev-qa-db-fra.com

Plusieurs instances de nivo slider plugin

J'utilise Wordpress en tant que CMS pour ce site

http://www.seadragon.co.uk/new_site/portfolio.html

... et c’est la première fois que j’utilise Wordpress, désolé si je me trompe de terminologie ...

Mon client doit pouvoir ajouter de nouveaux projets (études de cas) à la section du portefeuille et chacun d’eux peut avoir son propre diaporama.

J'ai pensé qu'ils pourraient créer une nouvelle catégorie d'articles pour chaque diaporama de projet, puis une nouvelle page pour chaque projet.

Le problème que j'ai est de savoir comment faire en sorte que mon client associe la catégorie de publication à la page de projet (afin que je puisse extraire dynamiquement les publications de catégorie appropriées dans le diaporama). Je pensais que je pourrais peut-être essayer de les amener à utiliser la même convention de nommage pour la catégorie qu'elle crée (pour le projet sildeshow) et la page qu'elle crée (pour le projet)? Cela semble-t-il fonctionner? Existe-t-il un meilleur moyen de le faire ou un autre plug-in qui conviendrait mieux?.

Voici le code de mon modèle de portefeuille ... actuellement, le categoryID est codé en dur dans la requête.

<div id="slider">
            <?php
            //Reset Query
            //wp_reset_query();
            global $wp_query;
            $query = "post_type=post&cat=5";
            $wp_query = new WP_Query( $query );

            if ( have_posts() ) : while ( have_posts() ) : the_post(); 

                echo get_the_post_thumbnail($post->ID, 'large');
                ?>

            <?php 
            endwhile; endif;
            ?>
              </div>

            <script type="text/javascript">
            $(window).load(function() {
            $('#slider').nivoSlider();
            });
            </script>

J'espère que ça a du sens?

Merci beaucoup.

Edit: Correction du formatage afin que l'exemple de code incorporé affiche

1
Lucy

Une meilleure solution serait de créer un type d'article "Projet" et une taxonomie personnalisée pour séparer les différents types de projets.

Je l'ai récemment fait sur mon propre site Web parce que je voulais un moyen de garder mes projets séparés du reste de mon contenu. J'ai utilisé jQuery cycle au lieu de Nivo mais le concept est le même.

Les types de publication personnalisés ont une interface utilisateur intégrée, de sorte qu'il ne sera pas difficile pour votre client d'ajouter de nouveaux projets.

Cela vous permettra également de personnaliser la façon dont les "Projets" sont affichés en utilisant un fichier modèle unique-project.php.

Je n’entrerai pas dans la description des types de publication car . Le Codex explique cela très bien , mais je vais vous montrer comment obtenir toutes les images jointes au postez-les et affichez-les dans le curseur.

<?php   
//The following code is for a sample single-post_type.php
?>
<?php get_header(); ?>
<div id="content">

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
        <h1 class="project-title"><?php the_title(); ?></h1>

        <div class="entry">
            <div id="slider">

                <?php
                // This gets all the images attached to the current post inside the loop
                    $args = array(
                    'post_type' => 'attachment',
                    'posts_per_page' => -1,
                    'post_status' => null,
                    'post_parent' => $post->ID
                    ); 
                $attachments = get_posts($args);
                if ($attachments) {
                    foreach ($attachments as $attachment) {

                echo wp_get_attachment_image($attachment->ID,'medium', false);
                }
                    } ?>

            </div> <!-- /slider -->

        <?php the_content(); ?>

    </div> <!-- /post -->   

    <?php endwhile; else: ?>
    <p><?php _e('Not Found','your_theme_name'); ?></p>

    <?php endif; ?>

</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
1
Chris_O