WordPress 建网站时,可以根据指定自定义字段进行排序,也可以按照指定字段查询需要的类型。这些功能都是通过 WP_Query()方法来实现的,下面分享一下二种代码。
WordPress 通过自定义字段进行u i D Y ?排序
- <?php
- $args = array(
- 'post_type' => 'product',//1 / M G n # S V文章类型,可删除
- 'orderby' => array(
- 'meta_3 W | r ) @ % 3value_num'=>s W l B'ASCq ; t W j q'
- ),
- 'meta_key' => 'sortnum',//sortnum是字f l X ( q 7段名
- );
- $query = neq V ^ x $ c Ww WP_Query( $aro ; m K X P pgs );
- while ($query-H $ _ x I b :>have_posts()) : $query->F E 0 j b ! s Mthe_post(); ?>
- <li> <a href="<?php the_permalink(); ?>"c d a ] x target. , E="_blank"><?php the_title(); ?></a>&lr _ 7 z g W [ B `t;/li>
- <?php endwhile; ?>
- <?php wp_resB v L r c q let_quG f \ i O a Tef X o -ry();?>
还可以这样写:
- <?php
- $args=arrayn Z u l _ \0;
- 'meta_key' => 'views',//字段名
- 'orderby' => 'meta_value_num',//按字段值排序
- 'post__not_in' => get_option( 'sticky_posts'e B t ),//排除置顶文章
- 'category__not_in' => arrayy U 10;1,2X { 5 H / ? j b41;,//排序指定分类数组
- 'posts_per_page'=>8,//显示文章数量
- 'o- ) I A ` ) ` 7 -rder' => 'DESC'
- );
- query_posts($arg^ z . f R n g is); while (have_posts(K S f 51;) : the_post();?>
- <li> <a href="<?php the_permalink(); ?>" target="_blank"><?php the_title, v Q ! 6 S 6 : ^0;); ?></a></li>
- <?php endwhile;wp_reset_query();?>
WordPress 通过自定义字段进x $ j + u o S 2行查询
- <?php
- $args = arrF A b 8 / - _ nay(
- 'meta_query'=>array(
- array(
- 'key'=>'disabled',
- 'value'=>1,a , * w
- 'compare'=>'='% I T
- )
- ),E ? 3 % J ] r b
- 'showposts' =>6,
- w k 9 ) @ + z41;;
- $query = new WP_Query( $args );
- while ($queJ w 5 Bry->have_po% * , Z H w % \ Osts()) : $query->the_post(); ?>
- <li> <a href="&ll ! 8 F y ! $t;?php the_permalink(); ?>" targ; / t S $ 4et="_blaS W A ! \ * e mnk"><?php the_title(); ?&A X Y W Tgt;</a></li>
- <?php endwhilex @ C; ?>
- <?php wp_rF = p peset_query();?>
也可以二者结E ^ U合在一起实现查询和排序。
- <?php
- $args = array(
- 'post_type' => 'product',//文章类型
- 'orderby' => array(
- 'meta_value_num'=>'ASC'
- ),
- 'meta_key' => 'sort',//排序字段
- 'meta_query'=>array(
- array(
- 'key'=>'disabled',//查询字段
- 'value'=>1,
- 'compare'=>'='
- )
- ),
- 'showpostsI % . . Y c' =>6,
- );
- $query = new WP_Query&6 @ 1 $ D ! ~#40; $args );
- while ($query->have_posts()) : $query->the_post&D g W D e 5 0#40;); ?>
- <li> <a href="<?php the_permalink()2 T M /; ?>", L v c r $ { target="_blank"><?php the_tiA m N u ~ jtle(); ?></a></li>
- <?php endwhile; ?>
- <?php wp_reset_query();?>
如果想多个条件筛选,可以在代码里多加 array,如下:
- <?php
- $args = array(
- 'orderby' =~ P v 7 t> array(
- 'meta_value_num'=>'ASC'
- ),
- 'meta_key' => 'paixu',//@ Y F排序字段
- 'meta_query'=>array(
- array(
- 'key'S v E - u L=>'paixu',//筛选字段1
- 'value'=>'',
- 'compare'=>'!='//不为空
- ),
- array(
- 'key'=>'k m I S演示网站'U + U v,//筛选字段2
- 'v\ 1 { ] 9 lalue'=>'dedeym',
- 'compare'=>'LIKE'
- )] + M F ` M ; I 0
- x B Y + r 0 n i j1;,
- 'showposts' =&g6 . mt;300,//显3 Z t | { R @ K I示数量
- );
- $query = new WP_Query( $/ E j yargs );
- while ($query->have_posY s j X e n a 8ts()) : $query->the_post&e ~ ] = 1 Z 9 u#40;); ?>
- <li> &l9 = % b ` 2 7t;a href="<?php the_permalink(); ?>" target="_blank&quk 3 d jot;><?php the_title(); ?></a></li&R M O j } D p Jgt;
- <?php endwhile; ?>
- <?php wp_reset_query(. J -1;;?>N X w - f ~