在自定义帖子类型档案中仅显示一篇帖子

时间:2019-05-10 作者:Carlos Martínez Romero

首先感谢您抽出时间!

我试图在存档页中只显示我的自定义帖子类型(CPT)的最后一个元素,我尝试了,但它显示的是las帖子,而不是最后一个CPT元素,我不知道我做错了什么,但我想这一行是:

<?php $the_query = new WP_Query(\'showposts=1\'); ?>
在这里你可以看到我的代码。

你能帮我吗?提前谢谢。

https://github.com/cmr96/WordPress/blob/master/archive-cpt_proyectos.php

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

请仔细阅读WP_Query 文档,尤其是part about post types. 表示您需要将要查询的职位类型传递给查询:

$args = array(
    \'post_type\'      => \'my_custom_post_type\',
    \'posts_per_page\' => 1,
);
$query = new WP_Query( $args );
更好的做法是通过挂接pre_get_posts. 例如,这也会相应地调整分页。将此放置在functions.php:

/**
 * Override the main query on a custom post type archive.
 *
 * @param \\WP_Query $wp_query
 */
function wpse_337567( WP_Query $wp_query ) {

    // Only check this on the main query.
    if ( $wp_query->is_main_query() && is_post_type_archive( \'my_custom_post_type\' ) && !is_admin() ) {
        $query->set( \'posts_per_page\', 1 );
    }
}
add_action( \'pre_get_posts\', \'wpse_337567\' );

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post