Differences

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

Link to this comparison view

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 15:36]
Hai Zheng
litespeed_wiki:cache:lscwp:esi_nonce [2017/10/01 17:58]
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>
 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>
 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 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>
  public function init() {  public function init() {
-</syntaxhighlight>+</code>
  
 Change it to  Change it to 
-<syntaxhighlight lang='​php'​>+<code>
  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: 2017/10/02 14:34
  • by Hai Zheng