Несколько экземпляров плагина nivo slider


Я использую Wordpress в качестве CMS для этого сайта

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

...и это первый раз, когда я использую wordpress, так что извините, если я неправильно понимаю терминологию....

Мой клиент должен иметь возможность добавлять новые проекты (тематические исследования) в раздел портфолио, и у каждого из них может быть свое собственное слайд-шоу.

Я подумал, что они могли бы создать новую категорию сообщений для каждого слайд-шоу проекта, а затем новую страница для каждого проекта.

Проблема, с которой я столкнулся, заключается в том, как заставить моего клиента связать категорию сообщений со страницей проекта (чтобы я мог динамически добавлять правильные сообщения категории в слайд-шоу). Я подумал, может быть, я мог бы попытаться заставить их использовать одно и то же соглашение об именах для категории, которую она создает (для проекта sildeshow), и страницы, которую она создает (для проекта)? Похоже ли это на то, что это сработает? Есть ли лучший способ, которым я могу это сделать, или другой плагин, который был бы лучше подходящий.

Вот код из моего шаблона портфолио... в настоящее время идентификатор категории жестко закодирован в запросе.

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

Надеюсь, в этом есть какой-то смысл?

Большое спасибо.

Изменить: Исправлено форматирование, чтобы отображался образец встроенного кода

Author: Chris_O, 2010-12-02

1 answers

Лучшим решением было бы создать тип записи "Проект" и пользовательскую таксономию для разделения различных типов проектов.

Недавно я сделал это на своем собственном веб-сайте, потому что хотел, чтобы мои проекты были отделены от остального контента. Я использовал цикл jQuery вместо Nivo, но концепция та же.

Пользовательские типы записей имеют встроенный пользовательский интерфейс, поэтому добавление новых проектов не приведет к путанице для вашего клиента.

Это также позволит вам настроить способ отображения "Проектов" с помощью single-project.php файл шаблона.

Я не буду вдаваться в то, как регистрировать типы сообщений, потому что Кодекс очень хорошо объясняет это, но я покажу вам, как получить все прикрепленные изображения к сообщению и отобразить их в слайдере.

<?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
Author: Chris_O, 2020-06-15 08:21:38