Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revision Both sides next revision
litespeed_wiki:cache:lscwp:esi_nonce [2017/09/24 15:19]
Hai Zheng created
litespeed_wiki:cache:lscwp:esi_nonce [2017/10/02 14:34]
Hai Zheng
Line 1: Line 1:
-WPBakery Page Builder Version 5.3 +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. 
 + 
 +This is how to do it manually:
  
 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 ) {+ 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 33: 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.
  • Admin
  • Last modified: 2020/11/14 15:23
  • by Lisa Clarke