我们在新设计中添加的新功能之一就是您在整个网络中看到的“探索”功能。 当用户点击这个按钮,他们被带到一个网站上的随机帖子。 以前,我们是这样做的,所以用户被带到一个显示随机文章的页面。 那里有相当多的问题。 主要的用户不知道页面的实际URL。 当启动我们的最新网站List25时,我们认为添加一个名为“我感觉好奇”的按钮并让用户以这种方式浏览会很酷。 在这个时候,我正在路易斯维尔的WordCamp讲话。 我很高兴看到我们的一个朋友(@ Otto42)碰巧出席了会议。 在会议期间,奥托写了这个片段,而不是听我的讲话(就像他真的需要学习)。 长话短说,在这篇文章中,我们将向您展示如何将用户重定向到WordPress中的随机文章。
打开您的主题的functions.php文件或创建一个空白的插件文件并粘贴以下代码:
ADD_ACTION( '初始化', 'random_add_rewrite'); 函数random_add_rewrite(){ 全球$ wp; $ WP-> add_query_var( '随机'); add_rewrite_rule('random /?$','index.php?random = 1','top'); } ADD_ACTION( 'template_redirect', 'random_template'); 函数random_template(){ if(get_query_var('random')== 1){ $ posts = get_posts('post_type = post&orderby = rand&numberposts = 1'); foreach($ posts为$ post){ $ link = get_permalink($ post); } wp_redirect($连接,307); 出口; } }
就是这样,你完成了。 现在创建一个链接到yourdomain.com/random/的按钮,上面的代码片段将负责其余部分。
片段的解释:
这段代码首先添加一个查询变量Random。 然后它使用 template_redirect 在WordPress中挂钩,并说如果随机变量是存在的,然后随机从帖子类型“后”获得一个帖子。 然后它做了一个简单的307重定向。
片段使用307重定向的原因是因为它是临时重定向。 浏览器经常缓存302重定向,这是着名的临时重定向。
我们遇到的一些错误:
如果您正在使用W3 Total Cache并启用了数据库缓存,则需要在排除列表中添加以下规则。
/随机/
/index.php?random=1
如果您使用的是Yoast的WordPress SEO插件,那么请不要在永久链接区域使用“重定向丑陋网址”复选框,否则此代码将无法使用。
现在,您可以像我们的网站上创建一个小探索按钮。