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