Så här förlänger du Visual Composer med anpassade innehållsdelar

I den tidigare handledningen såg vi på Visual Composer för temat utvecklare; licensiering och teknisk installation. I denna handledning tar vi saker vidare, förlänger Visual Composer och ställer in den för att bygga sidor. 

Visual Composer Standard Funktionalitet

Innan vi tittar på att faktiskt bygga en sida, låt oss köra igenom några av standardfunktionerna.

Innehållsdelar

Visual Composer kommer med ett brett utbud av inbyggda innehållselement. Dessutom erbjuder Visual Composer över 200 tillägg, både gratis och betalda. 

Som standard är Visual Composer endast aktiverat för sidor, men du kan också aktivera det för inlägg och till och med anpassade posttyper. Dessa och flera alternativ kan hanteras inom Visual Composer Role Manager. Där kan du också styra vem som kan använda Visual Composer i din admin.

Med Shortcode Manager kan du lägga till anpassade element med parametrar. På något sätt användarcentrerande ekvivalenten av utvecklarmetoden för att kartlägga nya element.

Advanced Grid Builder

Ett av de mest tilltalande verktygen för användare är nätverksbyggaren. Med det kan användare skapa alla typer av nät, med bilder, text, knappar, inlägg och så vidare, utan att röra kod. Masonry-typnät finns också.

Mmm grids

Mall bibliotek

Mallbiblioteket ger användarna tillgång till professionella mallar för sidstruktur. Typiska exempel är artikellayouter, målsidans layouter, parallax sidor, portföljer, du heter det. Som utvecklare kan du till och med skapa din egen och inkludera dem med ditt temas demoinnehåll.

Trumvirvel, tack…

Och äntligen når vi vad som förmodligen är den viktigaste delen av Visual Composer: redaktören. Detta är ett back-end och en front-end editor, och med det kan användarna bygga sidor utan kodande kunskap.

Visual Composer's back-end editorVisual Composers främre redaktör

Med den främre änden redigerar du exakt vad du ser. Det är säkert mer Vad du ser är vad du får än standardversionen av WordPress WYSIWYG!

Sidbyggare fungerar med ett rad och kolumnsystem. Varje element som läggs till sidan är inslaget i en radbehållare. Flera element kan läggas till i samma rad, i kolumner eller ytterligare kapslingsrader. Skärmbilden nedan belyser hur element, rader, kolumner, kan läggas till, redigeras och tas bort.

Efter att ha täckt de grundläggande funktionerna, låt oss inte vända vår uppmärksamhet åt någon utveckling. Vi kommer att förlänga Visual Composers standardfunktionalitet och lägga till nya anpassade element.

Utökande visuell kompositör

För att åsidosätta något element i Visual Composer behöver du först kopiera mallfilen från mappen Visual Composer plugin (js_composer)> inkludera> mallar till yourtheme> vc_templates mapp. Från den tidigare handledningen kan du komma ihåg att vi i vårt Focuson-tema har fyra filer:

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

Och som vi diskuterade är namngivning väldigt viktigt här. Dessa mallar ska namnges exakt som de är i standard VC plugin mapp.

Efter att du har duplicerat mallfilen är du redo att skriva över den. Låt oss se, till exempel, vad som finns i den första filen vc_columns.php. Om du är bekant med kortnummer skapande kommer det inte vara något nytt för dig här.

Filstrukturen kan delas upp i tre delar:

  1. Extrahera shortcode attribut
  2. Förbered inställningar för utgång
  3. Utmat kortkortsstrukturen

Men vad händer om du vill lägga till eller ta bort befintliga shortcode-attribut, hur skulle du hantera det? Träffa tre nya funktioner:

vc_remove_param ();

Den här funktionen tar bort kortkodsparametern från ett befintligt eller anpassat element. För att ta bort attributet, rikta in den specifika kortkoden med namnet, till exempel vc_column och attributnamnet, till exempel el_class.

vc_remove_param ("vc_column", "el_class");

vc_add_param ();

Denna funktion lägger till nya parametrar till ett befintligt eller anpassat element. Som med vc_remove_param () funktion, rikta in specifika kortnummer med namnet, till exempel vc_column och inkludera parametervärdet:

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

vc_add_params ();

Denna funktion liknar vc_add_param (), men det låter dig lägga till flera parametrar till ett element. Du hittar en lista över alla parametortyper här.

För att lägga till eller ta bort nya parametrar, liksom lägga till nya element, måste du redigera integrationsfilen, som i vårt fall är ninzio_vc.php.

  1. Vi börjar med att inaktivera frontendredigeraren. Front-end editoren är en riktigt cool funktion, men våra anpassade element stöder inte den. Det är upp till dig som temakonstruktör om du vill stödja front-end och / eller back-end redaktörer.
  2. Ta bort alla onödiga eller icke-stödda parametrar från riktade element med vc_remove_param ();
  3. Lägg till nya parametrar i befintliga delar med vc_add_param (); eller vc_add_params (); funktioner.
  4. Lägg sedan till nya element ...

Så här lägger du till anpassade element

Lägga till nya innehållselement till Visual Composer uppstår när en kortnummerfil finns i ditt tema eller tematillägg, som i vårt fall, så först måste vi kolla med funktionen om vår plugin för ninzio-addons är installerad och aktiv:

om (definierad ('NINZIO_ADDONS') && file_exists (get_template_directory (). '/plugins/ninzio-addons.zip')) ... nya elementskod går här ...

Hur förstår Visual Composer att nya element har lagts till? Med add_action ();.

add_action ('init', 'focuson_ninzio_integrateVC'); funktion focuson_ninzio_integrateVC () ... nya element

Vi kommer att använda åtgärden i det, ger oss detta:

om (definierad ('NINZIO_ADDONS') && file_exists (get_template_directory (). '/plugins/ninzio-addons.zip')) add_action ('init', 'focuson_ninzio_integrateVC'); funktion focuson_ninzio_integrateVC () ... nya element

Nu är vi redo att lägga till våra nya element, för vilka vi behöver en ny funktion: 

vc_map ();

Den här funktionen kräver en parameter: en rad specialfunktioner som beskriver din kortnummer. Som exempel lägger vi till ett anpassat separatorelement:

 "Separator", "base" => "nz_sep", "class" => 'nz-sep', 'show_settings_on_create' => falskt, 'category' => esc_html __ ("Ninzio" => 'icon-separator', 'description' => 'Använd det här elementet för att skilja innehållet', 'js_view' => ", 'params' => array (... 

Det är många attribut! Låt oss lyfta fram det viktigaste:

  • namn ger ett unikt beskrivande namn till ditt anpassade element. Användarna kommer att se den på fliken Visual Composer.
  • bas, inte mindre viktigt än namn, är kortkodsnamnet. Om du är bekant med anpassad kortkodstillverkning vet du att alla anpassade kortkoder har taggar. Till exempel har vår anpassade separator en nz_sep märka. Elementbasen ska vara unik och den ska namnges exakt som kortnummernamnet finns i din shortcodes.php-fil (som vi har i vårt Focuson-tema):
 '20', 'bottom' => '20', 'typ' => 'fast', 'färg' => '#eeeeee', 'align' => 'left' '=> "), $ atts)); $ styles = ""; om (isset ($ color) &&! tom ($ color)) $ styles. = 'border-bottom-color:'. $ color. ';';  om (isset ($ bredd) &&! tom ($ bredd)) $ styles. = 'width:'. absint ($ width). 'px;';  else $ styles. = 'width: 100%;';  om (isset ($ höjd) &&! tom ($ höjd)) $ styles. = 'border-bottom-width:'. absint ($ höjd). 'px;';  om (isset ($ typ) &&! tom ($ typ)) $ styles. = 'border-bottom-style:'. $ typ. ';';  om (isset ($ top) &&! tom ($ top)) $ styles. = 'margin-top:'. absint ($ top). 'px;';  if (isset ($ bottom) &&! tom ($ bottom)) $ styles. = 'margin-bottom:'. absint ($ bottom). 'px;';  $ output = '
'; returnera $ output; add_shortcode ('nz_sep', 'nz_sep'); ?>
  • klass är inte kritisk, men ett viktigt alternativ, som fungerar som en icke-unik identifierare. Namnet ska vara beskrivande och utan mellanslag, använda streck eller understreck.
  • show_settings_on_create är en booleskt parameter och självbeskrivande.
  • kategori är väldigt viktigt. Om du vill gruppera dina anpassade element i en anpassad menyfliken i menyn Visual Composer elements, ska du lägga till en anpassad kategori. Om du vill inkludera element i en existerande kategori använder namnet på den befintliga menyfliken: 
  • ikon liknar klass. Vi lägger till ett ikonnamn så att vi kan ställa in kortkoden i menyn Visual Composer. Till exempel:
I.icon-separator, .nz-sep .vc_element-icon background-image: url (... /images/shortcodes/sep.png)! viktigt;
  • beskrivning lägger till en liten beskrivning av ditt anpassade element. Användare kommer att se detta.
  • js_view är en mycket viktig parameter. När du har element som består av föräldra- och barnkomponenter (till exempel innehållslådor, som har en huvudbehållare föräldra- och barnlådans element, där föräldra- och barnelement har separata attribut) ska detta attribut ha värdet VcColumnView. Vi kommer att undersöka de mer komplexa detaljerna i ett ögonblick.
  • params är en rad parametrar som ska läggas till i ditt anpassade element. Det beter sig på samma sätt som vc_add_params () funktion, men nestad i vc_map () fungera.

Föräldra- och barnelement

Behållarelement med barnelement kräver viss specifik konfiguration innan de läggs till. I vc_map () funktion vi behöver lägga till ett par fler parametrar för att göra våra element antingen en behållare eller ett annat barns barn.

Till exempel, säg att vi vill lägga till ett nytt element "Innehållsrutor". Vårt innehållsruta består av två delar: 

  1. moderelementet med dess attribut 
  2. och barnlådans element, var och en med sina attribut. 

En innehållslåda kan ha obegränsat barnlådans element. Så vi har två problem att lösa:

  1. På något sätt måste vi berätta för Visual Composer att innehållsrutan är ett barn / föräldraelement,
  2. då är en låda det enda möjliga barnet i ett föräldrainnehållsförpackningselement, och att ett innehållsrutaelement är den enda möjliga föräldern för boxelementen. 

Parent Element Code

För att undvika förvirring så mycket som möjligt, låt oss ta en titt på ett befintligt element. I vårt Focuson-tema har vi ett "Content boxes" -element, med två extra parametrar av särskilt intresse:

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

Kom ihåg det bas parameter för vår vc_map () fungera? Här med as_parent, vi registrerar nz_content_box element som förälder endast för en nz_box barnelement.

"js_view" => 'VcColumnView'

När js_view är satt till VcColumnView Visual Composer lägger till ytterligare användargränssnittfunktioner till elementet i redigeraren, så vi kan lägga till ett nytt barnelement.

Child Element Code

På samma sätt, vår nz_box elementskoden har en ytterligare parameter:

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

Med as_child vi registrerar nz_box element som ett barn, men endast för en nz_content_box moderelementet.

Utöka klasser

Om du nu besöker menyn Visual Composer och klickar på den nyligen tillagda Innehållsruta element, du kommer att se ... det fungerar inte. Ingen föräldra- / barnfunktionalitet har lagts till, för det finns fortfarande en sak vi behöver göra - vi måste sträcka sig till klasserna:

  • WPBakeryShortCodesContainer
  • WPBakeryShortCode

Den första klassen är ansvarig för moderelement, den andra ansvarar för barnelement. Så, direkt efter att åtgärdsfunktionen lägger till:

om (class_exists ('WPBakeryShortCodesContainer')) class WPBakeryShortCode_nz_Content_Box utökar WPBakeryShortCodesContainer 

Som du kommer ihåg var basen av innehållsruta föräldraelementet nz_content_box, detta namn ska också finnas närvarande i klassnamnet som utökar WPBakeryShortCodesContainer klass. I vårt fall är det nya klassnamnet WPBakeryShortCode_nz_Content_Box.

om (class_exists ('WPBakeryShortCode')) class WPBakeryShortCode_nz_Box utökar WPBakeryShortCode 

Detsamma gäller för barnelementet. Basnamnet var nz_box och det nya klassnamnet kommer att vara WPBakeryShortCode_nz_Box.

Vad du än heter din elementbas ska den vara närvarande i det nya klassnamnet.

Om du nu tittar på sidredigeraren en gång till ser du att det nya innehållsruta-elementet har barn / föräldrafunktionalitet.


Bygga sidor med Visual Composer

Efter hårt arbete kan vi skörda frukterna av vårt arbete. Ta en titt på Focuson Theme-hemsidan. Låt oss bygga den här hemsidan med Visual Composer.

Strukturen kan delas upp i flera sektioner:

  • Presentation Slider
  • Innehållslådor
  • Utvalda projekt
  • räknare
  • Ytterligare information, som "Varför välja oss", som består av två kolumner
  • Baner
  • Lagmedlemmar
  • Ytterligare ett block med ytterligare information med två kolumner
  • Kundernas omdömen
  • Sponsorlogotyper

Att återskapa detta är bara ett ögonblick med Visual Composer.

Vi lägger in varje block i det separata "Row" -elementet med minst ett "Column" -element. Som vi diskuterade är detta den nödvändiga och minsta strukturen för Visual Composer-sidor.

Presentation Slider

Focuson-tema har integrerat Revolution Slider. Skjutreglaget läggs inte till med Visual Composer, men när du installerar Revolution Slider och Visual Composer kommer du att märka ett nytt element "Revolution slider". Det här är en gratis tillägg från reglerventilen, och med det här elementet kan du placera en skjutreglage i sidan, även om ditt tema inte är integrerat med Visual Composer.

Innehållsförpackningar

Kom ihåg exemplet "Innehållslådor" -elementet? Vi kan skapa fantastiska innehållslådor med vårt anpassade element:

Utvalda projekt

I det här avsnittet använder vi 

  1. en text_kolumn
  2. ett mellanrum, för att lägga till utrymme
  3. en centrerad enda bild (som fungerar som en fin linjeavdelare) 
  4. ett annat gap 
  5. och elementet "Senaste projekt"

Nästan alla element här är anpassade tillagda.

räknare

För diskarna använde vi rad bakgrundsalternativ (bild och färg) för estetik. Alla dessa alternativ är anpassade tillägg från Ninzio. Vi sätter räknaren anpassad element inuti den stilade raden. 

"Varför välj oss" Info Block

Med kolumnerna Visual Composer kan vi lägga till innehåll med dubbla kolumner:

Nästan alla dessa element är anpassade till, bara elementet "Custom Heading" kommer som standard med Visual Composer. I backendredigeraren visas asymmetrisk, men i framsidan ser du en snygg struktur. Innehållshantering handlar inte om att bara fylla i sidor, det är också en logisk och kreativ process. Du måste ta hänsyn till måtten på bilder och text och överväga hur de ser på olika enheter. Ibland behövs också korrekta korrigeringar. Lyckligtvis har Visual Composer de nödvändiga verktygen. I kolumner redigerar du alternativen du kan hitta Responsive Options fliken där du kan justera kolumnstorleken beroende på enhetsgrupper.

Baner

Det här är inget annat än en rad med bakgrundsbild och parallaxeffekt, en liten mängd innehåll i det med ett verktygstips, titel och knappar.

Lagmedlemmar

Detta är ett extra element från Ninzio; en karusell av lagmedlemmar. 

"Creative Solutions" Info Block

Återigen finns det inget ovanligt här; ett vanligt radelement med två kolumner, innehållande innehåll. 

Men här är tricket att bilden till höger inte finns inne i den andra kolumnen, den är faktiskt inställd som rad bakgrundsbild, så den högra kolumnen här är tom.

Klientutlåtanden

Vi har också skapat ett anpassat element för att lägga till vittnesmål. Igen, inget ovanligt att spela här.

Sponsorlogotyper

Och det sista avsnittet är sponsorlogotyper. Det är en karusell av logotyper i en rad med en grå bakgrundsfärg. Detta element är också anpassat till.

Slutsats

Det är allt! Nu vet du allt som behövs för att integrera Visual Composer med ditt tema och skapa sidor snabbt och enkelt. Som resurs för vidare studier föreslår jag att du tittar på den officiella wikisidan för Visual Composer. Om du har några frågor, var god och lämna en kommentar nedan!