Come estendere Visual Composer con elementi di contenuto personalizzati

Nel tutorial precedente abbiamo esaminato Visual Composer per gli sviluppatori di temi; licenza e impostazione tecnica. In questo tutorial andremo oltre, estendendo Visual Composer e configurandolo per creare pagine. 

Funzionalità di default di Visual Composer

Prima di esaminare la creazione di una pagina, eseguiamo alcune delle funzioni predefinite.

Elementi di contenuto

Visual Composer è dotato di una vasta gamma di elementi di contenuto integrati. Oltre a questo, Visual Composer offre oltre 200 componenti aggiuntivi, sia gratuiti che a pagamento. 

Per impostazione predefinita, Visual Composer è abilitato solo per le pagine, ma puoi anche abilitarlo per i post e anche per i tipi di post personalizzati. Queste e altre opzioni possono essere gestite da Visual Composer Role Manager. Qui puoi anche controllare chi può utilizzare Visual Composer nel tuo amministratore.

Shortcode Manager ti consente di aggiungere elementi personalizzati con parametri. In qualche modo l'equivalente incentrato sull'utente del metodo di sviluppo per mappare nuovi elementi.

Grid Builder avanzato

Uno degli strumenti più interessanti per gli utenti è il costruttore della griglia. Con esso, gli utenti possono creare qualsiasi tipo di griglia, con immagini, testo, pulsanti, messaggi e così via, senza toccare il codice. Sono disponibili anche griglie in muratura.

Mmm griglie

Libreria di modelli

La libreria di modelli offre agli utenti l'accesso a modelli professionali per la struttura della pagina. Esempi tipici includono layout di articoli, layout di pagine di destinazione, pagine di parallasse, portafogli, il nome. Come sviluppatore puoi persino crearne uno tuo e includerli con i contenuti dimostrativi del tuo tema.

Rullo di tamburi prego…

E, infine, raggiungiamo quella che è probabilmente la parte più importante di Visual Composer: l'editor. Questo è un back-end e un editor di front-end, e con esso gli utenti possono creare pagine senza conoscenze di codifica.

L'editor di back-end di Visual ComposerL'editor di front-end di Visual Composer

Con l'editor di front-end puoi modificare esattamente ciò che vedi. È sicuramente di più Quello che vedi è quello che ottieni rispetto all'editor WordPress WYSIWYG predefinito!

Il generatore di pagine funziona con un sistema di righe e colonne. Ogni elemento aggiunto alla pagina è racchiuso all'interno di un contenitore di righe. Più elementi possono essere aggiunti alla stessa riga, in colonne o ulteriori righe annidate. Lo screenshot in basso evidenzia come elementi, righe, colonne possono essere aggiunti, modificati e rimossi.

Avendo coperto le funzionalità di base disponibili, non rivolgiamo la nostra attenzione ad alcuni sviluppi. Estenderemo la funzionalità predefinita di Visual Composer e aggiungeremo nuovi elementi personalizzati.

Estensione di Visual Composer

Per sovrascrivere qualsiasi elemento in Visual Composer devi prima copiare il file modello dalla cartella del plugin Visual Composer (js_composer)> include> modelli al yourtheme> vc_templates cartella. Dal precedente tutorial potresti ricordare che nel nostro tema Focuson abbiamo quattro file:

  1. vc_column.php
  2. vc_column_text.php
  3. vc_row.php
  4. vc_video.php

E come abbiamo discusso, la denominazione è molto importante qui. Questi modelli devono essere denominati esattamente come sono nella cartella predefinita del plug-in VC.

Dopo aver duplicato il file modello, sei pronto per sovrascriverlo. Vediamo, per esempio, cosa c'è nel primo file vc_columns.php. Se hai familiarità con la creazione di shortcode non ci sarà nulla di nuovo per te qui.

La struttura del file può essere suddivisa in tre parti:

  1. Estrai attributi shortcode
  2. Preparare le impostazioni per l'output
  3. Emettere la struttura di shortcode

Ma cosa succede se si desidera aggiungere o rimuovere gli attributi shortcode esistenti, in che modo dovresti gestirli? Incontra tre nuove funzioni:

vc_remove_param ();

Questa funzione rimuove il parametro shortcode da un elemento esistente o personalizzato. Per rimuovere l'attributo, scegli come target lo shortcode specifico con il nome vc_column e il nome dell'attributo, per esempio el_class.

vc_remove_param ("vc_column", "el_class");

vc_add_param ();

Questa funzione aggiunge nuovi parametri a un elemento esistente o personalizzato. Come con il vc_remove_param () funzione, ad esempio, lo specifico shortcode con il suo nome vc_column e includi l'array di parametri:

vc_add_param ('vc_column', array ("type" => "dropdown", "class" => "", "heading" => "Animate", "param_name" => "animate", "value" => array ( "False" => 'false', "True" => 'true')));

vc_add_params ();

Questa funzione è simile a vc_add_param (), ma ti consente di aggiungere più parametri a un elemento. Puoi trovare un elenco di tutti i tipi di parametri qui.

Per aggiungere o rimuovere nuovi parametri, così come aggiungere nuovi elementi, è necessario modificare il file di integrazione, che nel nostro caso è ninzio_vc.php.

  1. Iniziamo disattivando l'editor di front-end. L'editor di front-end è una funzionalità davvero interessante, ma i nostri elementi personalizzati non lo supportano. Spetta a te, in qualità di sviluppatore di temi, se vuoi supportare gli editor front-end e / o back-end.
  2. Rimuovi tutti i parametri non necessari o non supportati dagli elementi di destinazione con vc_remove_param ();
  3. Aggiungi nuovi parametri agli elementi esistenti con vc_add_param (); o vc_add_params (); funzioni.
  4. Quindi aggiungi nuovi elementi ...

Come aggiungere elementi personalizzati

L'aggiunta di nuovi elementi di contenuto a Visual Composer avviene quando un file shortcode è presente nel tuo tema o nel tuo componente aggiuntivo, come nel nostro caso, quindi per prima cosa dobbiamo verificare con la funzione se il nostro plugin ninzio-addons è installato e attivo:

if (definito ('NINZIO_ADDONS') && file_exists (get_template_directory (). '/plugins/ninzio-addons.zip')) ... il codice di nuovi elementi va qui ...

In che modo Visual Composer comprende che sono stati aggiunti nuovi elementi? Con add_action ();.

add_action ('init', 'focuson_ninzio_integrateVC'); function focuson_ninzio_integrateVC () ... new elements

Useremo l'azione dentro, dandoci questo:

if (definito ('NINZIO_ADDONS') && file_exists (get_template_directory (). '/plugins/ninzio-addons.zip')) add_action ('init', 'focuson_ninzio_integrateVC'); function focuson_ninzio_integrateVC () ... new elements

Ora siamo pronti ad aggiungere i nostri nuovi elementi, per i quali abbiamo bisogno di un'altra nuova funzione: 

vc_map ();

Questa funzione richiede un parametro: un array di attributi speciali che descrivono il tuo shortcode. Ad esempio aggiungeremo un elemento separatore personalizzato:

 "Separatore", "base" => "nz_sep", "classe" => "nz-sep", "show_settings_on_create" => falso, "categoria" => esc_html __ ("Ninzio", "focuson"), "icona" => 'icon-separator', 'description' => 'Usa questo elemento per separare il contenuto', 'js_view' => ", 'params' => array (... 

Questo è un sacco di attributi! Evidenziamo il più importante:

  • nome dà un nome descrittivo univoco al tuo elemento personalizzato. Gli utenti lo vedranno nella scheda Visual Composer.
  • base, non meno importante di nome, è il nome del tag di shortcode. Se hai familiarità con la creazione di codici brevi personalizzati, saprai che tutti gli shortcode personalizzati hanno tag. Ad esempio, il nostro separatore personalizzato ha a nz_sep etichetta. La base dell'elemento dovrebbe essere unica e dovrebbe essere chiamata esattamente come il nome dello shortcode è nel tuo file shortcodes.php (come nel nostro tema di Focuson):
 '20', 'bottom' => '20', 'type' => 'solid', 'color' => '#eeeeee', 'align' => 'left', 'width' => ", 'height '=> "), $ atts)); $ styles = ""; if (isset ($ color) &&! empty ($ color)) $ styles. = 'border-bottom-color:'. $ color. ';';  if (isset ($ width) &&! empty ($ width)) $ styles. = 'width:'. absint ($ width). 'px;';  else $ styles. = 'width: 100%;';  if (isset ($ height) &&! empty ($ height)) $ styles. = 'border-bottom-width:'. absint ($ height). 'px;';  if (isset ($ type) &&! empty (tipo $)) $ styles. = 'border-bottom-style:'. $ type. ';';  if (isset ($ top) &&! empty ($ top)) $ styles. = 'margin-top:'. absint ($ top). 'px;';  if (isset ($ bottom) &&! empty ($ bottom)) $ styles. = 'margin-bottom:'. absint ($ bottom). 'px;';  $ output = '
'; restituire $ output; add_shortcode ('nz_sep', 'nz_sep'); ?>
  • classe non è un aspetto critico, ma un'opzione importante, che funge da identificatore non univoco. La denominazione deve essere descrittiva e senza spazi, utilizzare trattini o caratteri di sottolineatura.
  • show_settings_on_create è un parametro booleano e auto-descrittivo.
  • categoria è molto importante. Se si desidera raggruppare gli elementi personalizzati in una scheda menu personalizzata nel menu degli elementi di Visual Composer, è necessario aggiungere una categoria personalizzata. Se si desidera includere elementi in un esistente categoria usa il nome della scheda del menu esistente: 
  • icona è simile a classe. Aggiungiamo un nome di icona in modo che possiamo definire lo shortcode nel menu Visual Composer. Per esempio:
i.icon-separator, .nz-sep .vc_element-icon background-image: url (... /images/shortcodes/sep.png)!important;
  • descrizione aggiunge una piccola descrizione al tuo elemento personalizzato. Gli utenti vedranno questo.
  • js_view è un parametro molto importante. Quando si hanno elementi che comprendono componenti padre e figlio (ad esempio caselle di contenuto, che hanno un elemento padre principale e elementi casella figlio principale, dove elementi padre e figlio hanno attributi separati) questo attributo dovrebbe avere il valore VcColumnView. Esamineremo i dettagli più complessi in un attimo.
  • params è l'array di parametri da aggiungere al tuo elemento personalizzato. Si comporta in modo simile al vc_add_params () funzione, ma nidificata nel vc_map () funzione.

Elementi padre e figlio

Gli elementi contenitore con elementi figlio richiedono alcune configurazioni specifiche prima di aggiungere. Nel vc_map () abbiamo bisogno di aggiungere un paio di parametri per rendere i nostri elementi un contenitore, o il figlio di un altro elemento.

Ad esempio, supponiamo di voler aggiungere un nuovo elemento "Contenitori". Il nostro elemento della scatola dei contenuti comprende due parti: 

  1. l'elemento genitore con i suoi attributi 
  2. e gli elementi box secondari, ognuno con i loro attributi. 

Una casella di contenuto può avere elementi box illimitati. Quindi abbiamo due problemi da risolvere:

  1. In qualche modo dobbiamo dire a Visual Composer che la casella del contenuto è un elemento figlio / genitore,
  2. quindi che una casella è l'unico figlio possibile di un elemento della casella del contenuto principale e che un elemento della casella di contenuto è l'unico genitore possibile per gli elementi figlio della casella. 

Codice Elemento Genitore

Per evitare il più possibile la confusione, diamo un'occhiata a un elemento esistente. Nel nostro tema Focuson abbiamo un elemento "Contenitori", con due parametri aggiuntivi di particolare interesse:

"as_parent" => array ('only' => 'nz_box')

Ricorda il base parametro del nostro vc_map () funzione? Qui, con as_parent, stiamo registrando il nz_content_box elemento come genitore solo per un nz_box elemento figlio.

"js_view" => 'VcColumnView'

quando js_view è impostato per VcColumnView Visual Composer aggiunge funzionalità UI aggiuntive all'elemento nell'editor, quindi possiamo aggiungere un nuovo elemento figlio.

Codice elemento figlio

Allo stesso modo, il nostro nz_box il codice elemento ha un parametro aggiuntivo:

"as_child" => array ('only' => 'nz_content_box'),

Con as_child stiamo registrando il nz_box elemento da bambino, ma solo per un nz_content_box elemento genitore.

Estendi le classi

Se ora visiti il ​​menu Visual Composer e fai clic sul nuovo aggiunto Casella di contenuto elemento, vedrai ... non funziona. Nessuna funzionalità genitore / figlio è stata aggiunta, perché c'è ancora una cosa che dobbiamo fare: dobbiamo estendere alle classi:

  • WPBakeryShortCodesContainer
  • WPBakeryShortCode

La prima classe è responsabile degli elementi parent, la seconda è responsabile degli elementi figli. Quindi, subito dopo la funzione di azione aggiungi:

if (class_exists ('WPBakeryShortCodesContainer')) class WPBakeryShortCode_nz_Content_Box estende WPBakeryShortCodesContainer 

Come ricordi, la base dell'elemento principale della casella del contenuto era nz_content_box, questo nome dovrebbe anche essere presente nel nome della classe che estende il WPBakeryShortCodesContainer classe. Nel nostro caso il nome della nuova classe è WPBakeryShortCode_nz_Content_Box.

if (class_exists ('WPBakeryShortCode')) class WPBakeryShortCode_nz_Box estende WPBakeryShortCode 

Lo stesso vale per l'elemento figlio. Il nome base era nz_box e il nuovo nome della classe sarà WPBakeryShortCode_nz_Box.

Qualunque cosa tu chiami il tuo elemento base dovrebbe essere presente nel nuovo nome della classe.

Ora, se guardi ancora una volta l'editor di pagine, vedrai che il nuovo elemento della casella di contenuto ha funzionalità figlio / genitore.


Costruire pagine con Visual Composer

Dopo il duro lavoro possiamo raccogliere i frutti del nostro lavoro. Dai un'occhiata alla homepage principale di Focuson Theme. Costruiamo quella homepage con Visual Composer.

La struttura può essere suddivisa in diverse sezioni:

  • Slider di presentazione
  • Caselle di contenuto
  • Progetti in vetrina
  • contatori
  • Ulteriori informazioni, come "Perché sceglierci" che consiste in due colonne
  • bandiera
  • Membri del team
  • Un altro blocco di informazioni aggiuntive con due colonne
  • Testimonianze dei clienti
  • Loghi dello sponsor

Ricreare questo è solo il lavoro di un momento con Visual Composer.

Conterremo ogni blocco all'interno dell'elemento "Riga" separato con almeno un elemento "Colonna". Come abbiamo discusso, questa è la struttura richiesta e minima delle pagine di Visual Composer.

Slider di presentazione

Il tema di Focuson ha integrato il cursore di rivoluzione. Il cursore non viene aggiunto con Visual Composer, tuttavia, una volta installato Revolution Slider e Visual Composer, noterai un nuovo elemento "Slider rivoluzione". Questo è un componente aggiuntivo gratuito del dispositivo di scorrimento di Revolution e con questo elemento puoi inserire un cursore nella pagina, anche se il tuo tema non è integrato con Visual Composer.

Contenitori

Ricorda l'elemento "Contenitori di contenuti" di esempio? Possiamo creare stupende scatole di contenuti con il nostro elemento personalizzato:

Progetti in vetrina

In questa sezione usiamo 

  1. una colonna di testo
  2. un elemento gap, per aggiungere spazio
  3. un'immagine singola centrata (che funge da bel divisore di linea) 
  4. un'altra lacuna 
  5. e l'elemento "Progetti recenti"

Quasi tutti gli elementi qui sono personalizzati.

contatori

Per i contatori abbiamo usato le opzioni di sfondo delle righe (immagine e colore) per l'estetica. Tutte queste opzioni sono personalizzate da Ninzio. Inseriamo l'elemento contatore personalizzato all'interno di quella riga in stile. 

"Perché sceglierci" Info Block

Con le colonne di Visual Composer possiamo aggiungere contenuti a due colonne:

Quasi tutti questi elementi sono personalizzati, solo l'elemento "Titolo personalizzato" viene fornito come predefinito con Visual Composer. Nell'editor back-end appare asimmetrico, ma sul front-end vedrai una struttura dall'aspetto piacevole. La gestione dei contenuti non consiste semplicemente nel riempire pagine, è anche un processo logico e creativo. Devi tenere conto delle dimensioni di immagini e testo e considerare come appaiono su diversi dispositivi. A volte sono necessarie anche correzioni sensibili. Fortunatamente, Visual Composer ha gli strumenti richiesti. Nelle opzioni di modifica delle colonne puoi trovare il Opzioni reattive scheda in cui è possibile regolare la dimensione della colonna in base ai gruppi di dispositivi.

bandiera

Questo non è altro che una riga con un'immagine di sfondo e un effetto di parallasse, una piccola quantità di contenuto in esso con un suggerimento, titolo e pulsanti.

Membri del team

Questo è un ulteriore elemento di Ninzio; un carosello di membri del team. 

Blocco informazioni "Soluzioni creative"

Ancora non c'è nulla di insolito qui; un elemento di riga ordinario con due colonne, ciascuna contenente contenuto. 

Ma qui il trucco è che l'immagine a destra non si trova all'interno della seconda colonna, in realtà è impostata come immagine di sfondo della riga, quindi la colonna di destra qui è vuota.

Testimonianze dei clienti

Abbiamo anche creato un elemento personalizzato per aggiungere testimonianze. Di nuovo, niente di insolito in questo gioco.

Loghi dello sponsor

E l'ultima sezione è il logo dello sponsor. È una sequenza di loghi all'interno di una riga con un colore di sfondo grigio. Questo elemento è anche personalizzato.

Conclusione

Questo è tutto! Ora sai tutto ciò che è necessario per integrare Visual Composer con il tuo tema e creare pagine rapidamente e facilmente. Come risorsa per ulteriori studi, ti suggerisco di dare un'occhiata alla pagina wiki ufficiale di Visual Composer. Se avete domande, non esitate a lasciare un commento qui sotto!