Skip to content

Commit 27f18c7

Browse files
committed
feat: add cache and fix htaccess
1 parent dc4bae3 commit 27f18c7

File tree

7 files changed

+148
-36
lines changed

7 files changed

+148
-36
lines changed

model/blog/category.php

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,14 @@ public function getCategory( $category_id ) {
1616
ON tt.`term_id` = t.`term_id`
1717
WHERE tt.`taxonomy` = 'category' and t.`term_id` = '" . (int) $category_id . "'";
1818

19-
$sql .= " GROUP BY t.term_id";
20-
21-
$result = $wpdb->get_row( $sql );
22-
19+
$sql .= " GROUP BY t.term_id";
20+
21+
$result = get_transient(md5($sql));
22+
if($result === false) {
23+
$result = $wpdb->get_row( $sql );
24+
set_transient(md5($sql), $result, 300);
25+
}
26+
2327
return $result;
2428
}
2529

@@ -77,7 +81,13 @@ public function getCategories( $data = array() ) {
7781
$sql .= " LIMIT " . (int) $data['start'] . "," . (int) $data['limit'];
7882
}
7983

80-
$results = $wpdb->get_results( $sql );
84+
$results = get_transient(md5($sql));
85+
86+
if($results === false) {
87+
$results = $wpdb->get_results( $sql );
88+
89+
set_transient(md5($sql), $results, 300);
90+
}
8191

8292
return $results;
8393
}
@@ -102,7 +112,11 @@ public function getTotalCategories( $data = array() ) {
102112
$sql .= ' AND ' . implode( ' AND ', $implode );
103113
}
104114

105-
$result = $wpdb->get_row( $sql );
115+
$result = get_transient(md5($sql));
116+
if($result === false) {
117+
$result = $wpdb->get_row( $sql );
118+
set_transient(md5($sql), $result, 300);
119+
}
106120

107121
return $result->total;
108122
}

model/blog/post.php

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ public function getPost($post_id)
2121

2222
$sql .= " GROUP BY p.ID";
2323

24-
$result = $wpdb->get_row($sql);
24+
$result = get_transient(md5($sql));
25+
if($result === false) {
26+
$result = $wpdb->get_row( $sql );
27+
set_transient(md5($sql), $result, 300);
28+
}
2529

2630
return $result;
2731
}
@@ -84,7 +88,12 @@ public function getPosts($data = array())
8488
$sql .= " LIMIT " . (int) $data['start'] . "," . (int) $data['limit'];
8589
}
8690

87-
$results = $wpdb->get_results($sql);
91+
92+
$results = get_transient(md5($sql));
93+
if($results === false) {
94+
$results = $wpdb->get_results( $sql );
95+
set_transient(md5($sql), $results, 300);
96+
}
8897

8998
return $results;
9099
}
@@ -116,7 +125,11 @@ public function getTotalPosts($data = array())
116125
$sql .= ' AND ' . implode(' AND ', $implode);
117126
}
118127

119-
$result = $wpdb->get_row($sql);
128+
$result = get_transient(md5($sql));
129+
if($result === false) {
130+
$result = $wpdb->get_row( $sql );
131+
set_transient(md5($sql), $result, 300);
132+
}
120133

121134
return $result->total;
122135
}
@@ -134,8 +147,11 @@ public function getCategoriesByPost($post_id)
134147
WHERE tt.`taxonomy` = 'category'
135148
AND tr.`object_id` = '" . $post_id . "'";
136149

137-
138-
$result = $wpdb->get_results($sql);
150+
$result = get_transient(md5($sql));
151+
if($result === false) {
152+
$result = $wpdb->get_results( $sql );
153+
set_transient(md5($sql), $result, 300);
154+
}
139155

140156
return $result;
141157
}

model/common/page.php

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@ public function getPage($page_id)
88

99
$sql = "SELECT p.ID, p.post_title AS title, p.`post_content` AS description, p.`menu_order` AS sort_order FROM ".$wpdb->prefix."posts p WHERE p.`post_type` = 'page' AND p.`ID` = '".(int)$page_id."'";
1010

11-
$result = $wpdb->get_row($sql);
11+
$result = get_transient(md5($sql));
12+
if($result === false) {
13+
$result = $wpdb->get_row( $sql );
14+
set_transient(md5($sql), $result, 300);
15+
}
1216

1317
return $result;
1418
}
@@ -62,7 +66,11 @@ public function getPages($data = array())
6266
$sql .= " LIMIT " . (int) $data['start'] . "," . (int) $data['limit'];
6367
}
6468

65-
$results = $wpdb->get_results($sql);
69+
$results = get_transient(md5($sql));
70+
if($results === false) {
71+
$results = $wpdb->get_results( $sql );
72+
set_transient(md5($sql), $results, 300);
73+
}
6674

6775
return $results;
6876
}
@@ -84,7 +92,11 @@ public function getTotalPages($data = array())
8492
$sql .= ' AND ' . implode(' AND ', $implode);
8593
}
8694

87-
$result = $wpdb->get_row($sql);
95+
$result = get_transient(md5($sql));
96+
if($result === false) {
97+
$result = $wpdb->get_row( $sql );
98+
set_transient(md5($sql), $result, 300);
99+
}
88100

89101
return $result->total;
90102
}

model/store/category.php

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,12 @@ public function getCategory( $category_id ) {
3030

3131
$sql .= " GROUP BY t.term_id";
3232

33-
$result = $wpdb->get_row( $sql );
33+
34+
$result = get_transient(md5($sql));
35+
if($result === false) {
36+
$result = $wpdb->get_row( $sql );
37+
set_transient(md5($sql), $result, 300);
38+
}
3439

3540
return $result;
3641
}
@@ -100,9 +105,13 @@ public function getCategories( $data = array() ) {
100105
}
101106

102107
$sql .= " LIMIT " . (int) $data['start'] . "," . (int) $data['limit'];
103-
}
104-
105-
$results = $wpdb->get_results( $sql );
108+
}
109+
110+
$results = get_transient(md5($sql));
111+
if($results === false) {
112+
$results = $wpdb->get_results( $sql );
113+
set_transient(md5($sql), $results, 300);
114+
}
106115

107116
return $results;
108117
}
@@ -125,9 +134,13 @@ public function getTotalCategories( $data = array() ) {
125134

126135
if ( count( $implode ) > 0 ) {
127136
$sql .= ' AND ' . implode( ' AND ', $implode );
128-
}
129-
130-
$result = $wpdb->get_row( $sql );
137+
}
138+
139+
$result = get_transient(md5($sql));
140+
if($result === false) {
141+
$result = $wpdb->get_row( $sql );
142+
set_transient(md5($sql), $result, 300);
143+
}
131144

132145
return $result->total;
133146
}

model/store/option.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@ class VFA_ModelStoreOption extends VFA_Model
55
public function getOptionLabel($name) {
66
global $wpdb;
77

8-
$result = $wpdb->get_row("SELECT wat.`attribute_label` AS label FROM `".$wpdb->prefix."woocommerce_attribute_taxonomies` wat WHERE wat.`attribute_name` = '".str_replace('pa_', '', $name)."'");
8+
$sql = "SELECT wat.`attribute_label` AS label FROM `".$wpdb->prefix."woocommerce_attribute_taxonomies` wat WHERE wat.`attribute_name` = '".str_replace('pa_', '', $name)."'";
9+
10+
$result = get_transient(md5($sql));
11+
if($result === false) {
12+
$result = $wpdb->get_row( $sql );
13+
set_transient(md5($sql), $result, 300);
14+
}
915

1016
return $result->label;
1117
}

model/store/product.php

Lines changed: 55 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,13 @@ public function getProductRelated($product_id)
66
{
77
global $wpdb;
88

9-
$result = $wpdb->get_row("SELECT pm.`meta_value` AS related FROM `".$wpdb->prefix."postmeta` pm WHERE pm.`post_id` = '".(int)$product_id."' AND pm.`meta_key` = '_upsell_ids'");
9+
$sql = "SELECT pm.`meta_value` AS related FROM `".$wpdb->prefix."postmeta` pm WHERE pm.`post_id` = '".(int)$product_id."' AND pm.`meta_key` = '_upsell_ids'";
10+
11+
$result = get_transient(md5($sql));
12+
if($result === false) {
13+
$result = $wpdb->get_row( $sql );
14+
set_transient(md5($sql), $result, 300);
15+
}
1016

1117
$product_data = unserialize($result->related);
1218

@@ -17,7 +23,13 @@ public function getProductImages($product_id)
1723
{
1824
global $wpdb;
1925

20-
$result = $wpdb->get_row("SELECT pm.`meta_value` AS images FROM `".$wpdb->prefix."postmeta` pm WHERE pm.`post_id` = '".(int)$product_id."' AND pm.`meta_key` = '_product_image_gallery'");
26+
$sql = "SELECT pm.`meta_value` AS images FROM `".$wpdb->prefix."postmeta` pm WHERE pm.`post_id` = '".(int)$product_id."' AND pm.`meta_key` = '_product_image_gallery'";
27+
28+
$result = get_transient(md5($sql));
29+
if($result === false) {
30+
$result = $wpdb->get_row( $sql );
31+
set_transient(md5($sql), $result, 300);
32+
}
2133

2234
$product_data = !empty($result->images) ? explode(',', $result->images) : array();
2335

@@ -28,7 +40,13 @@ public function getProductAttributes($product_id)
2840
{
2941
global $wpdb;
3042

31-
$result = $wpdb->get_row("SELECT pm.`meta_value` AS attributes FROM `".$wpdb->prefix."postmeta` pm WHERE pm.`post_id` = '".(int)$product_id."' AND pm.`meta_key` = '_product_attributes'");
43+
$sql = "SELECT pm.`meta_value` AS attributes FROM `".$wpdb->prefix."postmeta` pm WHERE pm.`post_id` = '".(int)$product_id."' AND pm.`meta_key` = '_product_attributes'";
44+
45+
$result = get_transient(md5($sql));
46+
if($result === false) {
47+
$result = $wpdb->get_row( $sql );
48+
set_transient(md5($sql), $result, 300);
49+
}
3250

3351
$attribute_data = unserialize($result->attributes);
3452

@@ -38,13 +56,19 @@ public function getProductAttributes($product_id)
3856
public function getOptionValues($taxonomy) {
3957
global $wpdb;
4058

41-
$result = $wpdb->get_results("SELECT
42-
t.`name`,
43-
t.`slug`
44-
FROM
45-
`".$wpdb->prefix."term_taxonomy` tt
46-
LEFT JOIN `".$wpdb->prefix."terms` t ON t.`term_id` = tt.`term_id`
47-
WHERE tt.taxonomy = '".$taxonomy."' ");
59+
$sql = "SELECT
60+
t.`name`,
61+
t.`slug`
62+
FROM
63+
`".$wpdb->prefix."term_taxonomy` tt
64+
LEFT JOIN `".$wpdb->prefix."terms` t ON t.`term_id` = tt.`term_id`
65+
WHERE tt.taxonomy = '".$taxonomy."' ";
66+
67+
$result = get_transient(md5($sql));
68+
if($result === false) {
69+
$result = $wpdb->get_results( $sql );
70+
set_transient(md5($sql), $result, 300);
71+
}
4872

4973
return $result;
5074
}
@@ -78,7 +102,11 @@ public function getProduct($product_id)
78102
LEFT JOIN wp_postmeta pss ON (pss.post_id = p.ID AND pss.meta_key = '_stock_status')
79103
WHERE p.ID = '".(int)$product_id."'";
80104

81-
$result = $wpdb->get_row($sql);
105+
$result = get_transient(md5($sql));
106+
if($result === false) {
107+
$result = $wpdb->get_row( $sql );
108+
set_transient(md5($sql), $result, 300);
109+
}
82110

83111
return $result;
84112
}
@@ -101,7 +129,11 @@ public function getVariationLowPrice($product_id)
101129
ORDER BY price ASC
102130
LIMIT 0, 1";
103131

104-
$result = $wpdb->get_row($sql);
132+
$result = get_transient (md5($sql), 'vuefront');
133+
if($result === false) {
134+
$result = $wpdb->get_row( $sql );
135+
wp_cache_add(md5($sql), $result, 'vuefront');
136+
}
105137

106138
return $result->ID;
107139
}
@@ -188,7 +220,12 @@ public function getProducts($data = array())
188220
$sql .= " LIMIT " . (int) $data['start'] . "," . (int) $data['limit'];
189221
}
190222

191-
$results = $wpdb->get_results($sql);
223+
224+
$results = get_transient(md5($sql));
225+
if($results === false) {
226+
$results = $wpdb->get_results( $sql );
227+
set_transient(md5($sql), $results, 300);
228+
}
192229

193230
return $results;
194231
}
@@ -230,7 +267,11 @@ public function getTotalProducts($data = array())
230267
$sql .= ' AND ' . implode(' AND ', $implode);
231268
}
232269

233-
$result = $wpdb->get_row($sql);
270+
$result = get_transient(md5($sql));
271+
if($result === false) {
272+
$result = $wpdb->get_row( $sql );
273+
set_transient(md5($sql), $result, 300);
274+
}
234275

235276
return $result->total;
236277
}

plugin.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,16 @@ function VFA_vuefront_admin_action_turn_on() {
145145
RewriteCond %{REQUEST_URI} !.*/vuefront/_nuxt
146146
RewriteRule ^([^?]*) vuefront/$1
147147
148+
# VueFront sw.js
149+
RewriteCond %{REQUEST_URI} .*(sw.js)
150+
RewriteCond %{REQUEST_URI} !.*/vuefront/sw.js
151+
RewriteRule ^([^?]*) vuefront/$1
152+
153+
# VueFront favicon.ico
154+
RewriteCond %{REQUEST_URI} .*(favicon.ico)
155+
RewriteCond %{REQUEST_URI} !.*/vuefront/favicon.ico
156+
RewriteRule ^([^?]*) vuefront/$1
157+
148158
# VueFront pages
149159
150160
# VueFront home page

0 commit comments

Comments
 (0)