I made landing page(onepage) in WordPress.
我在WordPress中制作了登陆页面(onepage)。
I display all pages in wordpress loop.
我在wordpress循环中显示所有页面。
index.php:
<?php
query_posts(array(
'post_type' => 'page',
'posts_per_page' => '-1',
'order' => 'ASC',
'orderby' => 'menu_order'
));
$tpl_parts = array(
'5' => 'about',
'7' => 'team',
'76' => 'tech',
'81' => 'services',
'101' => 'contact',
);
?>
<?php get_header('home'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php if(array_key_exists($post->ID, $tpl_parts)) : ?>
<?php get_template_part('template-parts/'. $tpl_parts[$post->ID], 'template'); ?>
<?php else: ?>
<section id="<?php echo $post->post_name; ?>">
<div class="container">
<div class="row">
<?php the_content(); ?>
</div>
</div>
</section>
<?php endif; ?>
<?php endwhile; else : ?>
<?php endif; ?>
I want show posts from category services in page services.
我想要从页面服务中的类别服务中显示帖子。
services-template.php:
<section id="services" class="services-section">
<div class="container">
<div class="row">
<div class="col-xs-12">
<h2 class="text-left">Services</h2>
</div>
</div>
<?php query_posts('category_name=services'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="row box-service">
<div class="col-sm-6">
<?php the_post_thumbnail('full', array('class' => 'img-responsive')); ?>
</div>
<div class="col-sm-6">
<h3><?php the_title(); ?></h3>
<p class="intro"><?php echo get_the_content(); ?></p>
<a href="#">More</a>
</div>
</div>
<?php endwhile; else: endif; wp_reset_query(); ?>
</div>
</section>
Page services display all posts from services category, but under services page, wordpress loop display posts from category services again, and contact section is removed.
页面服务显示来自服务类别的所有帖子,但在服务页面下,wordpress循环再次显示来自类别服务的帖子,并删除联系人部分。
What is wrong in this code ? I add wp_reset_query(); but problem still exist.
这段代码有什么问题?我添加了wp_reset_query();但问题仍然存在。
Thanks for help.
感谢帮助。
1 个解决方案
#1
Ok, I resolve the problem.
好的,我解决了这个问题。
I used WP_query class instead query_posts.
我使用WP_query类而不是query_posts。
<section id="services" class="services-section">
<div class="container">
<div class="row">
<div class="col-xs-12">
<h2 class="text-left">Services</h2>
</div>
</div>
<?php $inner_query = new WP_Query( 'category_name=services' ); ?>
<?php if ( $inner_query->have_posts() ) : while ( $inner_query->have_posts() ) : $inner_query->the_post(); ?>
<div class="row box-service">
<div class="col-sm-6">
<?php the_post_thumbnail('full', array('class' => 'img-responsive')); ?>
</div>
<div class="col-sm-6">
<h3><?php the_title(); ?></h3>
<p class="intro"><?php echo get_the_content(); ?></p>
<a href="#">More</a>
</div>
</div>
<?php endwhile; else: endif; wp_reset_postdata(); ?>
</div>
</section>
This is working good.
这很好用。
#1
Ok, I resolve the problem.
好的,我解决了这个问题。
I used WP_query class instead query_posts.
我使用WP_query类而不是query_posts。
<section id="services" class="services-section">
<div class="container">
<div class="row">
<div class="col-xs-12">
<h2 class="text-left">Services</h2>
</div>
</div>
<?php $inner_query = new WP_Query( 'category_name=services' ); ?>
<?php if ( $inner_query->have_posts() ) : while ( $inner_query->have_posts() ) : $inner_query->the_post(); ?>
<div class="row box-service">
<div class="col-sm-6">
<?php the_post_thumbnail('full', array('class' => 'img-responsive')); ?>
</div>
<div class="col-sm-6">
<h3><?php the_title(); ?></h3>
<p class="intro"><?php echo get_the_content(); ?></p>
<a href="#">More</a>
</div>
</div>
<?php endwhile; else: endif; wp_reset_postdata(); ?>
</div>
</section>
This is working good.
这很好用。