代码

<?php 
$rand_posts = get_posts('numberposts=10&orderby=rand'); // 10代表调用条数 
foreach( $rand_posts as $post ) : //循环开始 
?> 
<li>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</li>
<!--显示样式--> 
<?php endforeach; ?> 
<!--循环结束—>

## 函数解释

get_posts()

get_posts是公共的函数,直接可以调用。

形式:

$posts=get_posts($arg);

#### 参数:

缺省的

$arg= array(
  'numberposts'=> 5, 
  'offset'=> 0,
  'category'=> 0, 
  'orderby'=> 'post_date',
  'order'=> 'DESC',
  'include'=> ”,
  'exclude'=> ”, 
  'meta_key'=> ”,
  'meta_value'=>”, 
  'post_type'=> 'post'
  'suppress_filters'=> true

);

$arg可以如上的数组,也可写成numberposts=5&category=1…如此的字符串,但是注意,优先修改缺省定义,其次添加自己的定义。如:添加category_name的查询条件时,应同时修改category的值,建议只使用category查询,不要使用category_name。

调用机制:

get_posts()生成一个新的wp_query类,把$arg传到wp_query->query($arg)去处理。wp_query->query实际是调用自身的get_posts过程,把$arg翻译成mysql的SELECT语句,然后发到$wpdb->query,调用mysql语句进行查询。

整个逆过程是:mysql SELECT——》$wpdb->query——》wp_query->get_posts——》wp_query->query——》get_post;

从整个过程可知:$wpdb是底层类,wp_query是基于$wpdb的衍生类,get_posts是开放的公用过程,整合的高级应用。

返回数值:$posts

the_permalink()

该标签显示当前被主循环(loop)处理的文章的固定链接URL。the_permalink()必须用在主循环(loop)中,该标签通常用来显示页面上文章的固定链接。由于the_permalink()只能显示正在被主循环处理的文章的固定链接,因此用户无法用它来显示任意文章。如果你希望显示某篇文章的固定链接,并且你知道这篇文章的ID,可以考虑使用get_permalink()

参数

该标签无参数

用法

<?php the_permalink(); ?>

the_title()

显示或返回内容页(Post)标题
用法:<?php the_title(‘before’,'after’,display); ?>
before:(字符串)标题前面的文字,默认情况下不显示,
after:(字符串)标题后面的文字,默认情况下不显示
display:(布尔)当布尔值为真时,显示标题(默认),当布尔值为假时,得

到标题的值但不显示