Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
litespeed_wiki:cache:lscwp:esi_nonce [2017/09/24 16:29] Hai Zheng |
litespeed_wiki:cache:lscwp:esi_nonce [2017/10/02 14:34] Hai Zheng |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Note: LiteSpeed WordPress Cache plugin needs to be v1.2.4+. | + | Note: LiteSpeed WordPress Cache plugin needs to be v1.3+. |
Let's take ** WPBakery Page Builder Version 5.3 ** as an example. It used WordPress nonce in frontend. So once it got cached, the nonce will fail to pass validation once expired. With ESI, it can be made to a private/public cache separate from full page. | Let's take ** WPBakery Page Builder Version 5.3 ** as an example. It used WordPress nonce in frontend. So once it got cached, the nonce will fail to pass validation once expired. With ESI, it can be made to a private/public cache separate from full page. | ||
Line 6: | Line 6: | ||
In <code>js_composer/include/helpers/helpers_factory.php</code> line 486, | In <code>js_composer/include/helpers/helpers_factory.php</code> line 486, | ||
- | <syntaxhighlight lang='php'> | + | <code php> |
function vc_generate_nonce( $data ) { | function vc_generate_nonce( $data ) { | ||
return wp_create_nonce( is_array( $data ) ? ( 'vc-nonce-' . implode( '|', $data ) ) : ( 'vc-nonce-' . $data ) ); | return wp_create_nonce( is_array( $data ) ? ( 'vc-nonce-' . implode( '|', $data ) ) : ( 'vc-nonce-' . $data ) ); | ||
} | } | ||
- | </syntaxhighlight> | + | </code> |
change it to | change it to | ||
- | <syntaxhighlight lang='php'> | + | <code php> |
function vc_generate_nonce( $data, $from_esi = false ) { | function vc_generate_nonce( $data, $from_esi = false ) { | ||
if ( ! $from_esi && ! vc_is_frontend_editor() ) { | if ( ! $from_esi && ! vc_is_frontend_editor() ) { | ||
if ( method_exists( 'LiteSpeed_Cache_API', 'esi_enabled' ) && LiteSpeed_Cache_API::esi_enabled() ) { | if ( method_exists( 'LiteSpeed_Cache_API', 'esi_enabled' ) && LiteSpeed_Cache_API::esi_enabled() ) { | ||
- | if ( method_exists( 'LiteSpeed_Cache_API', 'v' ) && LiteSpeed_Cache_API::v( '1.2.4' ) ) { | + | if ( method_exists( 'LiteSpeed_Cache_API', 'v' ) && LiteSpeed_Cache_API::v( '1.3' ) ) { |
$params = array( 'data' => $data ) ; | $params = array( 'data' => $data ) ; | ||
return LiteSpeed_Cache_API::esi_url( 'js_composer', 'WPBakery Page Builder', $params, 'default', true ) ;// The last parameter is to remove ESI comment wrapper | return LiteSpeed_Cache_API::esi_url( 'js_composer', 'WPBakery Page Builder', $params, 'default', true ) ;// The last parameter is to remove ESI comment wrapper | ||
Line 37: | Line 37: | ||
exit ; | exit ; | ||
} | } | ||
- | </syntaxhighlight> | + | </code> |
Then, in <code>js_composer/js_composer.php</code> line 244, | Then, in <code>js_composer/js_composer.php</code> line 244, | ||
- | <syntaxhighlight lang='php'> | + | <code php> |
public function init() { | public function init() { | ||
- | </syntaxhighlight> | + | </code> |
Change it to | Change it to | ||
- | <syntaxhighlight lang='php'> | + | <code php> |
public function init() { | public function init() { | ||
if ( method_exists( 'LiteSpeed_Cache_API', 'esi_enabled' ) && LiteSpeed_Cache_API::esi_enabled() ) { | if ( method_exists( 'LiteSpeed_Cache_API', 'esi_enabled' ) && LiteSpeed_Cache_API::esi_enabled() ) { | ||
LiteSpeed_Cache_API::hook_tpl_esi( 'js_composer', 'hook_esi' ) ; | LiteSpeed_Cache_API::hook_tpl_esi( 'js_composer', 'hook_esi' ) ; | ||
} | } | ||
- | </syntaxhighlight> | + | </code> |
Now you can see WordPress nonce can be cached correctly. | Now you can see WordPress nonce can be cached correctly. |