[英]How to fix caching issue in PHP data from database in Wordpress
我嘗試使用下面的代碼進行插件開發,但存在緩存問題(我認為)。 請在下方了解詳情。
問題
我創建了一個過濾器來接受自定義的 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.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.