SlideShare a Scribd company logo
1 of 32
Download to read offline
WP_Query
is_home()
is_single()
is_page()
query_posts()
if ( have_posts() )
 while ( have_posts() )
  the_post();
query_posts( 'cat=-5' );
$posts = get_posts( 'cat=-5' );
$posts = new WP_Query( 'cat=-5' );
10 posts
10 posts
           +   10 posts
                cat = -5
max_num_pages = 3




                      index.php
404.php              max_num_pages = 5
pre_get_posts
add_action( 'pre_get_posts', 'my_func' );
function my_func( $query ) {
  $query->set( 'cat', '-5' );
}
$query->is_main_query()
add_action( 'pre_get_posts', 'my_func' );
function my_func( $query ) {
  if ( $query->is_main_query() )
    $query->set( 'cat', '-5' );
}
add_action( 'pre_get_posts', 'my_func' );
function my_func( $query ) {
  if ( $query->is_main_query() )
    if ( $query->is_search() )
      $query->set( 'post_type', 'post' );
}
add_action( 'pre_get_posts', 'my_func' );
function my_func( $query ) {
  if ( $query->is_main_query() )
    if ( $query->is_search() )
      $query->set( 'posts_per_page', 30 );
}
add_action( 'pre_get_posts', 'my_func' );
function my_func( $query ) {
  if ( $query->is_main_query() )
    if ( $query->is_home() )
      $query->set( 'post_type', array(
        'post',
        'book',
      ) );
}
query_posts();
$posts = get_posts();
$posts = new WP_Query();
$popular = new WP_Query( 'cat=3' );
while ( $popular->have_posts() ) {
  $popular->the_post();
  ...
}
$popular = new WP_Query( 'cat=3' );
while ( $popular->have_posts() ) {
  $popular->the_post();
  ...
}

// Основной запрос
while ( have_posts() ) {
  the_post();
  ...
}
// Основной запрос
while ( have_posts() ) {
  the_post();
  ...

    $category = get_the_category();
    $related = new WP_Query( 'cat=' ... );
    while ( $related->have_posts() ) {
      $related->the_post();
      ...
    }
}
query_posts()
$wp_query
function have_posts() {
  global $wp_query;
  return $wp_query->have_posts();
}
$wp_query =& $wp_the_query;
function &query_posts( $query ) {
  ...
  unset( $wp_query );
  $wp_query = new WP_Query();
  return $wp_query->query( $query );
}
function wp_reset_query() {
  ...
  unset( $wp_query );
  $wp_query =& $wp_the_query;
}
$popular = new WP_Query( 'cat=3' );
while ( $popular->have_posts() ) {
  $popular->the_post();
  ...
}

// Основной запрос
while ( have_posts() ) {
  the_post();
  ...
}
query_posts( 'cat=3' );
while ( have_posts() ) {
  the_post();
  ...
}
wp_reset_query();

// Основной запрос
while ( have_posts() ) {
  the_post();
  ...
}
Если нужно изменить основной запрос




       pre_get_posts
Если нужен вторичный запрос




new WP_Query; get_posts()
Если нужна головная боль




 query_posts()
Секреты WP_Query
Секреты WP_Query

More Related Content

What's hot

jQuery プラグインの作り方
jQuery プラグインの作り方jQuery プラグインの作り方
jQuery プラグインの作り方Takeru Suzuki
 
Analizador sintáctico de Pascal escrito en Bison
Analizador sintáctico de Pascal escrito en BisonAnalizador sintáctico de Pascal escrito en Bison
Analizador sintáctico de Pascal escrito en BisonEgdares Futch H.
 
BABELで、ES2015(ES6)を学ぼう!
BABELで、ES2015(ES6)を学ぼう!BABELで、ES2015(ES6)を学ぼう!
BABELで、ES2015(ES6)を学ぼう!Toshio Ehara
 
12 PREMIO “1ER LUGAR” 9NA COPA GRUNDY.PDF
12 PREMIO “1ER LUGAR” 9NA COPA GRUNDY.PDF12 PREMIO “1ER LUGAR” 9NA COPA GRUNDY.PDF
12 PREMIO “1ER LUGAR” 9NA COPA GRUNDY.PDFRandy Mujica
 
Quiz Component For Joomla
Quiz Component For JoomlaQuiz Component For Joomla
Quiz Component For Joomlaguestebb21a
 
Sumahexavector
SumahexavectorSumahexavector
Sumahexavectorjbersosa
 
Feeds. использование и создание плагинов. Feeds API
Feeds. использование и создание плагинов. Feeds APIFeeds. использование и создание плагинов. Feeds API
Feeds. использование и создание плагинов. Feeds APIAlex S
 
Working With Ajax Frameworks
Working With Ajax FrameworksWorking With Ajax Frameworks
Working With Ajax FrameworksJonathan Snook
 
Web Programming - Toko Bunga Red Flower
Web Programming - Toko Bunga Red FlowerWeb Programming - Toko Bunga Red Flower
Web Programming - Toko Bunga Red FlowerDoni Andriansyah
 

What's hot (20)

jQuery プラグインの作り方
jQuery プラグインの作り方jQuery プラグインの作り方
jQuery プラグインの作り方
 
Jquery2
Jquery2Jquery2
Jquery2
 
Analizador sintáctico de Pascal escrito en Bison
Analizador sintáctico de Pascal escrito en BisonAnalizador sintáctico de Pascal escrito en Bison
Analizador sintáctico de Pascal escrito en Bison
 
Making DSL with []
Making DSL with []Making DSL with []
Making DSL with []
 
Templating WordPress
Templating WordPressTemplating WordPress
Templating WordPress
 
Comparison Principle
Comparison PrincipleComparison Principle
Comparison Principle
 
BABELで、ES2015(ES6)を学ぼう!
BABELで、ES2015(ES6)を学ぼう!BABELで、ES2015(ES6)を学ぼう!
BABELで、ES2015(ES6)を学ぼう!
 
With enter
With enterWith enter
With enter
 
12 PREMIO “1ER LUGAR” 9NA COPA GRUNDY.PDF
12 PREMIO “1ER LUGAR” 9NA COPA GRUNDY.PDF12 PREMIO “1ER LUGAR” 9NA COPA GRUNDY.PDF
12 PREMIO “1ER LUGAR” 9NA COPA GRUNDY.PDF
 
PHP Profiling
PHP ProfilingPHP Profiling
PHP Profiling
 
Miniray.php
Miniray.phpMiniray.php
Miniray.php
 
jQuery PLUGIN
jQuery PLUGINjQuery PLUGIN
jQuery PLUGIN
 
Quiz Component For Joomla
Quiz Component For JoomlaQuiz Component For Joomla
Quiz Component For Joomla
 
Sumahexavector
SumahexavectorSumahexavector
Sumahexavector
 
Jquery Plugin
Jquery PluginJquery Plugin
Jquery Plugin
 
certs.PDF
certs.PDFcerts.PDF
certs.PDF
 
Feeds. использование и создание плагинов. Feeds API
Feeds. использование и создание плагинов. Feeds APIFeeds. использование и создание плагинов. Feeds API
Feeds. использование и создание плагинов. Feeds API
 
Minishell
MinishellMinishell
Minishell
 
Working With Ajax Frameworks
Working With Ajax FrameworksWorking With Ajax Frameworks
Working With Ajax Frameworks
 
Web Programming - Toko Bunga Red Flower
Web Programming - Toko Bunga Red FlowerWeb Programming - Toko Bunga Red Flower
Web Programming - Toko Bunga Red Flower
 

Viewers also liked

Пожиратели памяти в WordPress
Пожиратели памяти в WordPressПожиратели памяти в WordPress
Пожиратели памяти в WordPressKonstantin Kovshenin
 
WordPress под нагрузкой: масштабирование и отказоустойчивость
WordPress под нагрузкой: масштабирование и отказоустойчивостьWordPress под нагрузкой: масштабирование и отказоустойчивость
WordPress под нагрузкой: масштабирование и отказоустойчивостьKonstantin Kovshenin
 
7 убийц производительности WordPress
7 убийц производительности WordPress7 убийц производительности WordPress
7 убийц производительности WordPressKonstantin Kovshenin
 
Почему HTTPS соединение необходимо реализовать на Вашем сайте?
Почему HTTPS соединение необходимо реализовать на Вашем сайте?Почему HTTPS соединение необходимо реализовать на Вашем сайте?
Почему HTTPS соединение необходимо реализовать на Вашем сайте?Alexey Vidanov
 
Основые безопасности WordPress
Основые безопасности WordPressОсновые безопасности WordPress
Основые безопасности WordPressKonstantin Kovshenin
 
Цикл разработки WordPress
Цикл разработки WordPressЦикл разработки WordPress
Цикл разработки WordPressKonstantin Kovshenin
 

Viewers also liked (9)

P2
P2P2
P2
 
The Settings API
The Settings APIThe Settings API
The Settings API
 
Пожиратели памяти в WordPress
Пожиратели памяти в WordPressПожиратели памяти в WordPress
Пожиратели памяти в WordPress
 
WordPress под нагрузкой: масштабирование и отказоустойчивость
WordPress под нагрузкой: масштабирование и отказоустойчивостьWordPress под нагрузкой: масштабирование и отказоустойчивость
WordPress под нагрузкой: масштабирование и отказоустойчивость
 
Memory Management in WordPress
Memory Management in WordPressMemory Management in WordPress
Memory Management in WordPress
 
7 убийц производительности WordPress
7 убийц производительности WordPress7 убийц производительности WordPress
7 убийц производительности WordPress
 
Почему HTTPS соединение необходимо реализовать на Вашем сайте?
Почему HTTPS соединение необходимо реализовать на Вашем сайте?Почему HTTPS соединение необходимо реализовать на Вашем сайте?
Почему HTTPS соединение необходимо реализовать на Вашем сайте?
 
Основые безопасности WordPress
Основые безопасности WordPressОсновые безопасности WordPress
Основые безопасности WordPress
 
Цикл разработки WordPress
Цикл разработки WordPressЦикл разработки WordPress
Цикл разработки WordPress
 

More from Konstantin Kovshenin

Будущее WordPress (SPB, 2014)
Будущее WordPress (SPB, 2014)Будущее WordPress (SPB, 2014)
Будущее WordPress (SPB, 2014)Konstantin Kovshenin
 
Road to Platform @ WordPress.com VIP Workshop 2014
Road to Platform @ WordPress.com VIP Workshop 2014Road to Platform @ WordPress.com VIP Workshop 2014
Road to Platform @ WordPress.com VIP Workshop 2014Konstantin Kovshenin
 
Как повысить скорость вашего сайта на WordPress
Как повысить скорость вашего сайта на WordPressКак повысить скорость вашего сайта на WordPress
Как повысить скорость вашего сайта на WordPressKonstantin Kovshenin
 
Things I Wish I Had Known Before Developing a WordPress Theme
Things I Wish I Had Known Before Developing a WordPress ThemeThings I Wish I Had Known Before Developing a WordPress Theme
Things I Wish I Had Known Before Developing a WordPress ThemeKonstantin Kovshenin
 
7 Tips for Better WordPress Theme Development
7 Tips for Better WordPress Theme Development7 Tips for Better WordPress Theme Development
7 Tips for Better WordPress Theme DevelopmentKonstantin Kovshenin
 

More from Konstantin Kovshenin (7)

Scaling out with WordPress
Scaling out with WordPressScaling out with WordPress
Scaling out with WordPress
 
Будущее WordPress (SPB, 2014)
Будущее WordPress (SPB, 2014)Будущее WordPress (SPB, 2014)
Будущее WordPress (SPB, 2014)
 
Road to Platform @ WordPress.com VIP Workshop 2014
Road to Platform @ WordPress.com VIP Workshop 2014Road to Platform @ WordPress.com VIP Workshop 2014
Road to Platform @ WordPress.com VIP Workshop 2014
 
Будущее WordPress
Будущее WordPressБудущее WordPress
Будущее WordPress
 
Как повысить скорость вашего сайта на WordPress
Как повысить скорость вашего сайта на WordPressКак повысить скорость вашего сайта на WordPress
Как повысить скорость вашего сайта на WordPress
 
Things I Wish I Had Known Before Developing a WordPress Theme
Things I Wish I Had Known Before Developing a WordPress ThemeThings I Wish I Had Known Before Developing a WordPress Theme
Things I Wish I Had Known Before Developing a WordPress Theme
 
7 Tips for Better WordPress Theme Development
7 Tips for Better WordPress Theme Development7 Tips for Better WordPress Theme Development
7 Tips for Better WordPress Theme Development
 

Секреты WP_Query