如何使get_posts拉出2级子页面

时间:2013-12-15 15:35:40

标签: wordpress

模板结构是:

  • 产品索引

  • 产品类别

  • 产品单

他们都在页面下,而不是帖子。我想做的是:

  • 索引页面,获取每个类别的所有页面标题以及每个类别中的所有产品。

  • 类别页面,获取该类别中的所有产品。

  • 单页,只显示产品

有人可以帮忙编写索引模板的代码吗?

Blow sample是类别模板的代码,效果很好。

<?php $args = array(
    'numberposts' => -1,
    'post_parent' => $post->ID,
    'post_type' => 'page',
    'orderby' => 'none',
    'order' => 'ASC'
);
$postslist = get_posts($args);
foreach ($postslist as $post) : ?>
    <li>
        <a href="<?php the_permalink(); ?>">
            <h2><?php the_title(); ?></h2>
        </a>
    </li>
<?php endforeach; wp_reset_postdata(); ?>

1 个答案:

答案 0 :(得分:0)

您应该使用Custom Post Types并创建一个名为product的类型,例如。

注册product类型后,您的主题应包含名为single-product.php的模板。请参阅:[模板层次结构] [http://codex.wordpress.org/File:Template_Hierarchy.png)。请求单个产品页面时,将显示此页面。这需要照顾3。

对于您的自定义类别,请使用Custom Taxonomies。例如,您product-category作为product帖子类型的分类后注册,您的主题就可以在taxonomy-product-category.php上显示此档案。再次,请参阅:[模板层次结构] [http://codex.wordpress.org/File:Template_Hierarchy.png。这需要照顾2。

对于1.您需要使用wp_list_categories之类的内容查询所有分类法,并将taxonomy参数设置为product-category。对于每个分类,您需要使用get_posts来获取所有帖子。这样您就可以显示您的产品。在home.php中使用此功能。请记住,这可能会变得非常慢,因为您将查询数据库N次,其中N是您拥有的类别数。一旦有了正在寻找的工作模型,就可以对此进行优化。

一旦您启动并运行,我邀请您在https://wordpress.stackexchange.com/

提出更具体的问题