我正在使用自定义帖子类型, 并且已将其显示在Wordpress管理区域中。这是我的功能代码的一部分:
//CUSTOM POST TYPE
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'slick_slider', array(
'labels' => array(
'name' => __( 'Main Slider' ), 'singular_name' => __( 'Slider' )
), 'public' => true, 'has_archive' => true, )
);
}
我的问题是我需要将这些自定义帖子类型插入模板中。我尝试使用此代码来做到这一点:
<?php if (have_posts()) : while (have_posts()) : the_post();?>
<?php $slick_slider_values = get_post_meta( get_the_ID(), 'slick_slider' ); ?>
<?php endwhile; endif; ?>
但这行不通。知道我需要什么代码才能使CPT正确显示在模板页面中吗?
#1
你正在使用自定义帖子类型, 因此你需要执行自定义帖子类型循环:
<?php query_posts('post_type=slick_slider&posts_per_page=5'); if ( have_posts() ) while ( have_posts() ) : the_post();?>
// normal post stuff here ie <?php the_content(); ?>
<?php endwhile; wp_reset_query(); ?>
这超出了循环!希望有帮助!
#2
这将为你工作:
$args = array(
'post_type' => 'slick_slider', 'post_status' => 'publish', );
$slick_slider = new WP_Query( $args );
if( $slick_slider->have_posts() ) :
while( $slick_slider->have_posts() ) : $slick_slider->the_post();
$slick_slider_values = get_post_meta( get_the_ID(), 'slick_slider' );
endwhile;
endif;
#3
如果要显示任何帖子类型或单个帖子文件之外或页面模板之外的帖子, 则需要使用WP_Query。因此, 请使用以下代码。
$slider = new WP_Query(array(
'post_type' => 'slick_slider', ));
if( $slider->have_posts() ){
while( $slider->have_posts() ) {
$slider->the_post();
$slider_meta = get_post_meta( get_the_ID(), 'slick_slider' );
}
wp_reset_postdata();
}
希望对你有帮助。
评论前必须登录!
注册