2015-03-28 15 views
6

C'è un modo per rilevare se una pagina di WordPress utilizza Visual Composer?Rileva Visual Composer

Ho 2 diversi modelli di pagina:

  1. modello predefinito per le pagine normali.
  2. Modello per pagine di visual visual.

Spero ci sia un modo per rilevare se un utente sta usando il compositore visivo per costruire la pagina invece di fare affidamento sull'utente che seleziona il modello di visual compositore ogni volta.

C'è un modo per rilevare quale pagina viene creata e quindi assegnare un modello basato su quello?

risposta

6

Sì, è possibile rilevare se il compositore visivo è abilitato per un post. È memorizzato nell'attributo meta del post _wpb_vc_js_status.

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

Nota che un post può ancora contenere i codici brevi compositore visive, anche quando la modifica compositore visivo non è attualmente abilitato. Ad esempio, se imposto una pagina con Visual Composer e poi torno all'editor normale, _wpb_vc_js_status sarà falso.

+0

Grazie, questo è perfetto! – CreativelyCoded

+0

Esattamente quello di cui avevo bisogno, grazie! – Guicara

+0

$ vc_enabled = get_post_meta ($ post-> ID, '_wpb_vc_js_status', vero) === 'true'; // È meglio poiché wp memorizza "false" come una stringa in postmeta, che si traduce in vero booleano (poiché non è vuoto) se si attiva e disattiva l'editor VC. – Johan

5

In realtà _wpb_vc_js_status poiché 4.8 non è corretto, perché non è stato più utilizzato. Il modo più semplice per verificare se la pagina utilizza il compositore visivo: è il controllo dello shortcode vc_row nel contenuto.

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

È possibile rilevare con is_plugin_active:

if (is_plugin_active('js_composer/js_composer.php')) { 
    //your code here 
}