挂件头衔✨️靓标库🧚‍♂️名人堂🦄宝可梦🍎水果机🥊猜拳🏧黑市🏧银行💹抽奖
   🎁
返回列表 发布新帖
查看: 185|回复: 0

[代码技巧] 子比主题 – 右上角随机访问文章功能

[复制链接]
社区贡献

331

主题

204

回帖

2万

积分

等级头衔
Icon组别 : 管理员
Icon等级 :

积分成就
   钻石 : 293 颗
   贡献 : 40842 点
   金币 : 24 枚
Icon在线时间 : 1696 小时
Icon注册时间 : 2024-11-22
Icon最后登录 : 2026-6-11

荣誉勋章

连续签到LV.1累计签到LV.3任务·年会员幸运抽奖·皇幸运抽奖·尊幸运抽奖·豪起源之星摩羯座推广LV.2钻石LV.1注册一周年

总共送礼:1 个    总共收礼:0 个

实力·绝代收藏家

飞流名人堂成员 1 FLLTCN 实名认证 特邀大神 诚信商家 信誉担保 精华作者+ 官方团队 vip vip-year 发表于 2025-10-10 17:06:52 | 查看全部 |阅读模式 浙江金华

交易无需等待,成交就是现在,全面资源整合网络大咖云集,让你轻松玩转互联网!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
这是一款子比主题的右上角随机访问文章功能,利用的子比自带的颜色和跳转图标,给自己的右上角加一个随机文章还是比较美观的,喜欢的自行部署吧!

tengfei_down - 2025-10-10T170443.539.webp

代码部署


一共两个部分的代码,跟着我的教程走不会有问题!
func代码
定位:/wp-content/themes/zibll/func.php文件,没有这个文件自己创建一个,记得加上php头,要不然会报错,将下面的代码直接丢里面即可!
  1. function register_random_post_redirect_endpoint() {
  2.     register_rest_route('wp/v2', '/random-post', array(
  3.         'methods' => 'GET',
  4.         'callback' => 'handle_random_post_redirect',
  5.         'permission_callback' => '__return_true'
  6.     ));
  7. }
  8. add_action('rest_api_init', 'register_random_post_redirect_endpoint');

  9. function handle_random_post_redirect($request) {
  10.     // 获取所有已发布的文章
  11.     $args = array(
  12.         'post_type' => 'post',
  13.         'post_status' => 'publish',
  14.         'fields' => 'ids',
  15.         'posts_per_page' => -1,
  16.     );
  17.    
  18.     $posts = get_posts($args);
  19.    
  20.     if (empty($posts)) {
  21.         return new WP_Error('no_posts', '没有找到文章', array('status' => 404));
  22.     }
  23.    
  24.     // 随机选择一篇文章
  25.     $random_post_id = $posts[array_rand($posts)];
  26.     $random_post_url = get_permalink($random_post_id);
  27.    
  28.     // 直接重定向
  29.     if (!headers_sent()) {
  30.         wp_redirect($random_post_url);
  31.         exit;
  32.     }
  33.    
  34.     // 如果无法重定向,返回JSON响应
  35.     return array(
  36.         'post_id' => $random_post_id,
  37.         'post_url' => $random_post_url,
  38.         'message' => '请手动访问上面的URL'
  39.     );
  40. }
  41. function zib_get_random_post_button($args = array()) {
  42.     if (!_pz('random_post_button', true)) {
  43.         return '';
  44.     }

  45.     $random_icon = '<svg t="1751112388719" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5410" width="1000" height="1000" data-spm-anchor-id="a313x.search_index.0.i12.4dfa3a81Mc8lKy"><path d="M166.464 448.704l212.64 128.736a32 32 0 1 1-33.152 54.72L79.424 470.848a32 32 0 0 1 4.256-56.928l832-347.456a32 32 0 0 1 43.744 35.52l-145.76 768a32 32 0 0 1-48.576 21.056L494.88 719.712a32 32 0 0 1 34.24-54.08l230.464 146.112L885.44 148.48 166.464 448.704z" p-id="5411" data-spm-anchor-id="a313x.search_index.0.i14.4dfa3a81Mc8lKy"></path><path d="M416 632.096V896a32 32 0 0 1-64 0V617.376a32 32 0 0 1 11.2-24.32L752.192 260a32 32 0 0 1 41.6 48.64L416 632.064z" p-id="5412" data-spm-anchor-id="a313x.search_index.0.i13.4dfa3a81Mc8lKy"></path></svg>';

  46.     $defaults = array(
  47.         'class' => 'jb-blue radius-circle',
  48.         'text' => '随机文章',
  49.         'icon' => $random_icon,
  50.         'tooltip' => '随机阅读一篇文章',
  51.         'echo' => true
  52.     );
  53.    
  54.     $args = wp_parse_args($args, $defaults);
  55.    
  56.     $button = '<a href="' . esc_url(home_url('/wp-json/wp/v2/random-post')) . '" rel="external nofollow"  
  57.           class="random-post-button but ' . esc_attr($args['class']) . ' ml10"
  58.           data-toggle="tooltip"
  59.           data-placement="bottom"
  60.           title="' . esc_attr($args['tooltip']) . '">'
  61.           . $args['icon']
  62.           . esc_html($args['text'])
  63.           . '</a>';

  64.     if ($args['echo']) {
  65.         echo $button;
  66.     }
  67.    
  68.     return $button;
  69. }
复制代码

zib-header.php代码
定位:/wp-content/themes/zibll/inc/functions/zib-header.php文件,我们到了这个文件之后搜代码
  1. function zib_menu_button($layout = 1)
复制代码
将下面的代码放到里面,如下图我圈的地方即可!
tengfei_down - 2025-10-10T170553.721.webp
  1. $random_button = zib_get_random_post_button(array(
  2.         'echo' => false
  3.     ));
  4.     if ($random_button) {
  5.         $button .= $random_button;
  6.     }
复制代码

角标颜色
可以看到我们func代码里面有一行'class' => 'jb-blue radius-circle',里面的jb-blue,我们可以按照下面来自己弄自己喜欢的颜色即可!
class
样式
class
样式
class
样式
c-red
红色文字
b-theme
主题背景色
jb-red
渐变红色背景
c-yellow
橙色文字
b-red
红色背景
jb-yellow
渐变橙色背景
c-blue
蓝色文字
b-yellow
橙色背景
jb-blue
渐变蓝色背景
c-blue-2
深蓝色文字
b-blue
蓝色背景
jb-green
渐变绿色背景
c-green
绿色文字
b-green
深蓝色背景
jb-purple
渐变紫色背景
c-purple
紫色文字
b-purple
紫色背景
jb-vip1
渐变金色背景


jb-vip2
渐变黑色背景
[/zhedie]

本帖被以下淘专辑推荐:

路虽远,行则将至;事虽难,做则必成。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

飞流广播+ 发布

系统消息:飞流安卓客户端APP已上线,请在QQ群(123129)群文件内获取下载。
02-21 02:22
01-24 12:40
站内通告

📢 六月份后均不在线,请悉知

提供资源交易、信息共享、靓号交流、技术变现、学习问答、兴趣娱乐等全面服务。

1.丰富功能系统,扩展社区特色玩法,打造最好的互联网聚集圈子。

2.准确信息真实交易,安全快捷又方便,让虚拟交易面对面。

3. 天上不会掉馅饼,话术骗术迷人心,切勿脱离平台线下交易,被骗与平台无关!

4. 欺诈骗钱,违规违法将视情受到警告&禁言&封号甚至检举至👮🏻‍♀️处理!

官方Q群:1003810038钉推群:BAYR2383 站长QQ:3388700000

飞流论坛(FLLT.CN),一个专注于资源信息发布、虚拟网络交易、技术学习与娱乐社交的交流平台。
  • 钉钉新帖推送群
  • 官方交流QQ群
  • 站长唯一微信号

💥客户端|🧿小黑屋|📴手机页|飞流网 |网站地图

GMT+8, 2026-6-12 07:17 , Processed in 0.078795 second(s), 85 queries, MemCached On , Gzip On.

飞流论坛 HanAnalytics icp

Copyright © 2024-2026 飞流网 版权所有 All Rights Reserved. X3.5

快速回复 返回顶部 返回列表