> 백엔드 개발 > PHP 튜토리얼 > WordPress 기사를 얻을 때 데이터베이스 쿼리 수를 줄이기 위해 query_posts를 최적화하는 방법은 무엇입니까?

WordPress 기사를 얻을 때 데이터베이스 쿼리 수를 줄이기 위해 query_posts를 최적화하는 방법은 무엇입니까?

WBOY
풀어 주다: 2016-08-04 09:21:53
원래의
1375명이 탐색했습니다.

다음 워드프레스 코드를 최적화하는 방법은 현재 별도로 쿼리를 하여 데이터베이스 쿼리가 너무 많이 발생하고 있습니다. 실제로 제가 원하는 것은 데이터를 한 번에 얻어서 카테고리 이름과 개수를 출력하는 것입니다. 루프의 카테고리 아래 기사.

<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 echo get_category_link($value); ?>"><?php single_cat_title(); ?></a></h2> 
            <ul> 
                <?php while(have_posts()) : the_post(); ?> 
                <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>    </li> 
                <?php endwhile; ?> 
            </ul>  
        <?php }?> 
    </div> </code>
로그인 후 복사
로그인 후 복사

답글 내용:

다음 워드프레스 코드를 최적화하는 방법은 현재 별도로 쿼리를 하여 데이터베이스 쿼리가 너무 많이 발생하고 있습니다. 실제로 제가 원하는 것은 데이터를 한 번에 얻어서 카테고리 이름과 개수를 출력하는 것입니다. 루프의 카테고리 아래 기사.

<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 echo get_category_link($value); ?>"><?php single_cat_title(); ?></a></h2> 
            <ul> 
                <?php while(have_posts()) : the_post(); ?> 
                <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>    </li> 
                <?php endwhile; ?> 
            </ul>  
        <?php }?> 
    </div> </code>
로그인 후 복사
로그인 후 복사

캐싱을 켜면 문제가 해결되지 않을까요?

1. 이제 문제는 카테고리가 너무 많다는 것입니다. 각 카테고리를 한 번만 쿼리해야 합니다. 먼저 페이지에서 해당 카테고리의 모든 데이터를 검색할 수 있나요? 품목 번호 요구 사항이 있는 경우 여기에서 그룹화를 사용하여 필요한 데이터를 얻을 수 있습니다. (이렇게 홈페이지에 분류된 데이터에 대한 쿼리는 하나만 있어야 합니다)

2. 그런 다음 코드 로직에 따라 배열을 구성합니다. 배열은 아래에서 알려드린 형식을 참조하세요.

<code>$postList[cate_id]['title'];
$postList[cate_id]['article'][];//将文章按分类id当成键值存入数组
foreach($postList as $post) {
    foreach($post['article'] as $value){
        
    }
} </code>
로그인 후 복사

좋아요를 눌러주세요. wp에 익숙한 친구들이 한번 살펴보길 바랍니다.

저는 wp에 익숙하지 않고 귀하의 코드를 많이 읽지 않았습니다. 키-값 쌍을 사용할 수 있으므로 루프만 작성하면 됩니다.
먼저 모든 카테고리를 확인하여 키-값 쌍 배열을 구성하세요.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿