在主页模板中显示来自自定义帖子类型的特色图片

时间:2017-06-15 作者:Caesar

我正在与下划线一起工作,试图自己构建一个模板。

我已经建立了一个主页模板和一个自定义帖子类型的帖子文件。

我想让它在主页上显示的是一种图库,其中包含来自每个自定义帖子类型的特色图像,以及标题和标签。

我试过不同的方法,我想可能是wp_get_archives 但还是没有得到。

如果你有一些建议,那就太棒了。

谢谢

2 个回复
最合适的回答,由SO网友:Johansson 整理而成

使用wp_get_archives 将返回结果的预定义模板。要做到这一点,您需要自己的自定义查询和模板。由于我不知道您到底在寻找什么,我将针对您的情况提供一个基本的代码建议:

// Get a list of categories
$terms = get_terms(array(\'taxonomy\' => \'category\')); 
// Run a query for each category
foreach ($terms as $term){
    $args = array(
    \'post_type\' => \'custom_type\', 
    \'posts_per_page\' => \'1\',
    \'order_by\' => \'date\', 
    \'order\' => \'ASC\', 
    \'cat\' => $term->ID
    );
    $new_query = new WP_Query ($args);
    if ($new_query->have_posts()) {
        while($new_query->have_posts()){
            $new_query->the_post();
            // Post\'s title
            the_title();
            // Post\'s featured image
            the_post_thumbnail(\'thumbnail\');
        }
    }
    wp_reset_postdata();
}
这将列出每个类别中的1篇帖子,并输出特色图片及其标题。然而,如果你有很多类别,它会产生很多查询。(大约50个)。我建议您将其与缓存插件一起使用。

您还可以获取帖子列表,并在showcase中查看它们,以及它们的类别名称:

$args = array(
\'post_type\' => \'custom_type\', // Your custom post type
\'posts_per_page\' => \'8\', // Change the number to whatever you wish
\'order_by\' => \'date\', // Some optional sorting
\'order\' => \'ASC\', 
);
$new_query = new WP_Query ($args);
if ($new_query->have_posts()) {
    while($new_query->have_posts()){
        $new_query->the_post();
        the_title();
        the_post_thumbnail(\'thumbnail\');
        // Get a list of post\'s categories
        $categories = get_the_category($post->ID);
        foreach ($categories as $category) {
            echo $category->name;
        }
    }
}
wp_reset_postdata();

SO网友:Sid

你可以使用wordpress循环,它可以在任何主题中使用。下面是基本的代码片段。将其复制到您的主页文件中,查看结果是否符合预期:

<?php if( have_posts() ) : ?>

  <?php while (have_posts()) : the_post(); ?>

    <div class="blog">
        <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
        <hr />          
        <div class="text-box">

          <?php
            if( has_post_thumbnail() ) { 
                echo \'<div style="float:left;">\';
                the_post_thumbnail(\'thumbnail\');
                echo \'</div>\';
            }

          ?>

        </div>
    </div>

  <?php endwhile; ?>

<?php endif; ?>
这是我的孩子主题的代码。

结束

相关推荐