在Category y.php上显示一篇帖子:错误的特色图片

时间:2014-09-05 作者:kabr

What I want

当用户打开类别链接时,应自动显示第一个查询的帖子。

我的查询如下所示:

    <?php global $query_string;
            $posts = query_posts($query_string.\'&posts_per_page=1&order=ASC\'); ?>

        <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <?php get_template_part( \'content\', get_post_format() ); ?>
        <?php endwhile; endif; ?>

        <?php wp_reset_query(); ?>

The problem

类别URL显示第一个查询的内容,但显示的是错误的特征图像,该图像取自上次查询的帖子,意思是order=DESC 已使用。

有没有办法解决这个问题?

Maybe important

通过反向拉伸将特征图像设置为全屏背景图像。使用js

wp_enqueue_script( \'backstretch\', get_bloginfo( \'stylesheet_directory\' ) . \'/js/jquery.backstretch.min.js\', array( \'jquery\' ), \'1.0.0\' );
wp_enqueue_script( \'backstretch-set\', get_bloginfo(\'stylesheet_directory\').\'/js/backstretch-set.js\' , array( \'jquery\', \'backstretch\' ), \'1.0.0\' );

wp_localize_script( \'backstretch-set\', \'BackStretchImg\', array( \'src\' => wp_get_attachment_url( get_post_thumbnail_id() ) ) );

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

不使用query_posts, 也不要用自定义查询替换主查询。这会导致比以前使用主查询解决一个问题更多的问题。我最近就这些问题发表了一篇完整的帖子,您可以查看here

根据您的查询,您只需要更改两件事posts_per_pageorder 要做到这一点,您只需使用pre_get_posts 在执行主查询之前更改查询变量。您可以专门针对具有conditional tag is_category()

要解决此问题,请返回类别页面上的默认循环。您只需要在类别上提供以下内容。php,仅此而已。

<?php 
if (have_posts()) {
    while (have_posts()) {
        the_post(); 
        get_template_part( \'content\', get_post_format() ); 
    }
}
?>
在您的功能中。php,将此代码用于pre_get_posts 更改每页的帖子数量以及它们在类别页面上的排序方式

function wpse_change_category( $query ) {
    if ( !is_admin() && $query->is_category() && $query->is_main_query() ) {
        $query->set( \'posts_per_page\', \'1\' );
        $query->set( \'order\',\'ASC\' );
    }
}
add_action( \'pre_get_posts\', \'wpse_change_category\' );

结束

相关推荐

Split loop into columns

我正在尝试将循环拆分为4列。我的逻辑有很大的缺陷,我的布局也有问题。这么简单的问题,但我正在努力解决。我基本上需要将每组四根柱子包装在一个容器“行”分区中。当然,剩下的任何柱子,即使少于四根,也要进行包装。<div class=\"twelve columns\"> <?php $i = 0; if (have_posts() ) : while ( have_posts() ) : the_post();