web-dev-qa-db-ja.com

Nivoスライダープラグインの複数のインスタンス

このサイトのCMSとしてWordpressを使用しています

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

…そして、私がこれまでにワードプレスを使ったのは今回が初めてです。用語が間違っているのであればごめんなさい。

私のクライアントは、ポートフォリオセクションに新しいプロジェクト(ケーススタディ)を追加できる必要があります。また、それぞれのプロジェクトで独自のスライドショーを作成できます。

私は彼らが各プロジェクトのスライドショーのために新しい投稿カテゴリーを作成し、それから各プロジェクトのために新しいページを作成することができると思いました。

私が抱えている問題は、自分のクライアントにどのように投稿カテゴリをプロジェクトページに関連付けるかということです(だから正しいカテゴリ投稿をスライドショーに動的に取り込むことができます)。私は彼女が作成したカテゴリ(プロジェクトのシルデーショー)と彼女が作成したページ(プロジェクト用)に同じ命名規則を使用してもらいたいと思うかもしれません。これはうまくいくように思えますか。私はこれを行うことができるよりよい方法、またはより適していると思われる別のプラグインがありますか。

これが私のポートフォリオテンプレートのコードです。現在、categoryIDはクエリでハードコードされています。

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

それが意味をなすことを願っていますか?

どうもありがとう。

編集:埋め込みコードのサンプルが表示されるようにフォーマットを修正しました

1
Lucy

より良い解決策は、「プロジェクト」の投稿タイプと、異なるタイプのプロジェクトを区別するためのカスタム分類法を作成することです。

自分のプロジェクトを他のコンテンツから切り離す方法を望んでいたので、私は最近自分のWebサイトでこれを行いました。 NivoではなくjQueryサイクルを使用しましたが、概念は同じです。

カスタム投稿タイプにはユーザーインターフェイスが組み込まれているため、クライアントが新しいプロジェクトを追加するのに混乱を招くことはありません。

また、single-project.phpテンプレートファイルを使用して「プロジェクト」の表示方法をカスタマイズすることもできます。

Codexはこれをうまく説明しています ので、投稿タイプの登録方法については説明しません。スライダーに投稿して表示します。

<?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