首页 > 解决方案 > Wordpress 页面内容和帖子在同一页面中

问题描述

我是 wordpress 世界的新手,我正在尝试将 HTML 页面调整为 wordpress 主题。我需要首先在页面上显示页面内容,然后在该页面下显示帖子。但我得到的只是在页面上显示两次的帖子(页面内容应该在哪里)。有没有可能克服这个问题?

还有一个问题,如何根据类别过滤帖子?我已经尝试过query_posts('cat=Small'),但它似乎无法正常工作。

代码index.php如下:

<?php get_header(); ?>
<?php
    wp_reset_query();
    while ( have_posts() ) : the_post();
        the_content();
    endwhile; 
    wp_reset_query();
?>


<section>
  <header class="major">
    <h2>Erat lacinia</h2>
  </header>
  <div class="features">
    <?php query_posts('cat=Small'); ?>
      <?php if(have_posts()) : while(have_posts()) : the_post(); ?>
        <article>
         <span class="icon fa-diamond"></span>
           <div class="content">
              <h3><?php the_title(); ?></h3>
              <p><?php the_content('Read More'); ?></p>
           </div>
        </article>
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
<?php get_footer(); ?>

标签: phpwordpresswordpress-themingcustom-wordpress-pages

解决方案


<?php 
/*
 *Template name: test
 */

 get_header(); 
if ( have_posts() ) :
    while ( have_posts() ) : the_post();
        $attrs = array(
          'numberposts' => 10,
          'post_type'   => 'post',
          'tax_query' => array(
                array(
                    'taxonomy' => 'category',
                    'field'    => 'slug',
                    'terms'    => array( 'small' )
                )
            )
        );
        $my_posts = get_posts( $attrs );
        the_content();
        ?>


                  <?php if ($my_posts): ?>
                    <section>
                      <header class="major">
                        <h2>Erat lacinia</h2>
                      </header>
                      <div class="features">
                        <?php foreach ($my_posts as $key => $value): ?>
                             <article>
                                 <span class="icon fa-diamond"></span>
                                   <div class="content">
                                      <h3><?= $value->post_title; ?></h3>
                                      <p><?= $value->post_content ?></p>
                                   </div>
                                </article>
                        <?php endforeach ?>
                      </div>
                      </section>
                  <?php endif ?>
        <?php
    endwhile;
else :
    echo wpautop( 'Sorry, no posts were found' );
endif;

get_footer(); ?>

推荐阅读