php - 如何修复 Wordpress 数据库中 PHP 数据中的缓存问题
问题描述
我尝试使用下面的代码进行插件开发,但存在缓存问题(我认为)。请在下方了解详情。
问题
我创建了一个过滤器来接受自定义的 url,我正在查询数据库,但结果值似乎在浏览器中没有改变,但在数据库中发生了改变。所以基本上传递的数据不会从数据库返回更新的值。
代码
add_action( 'init', function() {
add_rewrite_rule('coupon/([a-zA-Z0-9]+)[/]?$', 'index.php?coupon=$matches[1]', 'top');
});
add_filter('query_vars', function( $query_vars ) {
$query_vars[] = 'coupon';
return $query_vars;
});
add_action( 'template_include', function( $template ) {
if ( get_query_var( 'coupon' ) == false || get_query_var( 'coupon' ) == '' ) {
return $template;
}
ob_clean();
ob_start();
// Check if coupon exists
global $wpdb;
$coupon = get_query_var('coupon');
$coupon_query = $wpdb->prepare('SELECT * FROM wp_urls WHERE coupon = %s AND claimed_at IS NULL', $coupon);
$coupon_available = $wpdb->query($coupon_query) ? true : false;
if(!$coupon_available) {
header('Location: /'); // Redirect to landing page
exit();
}
return plugin_dir_path(__FILE__) . 'views/client/index.php';;
} );
预期结果
header('Location: /');
如果优惠券不可用,预期结果应将用户重定向到。
任何想法?
解决方案
您需要更新 WordPress 管理区域中的永久链接。例如:
Step 1: In the WordPress admin area, go to `Settings > Permalinks`
Step 2: Click `Save Changes`
Step 3: Permalinks and rewrite rules are flushed.
推荐阅读
- c# - unityplayer 中的地形纹理模糊
- php - 在 codeigniter PHP 中使用数组检查索引键
- math - 16bit product throughoutput可以在没有具体说明的情况下翻倍吗?
- java - 为什么我的程序没有立即更新 XML 文件?
- vb.net - mscorlib.dll VB.net 中出现“System.FormatException”类型的未处理异常
- encryption - Midori128 密文不正确
- amazon-web-services - 将 AMI 限制为 VPC 以在 AWS 中启动 EC2 实例
- docker - Docker compose 卷映射中的相对路径在 Windows 下不起作用
- go - 如何将 viper 配置解组为带有破折号字符的结构
- python-3.x - 带有 __init__ 函数的 Python 类多重继承