显示来自自定义帖子类型的帖子

时间:2014-04-25 作者:Jaeeun Lee

我正在尝试显示来自常规和自定义帖子类型的帖子:

 <ul class="scroll">
   <?php 
    // the query
    $the_query = new WP_Query( \'cat=-4,-142,-143,-144\' ); ?>

    <?php if ( $the_query->have_posts() ) : ?>

    <!-- pagination here -->

    <!-- the loop -->
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
        <li><a href="<?php the_permalink() ?>">
            <div class="title-block">
                <div class="img-holder"><?php the_post_thumbnail(\'homepoststhumbnail\'); ?><div class="title"><?php the_title(); ?></div></div>

            </div>
            <div class="text"> <?php the_excerpt(__(\'(more…)\')); ?><?php the_field(\'questions\'); ?></div>
            </a>
        </li>
        <?php endwhile; ?>
        <!-- end of the loop -->

        <!-- pagination here -->

        <?php wp_reset_postdata(); ?>

        <?php else:  ?>
        <p><?php _e( \'Sorry, no posts matched your criteria.\' ); ?></p>
        <?php endif; ?>
    </ul>

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

您正在为中的主查询设置参数pre_get_posts 操作,然后通过调用query_posts (which you should never use).

如果要排除类别,请在相同的pre_get_posts 措施:

add_action( \'pre_get_posts\', \'add_my_post_types_to_query\' );

function add_my_post_types_to_query( $query ) {
    if ( is_home() && $query->is_main_query() ){
        $query->set( \'post_type\', array( \'post\', \'miss_behave\', \'emily_davies\',\'gemma_patel\',\'poppy_smythe\' ) );
        $query->set( \'category__not_in\', array(4, 142, 143, 144) );
    }
}
编辑-在其他查询中使用参数:

$the_query = new WP_Query(
    array(
        \'post_type\' => array( \'post\', \'miss_behave\', \'emily_davies\',\'gemma_patel\',\'poppy_smythe\' ),
        \'category__not_in\' => array(4, 142, 143, 144)
    )
);

结束

相关推荐

Custom Search Query

我想设置一个自定义搜索页面,该页面执行以下操作:用户以一种他希望在搜索中看到返回的表单(基本上是从标签列表中选择)检查多个项目。返回与他选择的所有标记匹配的结果(使用和不使用或)。具体示例如下:返回标记=“小学”和“公园”的“区域”类别中的所有帖子我需要为我的搜索表单命名特别的内容吗在搜索结果页面上,如何对自定义查询进行编码,使其能够捕获区域类别内的所有帖子,并具有用户在搜索表单中选择的所有标签的标签