Maison > développement back-end > tutoriel php > 怎么优化 query_posts 获取 wordpress文章时,减少数据库查询次数?

怎么优化 query_posts 获取 wordpress文章时,减少数据库查询次数?

WBOY
Libérer: 2016-08-04 09:21:53
original
1372 Les gens l'ont consulté

怎么优化下面的wordpress 代码,目前它是分别查询,导致数据库查询次数过多,其实就是想实现 一次性获取数据后,循环输出 分类名称,分类下的文章篇数。

<code><?php $loop_cate_id=array(1,3,8); //指定要输出的分类id 
        $num=10;//指定每次循环输出的文章篇数     
     ?>  
        <?php foreach($loop_cate_id as $key=>$value){ ?> 
            <?php $posts = query_posts($query_string . "&cat={$value}&orderby=date&showposts={$num}" ); ?>  
            <h2><a href="<?php%20echo%20get_category_link(%24value);%20?>"><?php single_cat_title(); ?></a></h2> 
            <ul> 
                <?php while(have_posts()) : the_post(); ?> 
                <li>
<a href="<?php%20the_permalink()%20?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>    </li> 
                <?php endwhile; ?> 
            </ul>  
        <?php }?> 
     </code>
Copier après la connexion
Copier après la connexion

回复内容:

怎么优化下面的wordpress 代码,目前它是分别查询,导致数据库查询次数过多,其实就是想实现 一次性获取数据后,循环输出 分类名称,分类下的文章篇数。

<code><?php $loop_cate_id=array(1,3,8); //指定要输出的分类id 
        $num=10;//指定每次循环输出的文章篇数     
     ?>  
        <?php foreach($loop_cate_id as $key=>$value){ ?> 
            <?php $posts = query_posts($query_string . "&cat={$value}&orderby=date&showposts={$num}" ); ?>  
            <h2><a href="<?php%20echo%20get_category_link(%24value);%20?>"><?php single_cat_title(); ?></a></h2> 
            <ul> 
                <?php while(have_posts()) : the_post(); ?> 
                <li>
<a href="<?php%20the_permalink()%20?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>    </li> 
                <?php endwhile; ?> 
            </ul>  
        <?php }?> 
     </code>
Copier après la connexion
Copier après la connexion

开启缓存不就解决了?

1.现在问题就在分类太多,每次分类要查询一次,那是否可以先查找该页分类的所有数据,因为是查询所有而且你有排序跟文章数要求,这里可以与group by合用获取要求数据。(这样首页分类数据这块应该是只有一次查询)

2.然后在根据代码逻辑为其组成一个数组,数组可以参考我下面给你的格式。

<code>$postList[cate_id]['title'];
$postList[cate_id]['article'][];//将文章按分类id当成键值存入数组
foreach($postList as $post) {
    foreach($post['article'] as $value){
        
    }
} </code>
Copier après la connexion

自己顶下吧,期待有熟悉wp的小伙伴看看。

对wp不熟 也没怎么看你的代码。你可以用键值对 那样就只用写一个循环了。
先查所有分类组成键值对数组。

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal