作为自定义POST类型的光滑滑块

时间:2016-08-19 作者:Nancy

我做了一个网站的HTML/CSS设计,现在我需要将其转换为WordPress。我现在正在做的部分是添加slick slider,只在我的WP首页上显示。它在HTML中工作得很好(因为我在那里合并了javascript,可以在实际的slick slider网站上找到,并通过3个包含图像的div元素启动)。

在WP功能中。我添加的php:

   //Add slider

   add_action( \'init\', \'create_post_type\' );

   function create_post_type() {
      register_post_type( \'slider\',
         array(
               \'labels\' => array(
               \'name\' => __( \'Sliders\' ),
               \'singular_name\' => __( \'Slider\' ),
               \'add_new\' => \'Add new slide\',
       ),
               \'public\' => true,

      )
     );
}

?>
我还将这样的脚本和样式放入队列(也在functions.php中):

 //Enqueue scripts
add_action(\'wp_enqueue_scripts\', \'wp_enqueue_all_scripts\', 999);

function wp_enqueue_all_scripts(){

//add slick slider
wp_register_style(\'slickcss\', get_template_directory_uri()."/slick/slick.css" );
wp_register_style(\'slickcsstheme\', get_template_directory_uri()."/slick/slick-theme.css" );

//load slick js
wp_register_script(\'slickslider\', get_template_directory_uri()."/slick/slick.min.js", array(jquery), \'\', true );

////load slick initiate script
wp_register_script( \'slickinit\', get_template_directory_uri() . \'/assets/js/slick-init.js\');

// load slick on homepage
if ( is_front_page() ) {
wp_enqueue_style( \'slickcss\' );
wp_enqueue_style( \'slickcsstheme\' );
wp_enqueue_script (\'slickslider\');
wp_enqueue_script (\'slickinit\');
}
}
我加上了滑头。在js文件夹中初始化,如下所示:

    jQuery(document).ready(function($){
$(\'.featured-image-slider\').slick({ //add CSS class of target
  infinite: true,
  slidesToShow: 3,
  slidesToScroll: 1,
  autoplay: true,
  autoplaySpeed: 2000,
    })
});
我登上了头版。php和我将代码放在那里,如下所示:

<?php get_header(); ?>

<?php

// WP_Query arguments
$args = array (
    \'post_type\'              => array( \'slider\' ),
);

// The Query
$query_slider = new WP_Query( $args );

// The Loop
if ( $query_slider->have_posts() ) {
    echo \'<div class="home regular slider">\';
    while ( $query_slider->have_posts() ) {
        $query_slider->the_post();
        echo \'<div> \';
        the_post_thumbnail();
        echo \'</div>\';
    }
    echo \'</div>\';
} else {
    // no posts found
}

// Restore original Post Data
wp_reset_postdata();

?>

<?php  get_footer(); ?>
当我转到“幻灯片->在仪表板中添加新幻灯片”时,幻灯片不会显示在我的首页上。我快疯了,非常感谢你的帮助。我该如何解决这个问题,我做错了什么?我是一个完全的新手,就我的一生而言,我无法自己解决这个问题。非常感谢。

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

首先你写了array(jquery) 而不是array(\'jquery\'). 也没有定义slickinit 排队位置。所以正确的代码是-

 //Enqueue scripts
add_action(\'wp_enqueue_scripts\', \'wp_enqueue_all_scripts\', 999);

function wp_enqueue_all_scripts(){

    //add slick slider
    wp_register_style(\'slickcss\', get_template_directory_uri() . \'/slick/slick.css\' );
    wp_register_style(\'slickcsstheme\', get_template_directory_uri() . \'/slick/slick-theme.css\' );

    //load slick js
    wp_register_script(\'slickslider\', get_template_directory_uri() . \'/slick/slick.min.js\', array(\'jquery\'), \'\', true );

    ////load slick initiate script
    wp_register_script( \'slickinit\', get_template_directory_uri() . \'/assets/js/slick-init.js\',  array( \'jquery\', \'slickslider\' ) );

    // load slick on homepage
    if ( is_front_page() ) {
        wp_enqueue_style( \'slickcss\' );
        wp_enqueue_style( \'slickcsstheme\' );
        wp_enqueue_script (\'slickslider\');
        wp_enqueue_script (\'slickinit\');
    }
}
在你的front-page.php 试试这个-

<?php get_header(); ?>

<?php

// WP_Query arguments
$args = array (
    \'post_type\'              => array( \'slider\' ),
);

// The Query
$query_slider = new WP_Query( $args );

// The Loop
if ( $query_slider->have_posts() ) {
    echo \'<div class="home regular slider">\';
    while ( $query_slider->have_posts() ) {
        $query_slider->the_post();
        echo \'<div class="featured-image-slider"> \';
        the_post_thumbnail();
        echo \'</div>\';
    }
    echo \'</div>\';
} else {
    // no posts found
}

// Restore original Post Data
wp_reset_postdata();

?>

<?php  get_footer(); ?>
希望这件事现在能起作用。

SO网友:Philipp Bammes

我是WordPress插件的作者Slick Slider. 它变成了本地WordPress图库([gallery ids="x,y,z"]) 进入滑块利用伟大的slick slider 由Ken Wheeler编写(您也可以实现)。

使用该插件,您不必使用自定义帖子类型。试试看。

相关推荐