WordPress前端Dashicons不显示求助:非登录用户无法查看度假星级评分
解决方案:WordPress更新后非登录用户看不到Dashicons星级评分
这问题我之前帮好几个做旅游站的客户处理过,WordPress更新后收紧了Dashicons的加载权限——默认它只给登录用户加载样式,非登录用户自然看不到图标了。另外星级位置的调整也很简单,咱们一步步来搞定:
1. 强制给所有用户加载Dashicons样式
WordPress默认只在后台和登录用户的前端加载Dashicons,更新后这个逻辑更严格了。你需要在主题的functions.php文件(优先用子主题的functions.php,避免主题更新覆盖代码)里添加这段代码:
function enqueue_dashicons_for_all() { wp_enqueue_style( 'dashicons' ); } add_action( 'wp_enqueue_scripts', 'enqueue_dashicons_for_all' );
这段代码会在前端页面强制加载Dashicons的样式表,不管用户是否登录,这样非登录用户就能看到星级图标了。
2. 检查星级评分的输出逻辑
如果加了上面的代码还是看不到,那大概率是你输出星级的代码里加了用户登录判断。比如之前可能写了类似这样的代码:
if ( is_user_logged_in() ) { // 输出星级的代码,比如循环输出Dashicons的星星标签 }
把这个is_user_logged_in()的判断去掉,直接输出星级代码就行——这样所有用户都能看到评分了。
3. 把星级定位到度假产品左上角
接下来调整位置,用CSS绝对定位就能实现。假设你的星级评分容器有个类叫.vacation-star-rating,度假产品的容器类是.vacation-product-item,在主题的自定义CSS里添加:
/* 给产品容器设置相对定位,作为星级的定位参照 */ .vacation-product-item { position: relative; } /* 定位星级到左上角 */ .vacation-star-rating { position: absolute; top: 10px; /* 距离顶部的距离,可自行调整 */ left: 10px; /* 距离左侧的距离,可自行调整 */ z-index: 99; /* 确保星级在产品图片/内容上方 */ background: rgba(255, 255, 255, 0.9); /* 可选,加半透明背景提升可读性 */ padding: 4px 8px; border-radius: 4px; }
根据你实际的HTML类名调整上面的选择器就行,比如如果星级是直接用<span class="dashicons dashicons-star-filled"></span>组成的,也可以直接给这些span的父容器加定位样式。
最后验证
做完上面三步,清一下网站缓存(如果用了缓存插件),然后退出登录状态访问网站,应该就能看到每个度假产品左上角的星级评分了。
内容的提问来源于stack exchange,提问作者user2659607
相关产品推荐
相关产品推荐

