Что я должен использовать, get_posts или wp_query для меньшей загрузки процессора?

У меня есть блог, и на главной странице есть 3 блока сообщений. Итак, я получаю эти сообщения с «get_post», и у меня есть 3 похожих кода на странице:

global $post; $args = array( ... ); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); ?> ....... <?php endforeach; ?> 

У меня высокая загрузка процессора, и мне интересно, буду ли я использовать «wp_query», который сохранит мой процессор. Благодарю.

Вот мои запросы get_posts ():

 <?php global $post; $args = array( 'numberposts' => 5, 'offset'=> 0, 'category' => "1" ); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); ?> <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <?php the_title(); ?> </div> <?php endforeach; ?> 

 <?php global $post; $args = array( 'numberposts' => 7, 'offset'=>0, 'category' =>"2 , 4 , 6 , 7 , 9 ,10,11"); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); ?> <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <?php the_post_thumbnail(array('size' => 300,300), array('title' => '')); ?> </div> <?php endforeach; ?> 

 <?php $args = array( 'numberposts' => 15, 'orderby' => 'rand' ,'offset'=>0, 'category' =>"31"); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); ?> <?php the_title(); ?> </div> <?php endforeach; ?> 

Я сомневаюсь, что использование get_posts() vs WP_Query() сделает любую значимую / заметную разницу в загрузке процессора. В конечном итоге get_posts() – это просто оболочка для WP_Query() , во всяком случае:

 $get_posts = new WP_Query; return $get_posts->query($r); 

Вам будет лучше служить, глядя на эффективность самих запросов; но для оказания конкретной помощи там, нам нужно будет увидеть каждый из ваших get_posts() .

Все запросы в конечном итоге являются оболочками WP_Query , и хотя некоторые из них лучше других (никогда не используют query_posts ), различия производительности get_posts и WP_Query незначительны.

Строгий ответ заключался бы в том, что WP_Query быстрее, но маржа, с которой она быстрее незаметно мала, чтобы не стоить оптимизации.

Если у вас высокая загрузка процессора, переключение между get_posts и WP_Query не является решением

Я рекомендую просмотреть этот слайд-шоу основным разработчиком Nacin, который объясняет, когда и как следует использовать запросы, и почему:

http://www.slideshare.net/andrewnacin/you-dont-know-query-wordcamp-netherlands-2012