将自定义帖子类型循环限制为1个结果

时间:2018-06-13 16:10:00

标签: php wordpress custom-post-type

我有一个wordpress页面,我需要在底部加载自定义帖子类型。有8种类型的帖子类型,我有循环工作,以便根据加载的页面从正确的类别中提取。问题是我想将它限制在该类别中的最新帖子。现在循环从一个类别中提取所有帖子,我只想要1.我不确定如何限制它在数组中。我已尝试过帖子,posts_per_page和num_pages,但它们似乎都没有效果。有谁知道我失踪的价值?

$taxonomy=get_field('show_from');
                    $args = array(
                        'post_type' => 'project',
                        'tax_query' => array(
                                    array(
                                'taxonomy' => 'project-categories',
                                'field' => 'slug',
                                'posts_per_page' => 1,
                                'terms' => $taxonomy
                            ),
                        ) 
                    );


                $query = new WP_Query( $args ); ?>
            <?php if ( $query->have_posts() ) {
                while ( $query->have_posts() ) {
                    $query->the_post();
                    $backgroundImg = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full' ); ?>

                    <div class="cpt-feature" style="background: url('<?php echo $backgroundImg[0]; ?>') center center no-repeat; background-size: cover;">
                    <?php echo get_the_post_thumbnail( $page->ID, 'thumbnail' ); ?>

                    <?php 

                    echo "<div class='cpt-overlay'>";
                    echo "<div class='project-information'>"; 
                    echo "<h3>";
                        the_title();
                    echo "</h3>";
                    echo "<p>";
                    echo get_field('intro_blurb');
                    echo "<p><a href='" . get_permalink() . "'>View Project</a></p>";
                    echo "</div><!--project-info-->";
                    echo "</div><!--cpt-overlay-->";
                    echo "</div><!--cpt-feature-->";
                    echo "</a>";
                }
            } else {
            }?>

1 个答案:

答案 0 :(得分:1)

这是正确缩进/格式化代码如何在您诊断/解决问题的能力方面产生巨大差异的一个主要示例。

问题实际上很简单:posts_per_page参数位于错误的位置 - 它嵌套在tax_query内,但需要位于“顶级”:

$args = array(
    'post_type'      => 'project',
    // moved this argument out of the tax query
    'posts_per_page' => 1,
    'tax_query'      => array(
        array(
            'taxonomy' => 'project-categories',
            'field'    => 'slug',
            'terms'    => $taxonomy
        )
    )
);

*最好的IDE,比如PHPStorm,提供易于使用的工具来为你自动格式化你的代码 - 我强烈建议你找一个 - 我是巨大的< / em> PHPStorm的粉丝。