非插件实现WordPress随机跳转文章

非插件实现WordPress随机跳转文章,还是主张能不用插件的情况下尽可能不用插件

今天介绍一种不用插件实现WordPress随机跳转文章的方法,随机跳转的话好处很多可以有效的提高用户体验和粘贴度。具体演示请见 游子网络 的右上角 “随便看看”

非插件实现WordPress随机跳转文章的方法如下:

1、在主题函数中添加如下代码,WordPress后台---外观---编辑----找到 主题支持函数(functions.php) 文件 一定要放在标签?>标签中。改之前记得备份以防万一

function matt_random_redirect() {
global $wpdb;

$query = "SELECT ID FROM $wpdb->posts WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";

if ( isset( $_GET['random_cat_id'] ) ) {
$random_cat_id = (int) $_GET['random_cat_id'];
$query = "SELECT DISTINCT ID FROM $wpdb->posts AS p INNER JOIN $wpdb->term_relationships AS tr ON (p.ID = tr.object_id AND tr.term_taxonomy_id = $random_cat_id) INNER JOIN $wpdb->term_taxonomy AS tt ON(tr.term_taxonomy_id = tt.term_taxonomy_id AND taxonomy = 'category') WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
}

if ( isset( $_GET['random_post_type'] ) ) {
$post_type = preg_replace( '|[^a-z]|i', '', $_GET['random_post_type'] );
$query = "SELECT ID FROM $wpdb->posts WHERE post_type = '$post_type' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1";
}

$random_id = $wpdb->get_var( $query );

wp_redirect( get_permalink( $random_id ) );
exit;
}
if ( isset( $_GET['random'] ) )
add_action( 'template_redirect', 'matt_random_redirect' );

2、在导航或者你想要放置的位置添加如下代码

<a rel='nofollow' href="/?random" target="_blank" title="随便看看">随便看看</a>

OK,试试效果吧,应该很不错的。如果遇到问题可以在这留言,一般是不会有问题的除非functions.php插入代码的位置不对。href中已经添加rel='nofollow' 对SEO友好一点。

最后编辑于:2011/6/5作者: 游子

热爱一切美好的新事物,搞网站也被网站搞,剁手折腾。关注与学习Web相关技术与UI\UE\UED\UCD\Server相关知识,服务器运维、前端、后端、非专业程序猿、非高级前端后端攻城师!

9 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

  1. 5#

    你好!你说的导航是那个位置?
    我做了还是不行,可以教下我嘛?
    QQ:335142337谢谢了!

    • 游子 游子说道:

      添加到你想添加的地方,编辑主题模板!

  2. 博客推广 博客推广说道:
    4#

    支持下博主,欢迎回访啊~

  3. yesureadmin yesureadmin说道:
    3#

    代码收藏,目前还不知道加在哪里,感觉还是挺不错的

  4. 沈泓宏 沈泓宏说道:
    2#

    为什么可以提高用户体验和粘黏度诶?不是直接用随机文章就可以了么?

  5. 博士牌民工 博士牌民工说道:
    1#

    嗯,不错,学习了。不过不折腾WP都好久了

    • 游子 游子说道:

      相互学习!折腾很累有空的时候再折腾