多个自定义帖子类型查询导致在分类法+单一模板中捕获错误的帖子类型?

时间:2011-11-06 作者:Mr.Brown

好吧,这可能有点令人困惑,但接下来。。。

我在整个网站的同一页面上处理多个自定义查询。一些查询获取常规的post数据,其他查询获取CPT取决于您所在的页面,例如存储部分。。。

在我决定尝试通过将现有的图像库音量控制器/滑块转换为“滑块”来简化客户的工作之前,我的一切都很完美;附加CPT“;这样他们就可以在需要时自己添加图像,而不必继续请求更新。

因此,让我解释一下网站上发生了什么(我还将包括一个简单的图形来概述我的情况):

我新增了一个名为featimggal的CPT,允许我的客户将自己的图像发布到每页顶部的滑块上。

我的商店有一个名为product的CPT。我使用两个自定义查询,根据自定义分类法slug获取不同的产品,并将它们列在商店的登录页上。

  • 当通过侧边栏链接中的分类法查看项目时,我使用分类法模板以存档格式显示所有产品CPT。

    最后,我只使用一种产品。php模板来显示自己的产品。

  • 。。。。。。。。。。。。。

    在添加了一个名为featimggal的新CPT,并在页面上的产品CPT之前添加了一个自定义查询之后,当访问商店时,一切仍按预期运行。php页面,但是一旦您单击单个产品,就可以从单个产品中查看它。php模板cpt产品不再出现在那里,取而代之的是;“全部”;图像库的CPT出现了,这是最奇怪的事情。

    示例:

    Store Page - Featured Image Gallery CPT - featured_images.php

    <?php $wp_query = new WP_Query(array(\'post_type\' => \'featimggal\')); ?>
    <?php while ($wp_query->have_posts() ) : $wp_query->the_post(); ?>
    
    <?php the_post_thumbnail(\'feat-img-gal\', array(\'class\' => \'featured_image_gallery\', \'alt\' => \'\', \'title\' => \'\')); ?>
    
    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
    

    Store Page - Product CPT - store.php

    <?php $wp_query = new WP_Query(array(\'post_type\' => \'product\', \'productcategory\' => \'epr-apparel\', \'posts_per_page\' => 6, \'orderby\' => \'rand\', \'paged\' => $paged )); ?>
    <?php while ($wp_query->have_posts() ) : $wp_query->the_post(); ?>
    // Do Stuff
    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
    
    <?php $wp_query = new WP_Query(array(\'post_type\' => \'product\', \'productcategory\' => \'epr-accessories\', \'posts_per_page\' => 6, \'orderby\' => \'rand\', \'paged\' => $paged )); ?>
    <?php while ($wp_query->have_posts() ) : $wp_query->the_post(); ?>
    // Do Stuff
    <?php endwhile; ?>
    <?php wp_reset_query(); ?>
    

    Store Page - Footer Query - footer.php

    <?php $wp_query = new WP_Query(\'category_name=blog&posts_per_page=1\'); ?>
    <?php while ($wp_query->have_posts() ) : $wp_query->the_post(); ?> 
    // Do Stuff
    <?php endwhile; ?>
    
    store.phptaxonomy.phpsingle-product.php

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

    将自定义查询分配给$wp_query, 这是保存页面默认查询的变量,您将使用图像滑块查询覆盖它。

    结束

    相关推荐

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

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