2015-03-28 13 views
6

Có cách nào để phát hiện xem trang WordPress đang sử dụng Visual Composer không?Phát hiện Visual Composer

tôi có 2 mẫu trang khác nhau:

  1. Mặc định mẫu cho các trang thông thường.
  2. Mẫu cho các trang nhà soạn nhạc trực quan.

Tôi hy vọng có cách để phát hiện xem người dùng có đang sử dụng nhà soạn nhạc trực quan để tạo trang thay vì dựa vào người dùng chọn mẫu nhà soạn nhạc trực quan mỗi lần không.

Có cách nào để phát hiện những gì trang đang được xây dựng và sau đó gán một mẫu dựa trên đó?

Trả lời

6

Vâng, bạn có thể phát hiện nếu nhà soạn nhạc trực quan được kích hoạt cho một bài đăng. Nó được lưu trữ trong thuộc tính meta bài _wpb_vc_js_status.

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

Lưu ý rằng bài đăng vẫn có thể chứa shortcodes của nhà soạn nhạc trực quan, ngay cả khi chỉnh sửa trình soạn nhạc trực quan hiện không được bật. Ví dụ: nếu tôi thiết lập trang có trình soạn thảo trực quan và sau đó quay lại trình chỉnh sửa thông thường, _wpb_vc_js_status sẽ là sai.

+0

Cảm ơn, này là hoàn hảo! – CreativelyCoded

+0

Chính xác những gì tôi cần, cảm ơn! – Guicara

+0

$ vc_enabled = get_post_meta ($ post-> ID, '_wpb_vc_js_status', true) === 'true'; // Tốt hơn vì wp lưu trữ "false" dưới dạng chuỗi trong postmeta, nó dịch thành boolean true (vì nó không trống) nếu u bật và tắt trình soạn thảo VC. – Johan

5

Trên thực tế _wpb_vc_js_status từ 4.8 là không đúng, bởi vì nó không được sử dụng nữa. Cách đơn giản nhất để kiểm tra xem trang có đang sử dụng nhà soạn nhạc trực quan hay không - đó là kiểm tra mã số vc_row trong nội dung.

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

Bạn có thể phát hiện với is_plugin_active:

if (is_plugin_active('js_composer/js_composer.php')) { 
    //your code here 
} 
Các vấn đề liên quan