為什么要學WP_Query?
wordpress默認會根據網址調用數據,不能滿足我們所有建站要求,而WP_Query可以用於查詢任何你想要的內容,相當於自定義數據調用。
便於記憶,在講用法之前我們回顧一下循環的寫法:if..else 其他>>>
<?php if( have_posts() ) : while( have_posts() ) : the_post(); ?> <!-- 在這里調用數據 --> <?php endwhile; ?> <?php endif; ?>
WP_Query用法:設定條件->查詢->循環調用,下面可以看出循環的用法就是比以前的多了$myquery->
<?php // 1.用於查詢的參數或者參數集合 $args = array( 'post_type'=>'post' ); // 2.查詢 $myquery=new WP_Query($args); // 3.判斷查詢的結果,有內容則循環 if($myquery->have_posts()):while($myquery->have_posts()):$myquery->the_post(); ?> //輸出循環結構 <?php endwhile; endif; // 4.重置請求數據 wp_reset_postdata(); ?>
然后我們搜索不同的內容只需要修改里面的條件就可以了~實戰一下吧
調用單篇信息:
根據文章id查詢文章信息=http://localhost/wordpress/?p=36 數據
$query = new WP_Query( 'p=36' );
等同:
$args = array( 'p'=>'36' ); $query = new WP_Query( $args );
根據文章分類調用數據 = http://localhost/wordpress/?cat=8 數據
$query = new WP_Query( 'cat=9' );
根據頁面的ID調用數據 =http://localhost/wordpress/?page_id=7 數據
$query = new WP_Query( 'page_id=7' );
...
=================================================================
如果調用多篇信息呢?
調用文章id為34、32、30的,
$args = array( 'post__in'=>array(34,32,30) );
還有排除法,除了文章id為3的都顯示:
$args = array( 'post__not_in'=>array(3) );
post__in默認調用的是文章信息,如果要調用頁面,則需要指定類型
$args = array( 'post_type'=>'page', 'post__in'=>array(3) );
=================================================================
調用全部頁面
$query = new WP_Query( 'post_type=page' );
調用全部文章
$query = new WP_Query( 'post_type=post' );
基本的練習完成了,想必你已經知道函數的用法了,給自己列個條件清單吧~那以后就可以直接拿來用了
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼