通过自定义帖子类型将动态观察滑块集成到WordPress中

时间:2016-02-06 作者:steamfunk

我目前正在与FoundationPress合作,这是一个很好的入门主题,具有很酷的功能。我想创建一个名为“slides”的自定义帖子类型,它将通过基金会的orbit滑块显示在主页上。我在github上找到了一个似乎适用于早期版本的foundation的解决方案,但它不适用于foundation 6,因为他们对轨道滑块的语法做了一些更改。post类型工作正常,循环显示图像,但它们堆叠在一起,不像旋转木马那样工作。

这是我的自定义循环代码,用于显示帖子类型中的图像,如果有人能看一下并告诉我我做错了什么,我将不胜感激。

 <?php   
            $args = array( 
          \'post_type\' => \'slides\',
          \'posts_per_page\'  => 999
        );
        $temp = $wp_query;
        $wp_query = null;
        $wp_query = new WP_Query($args);
        if($wp_query->have_posts()) : ?>






        <ul  class="orbit-container">
         <button class="orbit-previous" aria-label="previous"><span class="show-for-sr">Previous Slide</span>&#9664;</button>
          <button class="orbit-next" aria-label="next"><span class="show-for-sr">Next Slide</span>&#9654;</button>
            <?php   


                while($wp_query->have_posts()) : $wp_query->the_post();
                $postid = get_the_ID(); 
                if(has_excerpt()) {
                    $datacaption = \'data-caption="#slide-\'.$postid.\'"\';
                } else { 
                    $datacaption = \'\';
                }
                if(has_post_thumbnail()) {          
                    $imgid = get_post_thumbnail_id($postid);
                    $alt = get_post_meta($imgid , \'_wp_attachment_image_alt\', true);
                    $imgurl = wp_get_attachment_url($imgid);
                    echo \'<li class="orbit-slide">\';
                    echo \'<div>\';
                    echo \'<img  src="\'.$imgurl.\'" \'.$datacaption.\' alt="\'.$alt.\'" />\';
                } else {
                    echo \'<div class="orbit-slide" \'.$datacaption.\'>\';
                    echo get_the_content();
                    echo \'</div>\';
                    echo \'<div>\';
                    echo \'</li>\';
               }
             if(has_excerpt()) {
                        $output  = \'<span class="orbit-caption" id="slide-\'.get_the_ID().\'">\';
                    $output .=    \'<h3 class="slide-title">\'.get_the_title().\'</h3>\';
                    $output .=    \'<p class="slide-excerpt">\'.get_the_excerpt().\'</p>\';
                    $output .= \'</span>\';
                    echo $output;
                };  
            endwhile; ?>

            </ul>






    <?php endif; ?>

<?php $wp_query = null; $wp_query = $temp; wp_reset_query(); ?>

1 个回复
最合适的回答,由SO网友:steamfunk 整理而成

我已经弄明白了,我从零开始创建了一个自定义循环,其中包含了foundation orbit滑块的所有更新类。如果有人想要代码,请在下面找到:

 <?php $loop = new WP_Query( 
    array( 
    \'post_type\' => \'slides\', 
    \'posts_per_page\' => 999 ) 
    ); ?>




    <div class="orbit" role="region" aria-label="Favorite Space Pictures" data-orbit data-use-m-u-i="true">


            <ul class="orbit-container" >
              <button class="orbit-previous" aria-label="previous"><span class="show-for-sr">Previous Slide</span>&#9664;</button>
              <button class="orbit-next" aria-label="next"><span class="show-for-sr">Next Slide</span>&#9654;</button>

              <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

              <li class="orbit-slide" >
                <div>

                 <?php the_post_thumbnail(); ?>



                 <?php if(!empty($post->post_excerpt)) {
       echo \'<div class="orbit-caption" >\';
    the_excerpt();
        echo \'</div>\';

     } else {

     } ?>





                </div>

              </li>
              <?php endwhile; wp_reset_query(); ?>

            </ul>

          </div>

相关推荐

当in_the_loop()为假时,何时以及为什么is_Single(‘my_cpt’)为真?

我正在使用模板系统的示例代码。此地址的页码:http://project.test/my_cpt/hello-post/.无法理解原因is_singular( \'my_cpt\' ) 是true 虽然in_the_loop() 是false.在页面模板中The Loop "E;“工程”:if ( have_posts() ) { while ( have_posts() ) { the_post(); ?>