我做了一个网站的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(); ?>
当我转到“幻灯片->在仪表板中添加新幻灯片”时,幻灯片不会显示在我的首页上。我快疯了,非常感谢你的帮助。我该如何解决这个问题,我做错了什么?我是一个完全的新手,就我的一生而言,我无法自己解决这个问题。非常感谢。
最合适的回答,由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(); ?>
希望这件事现在能起作用。