文章目录
本文最后更新于 2020-01-28,已超过 365 天未更新,内容可能已失效。

将以下代码加入到主题目录中的“functions.php”文件中即可。

访问你网站的域名 https://你的网址域名/?random即可看到效果,如果要在导航菜单现实的话,在后台新建一个自定义URL菜单即可!

function<span class="pln"> random_postlite</span><span class="pun">()</span> <span class="pun">{</span>
<span class="kwd">global</span><span class="pln"> $wpdb</span><span class="pun">;</span><span class="pln">
$query </span><span class="pun">=</span> <span class="str">"SELECT ID FROM $wpdb->posts WHERE post_type = 'post' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1"</span><span class="pun">;</span>
<span class="kwd">if</span> <span class="pun">(</span><span class="pln"> isset</span><span class="pun">(</span><span class="pln"> $_GET</span><span class="pun">[</span><span class="str">'random_cat_id'</span><span class="pun">]</span> <span class="pun">)</span> <span class="pun">)</span> <span class="pun">{</span><span class="pln">
$random_cat_id </span><span class="pun">=</span> <span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $_GET</span><span class="pun">[</span><span class="str">'random_cat_id'</span><span class="pun">];</span><span class="pln">
$query </span><span class="pun">=</span> <span class="str">"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"</span><span class="pun">;</span>
<span class="pun">}</span>
<span class="kwd">if</span> <span class="pun">(</span><span class="pln"> isset</span><span class="pun">(</span><span class="pln"> $_GET</span><span class="pun">[</span><span class="str">'random_post_type'</span><span class="pun">]</span> <span class="pun">)</span> <span class="pun">)</span> <span class="pun">{</span><span class="pln">
$post_type </span><span class="pun">=</span><span class="pln"> preg_replace</span><span class="pun">(</span> <span class="str">'|[^a-z]|i'</span><span class="pun">,</span> <span class="str">''</span><span class="pun">,</span><span class="pln"> $_GET</span><span class="pun">[</span><span class="str">'random_post_type'</span><span class="pun">]</span> <span class="pun">);</span><span class="pln">
$query </span><span class="pun">=</span> <span class="str">"SELECT ID FROM $wpdb->posts WHERE post_type = '$post_type' AND post_password = '' AND post_status = 'publish' ORDER BY RAND() LIMIT 1"</span><span class="pun">;</span>
<span class="pun">}</span><span class="pln">
$random_id </span><span class="pun">=</span><span class="pln"> $wpdb</span><span class="pun">-></span><span class="pln">get_var</span><span class="pun">(</span><span class="pln"> $query </span><span class="pun">);</span><span class="pln">
wp_redirect</span><span class="pun">(</span><span class="pln"> get_permalink</span><span class="pun">(</span><span class="pln"> $random_id </span><span class="pun">)</span> <span class="pun">);</span>
<span class="kwd">exit</span><span class="pun">;</span>
<span class="pun">}</span>
<span class="kwd">if</span> <span class="pun">(</span><span class="pln"> isset</span><span class="pun">(</span><span class="pln"> $_GET</span><span class="pun">[</span><span class="str">'random'</span><span class="pun">]</span> <span class="pun">)</span> <span class="pun">)</span><span class="pln">
add_action</span><span class="pun">(</span> <span class="str">'template_redirect'</span><span class="pun">,</span> <span class="str">'random_postlite'</span> <span class="pun">);</span>

 

CC 许可协议
署名-非商业性使用-相同方式共享 4.0 国际 了解协议
文章链接:https://zptheme.com/1923.html
本文作者:子佩·来源:子佩工作室

除非注明,子佩工作室 文章均为原创,转载请以链接形式标明本文地址。

相关推荐

登录后即可发表评论

社交账号登录

全部评论 (0)