巧用WordPress随机重定向功能

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 06:25 点击:

今天萝卜鱼在wiki百科上查找资料的时候,看到wiki上有一个随机文章的功能很有意思,特总结一下此类随机文章在wordpress中的实现方式。

  

\

 

  通过随机重定向功能,给读者提供一个机会,以随机方式跳转到任意的文章。真正的实现方式很简单。所需要做的是仅仅创建一个超链接,命名为“随机文章”,点击时将重定向随机文章。

  为了实现在WordPress随机重定向,可以有以下三个步骤即可:

  · 一个页面来处理重定向

  · 查询从数据库中挑选后,

  · 通过一个链接将用户重定向到随机文章。

  当然,你可以使用一个插件。如果你不需要其他功能的话,萝卜鱼并不推荐此种方式。

  1、使用get_posts()函数实现重定向

  建立一个page-random.php模板页面,page-random.php中不包括头部区域,侧边栏和页脚模板加载,因为page-random.php将不会为用户产生任何可见的输出,它只会跳转(即重定向)到我们设定的随机选择的文章。实现过程为:从数据库中随机选择一篇文章,使用一个 foreach 循环来处理输出,将用户重定向到随机文章。

  // page-random.php源代码

  //随机重定向页面模板

  // 为get_posts()设置参数

  $args = array(

  'numberposts' => 1,

  'orderby' => 'rand'

  );

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

  $my_random_post = get_posts ( $args );

  //通过foreach循环来处理数据库请求

  foreach ( $my_random_post as $post ) {

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

  wp_redirect ( get_permalink ( $post->ID ) );

  exit;

  }

  现在我们需要做的是去WordPress的管理部分,以page-random.php为模板创建一个新的以random命名的空白页的,并发布。然后,比如当您访问http://www.luoboju.com/random/的,你会被自动重定向到一个随机的文章。先你就可以建立一个类似wiki百科一样的“随机文章”超链接了,点击改超链接就会将读者带到一个你设定的随机文章了。

  

\

 

  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'

  );

  //从数据

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • WordPress添加百度喜欢按钮小技巧
      • Wordpress 博客如何实现自定义Gravatar头像
      • 网站设计分析:建立良好的视觉层级
      • 网站设计分析:“中国式设计”的三个方向
      • 案例分析:奥巴马筹款网站的制作过程
      • 创建不平衡的平衡:在网页设计中使用不对称设计
      • 7大主流B2C首页导航栏设计对比分析
      • Wordpress页面模板制作方法及使用
      • css控制文字前的小图标
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1