实现WordPress随机重定向到任意文章的功能(2)

http://www.itjxue.com  2015-08-14 19:59  来源:未知  点击次数: 

2、使用wp-query()实现重定向

// page-random.php源代码(通过WP_Query实现)

//随机重定向页面模板

// 为WP_Query()设置参数

$args = array(

'posts_per_page' => 1,

'orderby' =>'rand'

);

//从数据库中随机选择一篇文章

$my_random_post = new WP_Query ($args );

// 通过WP_Query处理数据库请求

while ( $my_random_post->have_posts ()) {

$my_random_post->the_post ();

// 将用户重定向到随机文章

wp_redirect ( get_permalink ());

exit;

}

使用WP_Query的最大的好处是,它比比get_posts()函数拥有更多的参数,当你建立特定查询的时候,可以提供更大的灵活性。

下面举几个实例:

我们可以让WordPress的重定向到某个分类下的文章,比如我们重定向到萝卜居家园网下面的“html模板”这个分类下面的任意文章:

// 为WP_Query()设置参数

$args = array(

'category_name' => 'htmlmuban', //记住,使用分类别名。

'posts_per_page' => 1,

'orderby' => 'rand'

);

//从数据库中随机选择一篇文章

$my_random_post = new WP_Query ( $args );

//通过WP_Query处理数据库请求

while ( $my_random_post->have_posts () ) {

$my_random_post->the_post ();

//将用户重定向到随机文章

wp_redirect ( get_permalink());

exit;

}

如果我们要排除“html模板”这个分类,重定向到其余的所有分类下面的任意文章咧?怎么实现:

//为WP_Query()设置参数

$args = array(

'category__not_in' => array(1), // 这里是要排除的分类id,比如html模板这个分类的id为1,在这里我们排除他

'posts_per_page' => 1,

'orderby' =>'rand'

);

//从数据库中随机选择一篇文章

$my_random_post = new WP_Query ( $args );

//通过WP_Query处理数据库请求

while ( $my_random_post->have_posts ()) {

$my_random_post->the_post ();

//将用户重定向到随机文章

wp_redirect (get_permalink () );

exit;

}

从这些例子中,你可以看到,没有复杂的,也没有什么太先进,我们可以用短短的几行代码实现WordPress随机重定向到任意文章的功能。你也可以通过上面的方式扩展出更多的用途来。

(责任编辑:IT教学网)

更多

推荐CMS技巧文章