检查 Elementor 可视化编辑器视图是否处于活动状态

Check whether Elementor visual editor view is active

如何检查当前查看的是 "as a regular page" 还是 "in the Elementor visual editor" 的 WordPress 页面?

我写了一个插件,当页面上出现特定的短代码时,它会重定向用户。它就像一个魅力,但不幸的是,当页面重定向客户端时,Elementor 可视化编辑器就会死掉。我希望插件仅在 Elementor 编辑器未处于活动状态时重定向。

我的第一个想法是检查 URL 是否包含 action=elementor,就像 Elementor 编辑器处于活动状态时那样,然后执行如下操作:

global $wp;
if ( strpos(home_url( $wp->request ), 'action=elementor') !== false ) {
    // don't redirect
}

但这不起作用,因为 home_url( $wp->request ) 只有 returns 页面的永久链接而不是实际调用的 URL。

好吧没关系...这就是诀窍:

if ( strpos($_SERVER['REQUEST_URI'], 'elementor') !== false ) {
    // don't redirect
}

你可以用这个

  if ( \Elementor\Plugin::$instance->preview->is_preview_mode() ) {
    //do something
  } else {
   //do something
  }