Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检测视觉合成器_Php_Wordpress - Fatal编程技术网

Php 检测视觉合成器

Php 检测视觉合成器,php,wordpress,Php,Wordpress,有没有办法检测WordPress页面是否使用Visual Composer 我有两个不同的页面模板: 常规页面的默认模板 visual composer页面的模板 我希望有一种方法可以检测用户是否使用VisualComposer来构建页面,而不是依赖用户每次选择VisualComposer模板 是否有方法检测正在生成的页面,然后根据该页面分配模板?是的,您可以检测是否为帖子启用了visual composer。它存储在\u wpb\u vc\u js\u statuspost meta属性中 $

有没有办法检测WordPress页面是否使用Visual Composer

我有两个不同的页面模板:

  • 常规页面的默认模板
  • visual composer页面的模板
  • 我希望有一种方法可以检测用户是否使用VisualComposer来构建页面,而不是依赖用户每次选择VisualComposer模板


    是否有方法检测正在生成的页面,然后根据该页面分配模板?

    是的,您可以检测是否为帖子启用了visual composer。它存储在
    \u wpb\u vc\u js\u status
    post meta属性中

    $vc_enabled = get_post_meta($post_id, '_wpb_vc_js_status', true);
    

    请注意,即使当前未启用VisualComposer编辑,post仍然可以包含VisualComposer短代码。例如,如果我使用visual composer设置一个页面,然后恢复到正常编辑器,
    \u wpb\u vc\u js\u status
    将为false。

    实际上
    \u wpb\u vc\u js\u status
    因为4.8不正确,因为它不再使用。检查页面是否使用visual composer的最简单方法是检查内容中的
    vc\u行
    shortcode

    $post = get_post();
    if ( $post && preg_match( '/vc_row/', $post->post_content ) ) {
        // Visual composer works on current page/post
    }
    

    您可以检测“插件”是否处于活动状态:

    if ( is_plugin_active( 'js_composer/js_composer.php' ) ) {
         //your code here
    }
    
    工作起来很有魅力。我正在寻找一种可能来隐藏Nag屏幕,当您将WPBakery页面生成器作为一个带有商业主题的bundeled插件时会出现这种情况,以避免客户的混淆。万一有人需要这个片段:

    // hide nag screen of WP Bakery Visual composer if found
    if( defined( 'WPB_VC_VERSION' ) ) {
        if(!isset($_COOKIE['vchideactivationmsg_vc11'])) {
            setcookie('vchideactivationmsg', '1', strtotime('+3 years'), '/');
            setcookie('vchideactivationmsg_vc11',  WPB_VC_VERSION, strtotime('+3 years'), '/');
         }
    }
    

    把它挂在admin_init上,你就可以开始了

    谢谢,这太完美了$vc_enabled=get_post_meta($post->ID,''wpb_vc_js_status',true)=='true'//更好的方法是,如果启用和禁用VC编辑器,wp会将“false”存储为postmeta中的字符串,这将转换为布尔值true(因为它不是空的)。回答得很好。谢谢你。在我的主题中,当WPBakery Page Builder在页面上处于活动状态(
    vc_row
    )时,添加一个添加类的条件非常有效。关于使用此方法,我唯一的警告是,如果插件目录
    js_composer
    被重命名,它将不起作用。虽然这并不典型,但我已经看到至少有一个主要主题在WPBakery上使用定制版本并重命名了目录。用户可能会因为其他原因重命名插件目录。这些原因中的大多数可能可以用一种更合适的方式加以解决,但这是可能发生的。一个可以考虑<代码>(定义('WPBYVCVIVE版本)){…} <代码>或>代码>如果(CaseOrth存在('VCYManger-M'))< /COD>。这是一个魅力,我从未将插件文件夹名重命名为创建者放置它们。因此,这有助于我的网站不会崩溃这是一个很好的检查,看看插件是否已启用,但它没有回答问题。
    // hide nag screen of WP Bakery Visual composer if found
    if( defined( 'WPB_VC_VERSION' ) ) {
        if(!isset($_COOKIE['vchideactivationmsg_vc11'])) {
            setcookie('vchideactivationmsg', '1', strtotime('+3 years'), '/');
            setcookie('vchideactivationmsg_vc11',  WPB_VC_VERSION, strtotime('+3 years'), '/');
         }
    }