是否获取没有发布内容的Query()?

时间:2015-04-02 作者:Furoris

是否有一种方法可以获取包含帖子信息(缩略图、id等)但不包含\\u content()的查询?

我已经有了一个插件,可以在主页的侧栏中显示最近的帖子,例如20篇帖子,每个帖子的内容都有1MB,它会在主页上加载20 MB的内容,最后不会显示,因为它只显示缩略图、标题和投票/评论选项。它杀死了网站。有没有办法通过查询将帖子信息加载到此插件,但不包括要加载的帖子内容?

代码:

<?php $recent=new WP_Query(); ?>
        <?php 
                        $recent->query(array(
                    \'post_type\' => get_post_types(),
                    \'cat\' => 26,
                    \'showposts\' => 3,
                    \'ignore_sticky_posts\' => \'1\' ));
                     ?>


        <ul id="tab-recent" class="alx-tab group <?php if($instance[\'recent_thumbs\']) { echo \'thumbs-enabled\'; } ?>">
            <?php while ($recent->have_posts()): $recent->the_post(); ?>

            <li>        
                <?php if($instance[\'recent_thumbs\']) { // Thumbnails enabled? ?>
                <div class="tab-item-thumbnail">
                    <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                        <?php if ( has_post_thumbnail() ): ?>
                            <?php the_post_thumbnail(\'thumb-small\'); ?>
                        <?php else: ?>
                            <img src="<?php echo get_template_directory_uri(); ?>/img/thumb-small.png" alt="<?php the_title(); ?>" />
                        <?php endif; ?>
                        <?php if ( has_post_format(\'video\') && !is_sticky() ) echo\'<span class="thumb-icon small"><i class="fa fa-play"></i></span>\'; ?>
                        <?php if ( has_post_format(\'audio\') && !is_sticky() ) echo\'<span class="thumb-icon small"><i class="fa fa-volume-up"></i></span>\'; ?>
                        <?php if ( is_sticky() ) echo\'<span class="thumb-icon small"><i class="fa fa-star"></i></span>\'; ?>
                    </a>
                </div>
                <?php } ?>

                <div class="tab-item-inner group">

                    <p class="tab-item-title">
                                            <?php $posttitle = get_the_title(); ?>
                                             <?php if (strlen($posttitle) > 19) {
                                        echo \'<a href="\' . get_permalink() . \'">\' .substr(the_title($before = \'\', $after = \'\', FALSE), 0, 19) . \'...\' . \'</a>\'; 
                                     } else {
                                            echo \'<a href="\' . get_permalink() . \'">\' . get_the_title() . \'</a>\';
                                    } ?>
                                            </p>
                <div class="content">
                    <?php the_content(); //I WANT REMOVE THIS LINE ?>
                </div>

<div class="stats">
    <div class="recommendation">
        <?php if(function_exists(\'wpv_voting_display_vote\')) wpv_voting_display_vote(get_the_ID()); ?>
    </div>
    <div class="comments-count">
        <?php comments_number( \'0\', \'1\', \'%\' ); ?>
    </div>
    <div class="clear" style="clear:both;"></div>   
</div>

                </div>

            </li>
            <?php endwhile; ?>
我不是说每个帖子都有1MB。我只是举个例子。现在,加载主页的时间多了50%,因为侧边栏加载了帖子的全部内容,这是毫无意义的,我想在不重新编写插件的情况下进行更改。

正如您所见,还有“showposts=>3”,但有6个框中包含其他类别的帖子,因此总共有18篇帖子需要加载。

我想删除带有\\u content()的行;因为它只显示一句话,不值得加载整个帖子内容。

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

如果你set the fields argument to ids 在查询中,它将只返回post ID,然后您可以将其传递给其他函数以获取所需的数据。尽管这可能会以增加对数据库的查询为代价来节省内存。

结束

相关推荐

JQuery脚本未发送到数据库

这是一个jQuery脚本,我正在使用它将输入发布到数据库,假设提交数据的用户已登录,并且没有为用户提交数据的项目创建现有条目。目前它没有产生任何结果,我也不完全清楚为什么,因为我不经常使用jQuery。下面是一个流程图,说明了我正在努力实现的目标:function csv_three_script() { //Include Javascript library wp_enqueue_script( \'csv3\', pl