WordPress在登录之后重新刷新浏览器缓存

本来在WordPress里设置了浏览器页面缓存以加快页面的加载体验,但网站内有部分的内容是需要用户登录之后才有权限访问的,但由于浏览器缓存了页面,带来的问题是即使用户登陆了,访问的还是浏览器缓存的未登录之前的页面内容,会造成访问上的困扰。
一个优雅的解决方式是使用AJAX加载需要登录的内容,但实现起来巨麻烦,所以采用了基于前端JavaScript刷新页面的方案。
将以下JavaScript代码添加到您的主题的footer.php文件中:
<?php if (is_user_logged_in()) : ?>
<script>
document.addEventListener('DOMContentLoaded', function() {
if (document.body.classList.contains('logged-in')) {
// 为所有内部链接添加时间戳参数
var links = document.querySelectorAll('a[href^="<?php echo home_url(); ?>"]');
var timestamp = new Date().getTime();
links.forEach(function(link) {
var url = new URL(link.href);
// 排除后台链接
if (!url.pathname.includes('/wp-admin/') && !url.pathname.includes('/wp-login.php')) {
url.searchParams.set('ver', timestamp);
link.href = url.toString();
}
});
}
});
</script>
<?php endif; ?>WordPress中的footer.php文件位于您当前激活的主题目录下。具体路径是:
wp-content/themes/您的主题名称/footer.php
❤️ 如果这篇文章对您有帮助,欢迎打赏支持

扫描上方二维码,用微信打赏

