WordPress Dezvoltare și implementare cu MAMP, Git și Dropbox

În prezent, pentru a fi un dezvoltator WordPress independent, trebuie să dezvolți simultan mai multe site-uri WordPress pentru clienți diferiți. Iată cum.

Aceasta vă solicită să adoptați următoarele:

  • Un mediu flexibil de dezvoltare locală care vă permite să adăugați cu ușurință un nou site, cu un sistem de control al versiunii moderne și care vă permite să vă dezvoltați atât pe computerul dvs. desktop, cât și pe notebook.
  • Un sistem de implementare fiabil și sigur pe serverul de la distanță.

Cu această configurație puteți ușor:

  • dezvoltați și testați noul plugin sau temă într-un mod sigur și implementați-l pe serverul de producție;
  • actualizați local fișierele de bază WordPress sau actualizați pluginurile / temele deja instalate într-un mod sigur, verificați dacă nimic nu sparge site-ul și implementa aceste modificări pe serverul de producție;
  • efectuați modificări rapide asupra unor fișiere de pe serverul de la distanță și apoi le aduceți în mediul local.

Înainte de a începe

În acest tutorial se referă la Mac OS X, dar îl puteți adapta cu ușurință la orice alt sistem de operare. În plus, presupunem că serverul de la distanță are deja instalat Git și că accesul SSH este configurat cu autentificare cu chei publice (instalările SSH și Git nu fac parte din acest tutorial).

Scenariul pe care îl vom vedea constă în a Mediul local care permite dezvoltarea unui site WordPress cu pluginuri și teme și a Server la distanta care va găzdui site-ul "producție" WordPress. În mediul local vom folosi a Spațiul de lucru computer și a Caiet calculator. În ambele computere, vom configura MAMP, Dropbox și Git, astfel încât să puteți lucra pe desktop atunci când vă aflați în birou și pe notebook atunci când nu sunteți în birou și toate modificările vor fi sincronizate.

Vom folosi Dropbox pentru a sincroniza fișiere și DB între Desktop și Notebook și vom folosi Git pentru a urmări schimbările la nivel local și pentru a le implementa pe serverul Remote.

Pentru simplitate, definim www.site.dev ca site de dezvoltare pentru mediul local și www.site.com ca site de producție pe serverul de la distanță.


Ce vom face

În mediul local:

  • creați o structură de director de bază pe Dropbox;
  • instalați și configurați MAMP (atât pe desktop, cât și pe notebook) pentru a lucra într-un mediu Dropbox;
  • configurați și executați site-uri de dezvoltare WordPress atât pe desktop, cât și pe notebook;

Pe serverul de la distanță:

  • configurați Git, configurați magazia de la distanță și cârligul necesar;
  • configurați MySQL pentru site-ul de producție WordPress;

În mediul local:

  • configurați Git, configurați depozitul local;
  • modificați configurația WordPress pentru a gestiona conexiunea DB locală / la distanță;
  • efectuați comiterea inițială și implementați-o pe serverul de la distanță.

Exemple de fluxuri de lucru tipice:

  • dezvoltarea temelor / pluginurilor;
  • Gestionarea WordPress;
  • să recunoască schimbările "urgente" pe serverul de producție și să le tragă în mediul local;

De ce ai nevoie

  • Pe mediul local:
    • Un cont Dropbox, un client Dropbox instalat atât pe desktop, cât și pe notebook (consultați site-ul Dropbox pentru instrucțiuni de instalare);
    • MAMP, poți ajunge de aici;
    • Editorul dvs. preferat de text;
    • Git (cum se instalează Git local este inclus în cartea Pro Git);
  • Pe serverul de la distanță:
    • PHP și MySQL conform cerințelor WordPress;
    • Git instalat (a se vedea aici);
    • Un cont cu acces SSH și autentificare cu chei publice;

Pasul 1 Crearea structurii directorului pe Dropbox

Descărcați și instalați Dropbox pe desktop și Notebook (vedeți aici pentru instrucțiuni). Utilizați același cont pe ambele computere.

În dosarul Dropbox de pe desktop, creați următoarea structură de directoare:

  • dropbox
    • Dezvoltare
      • conf
      • db
      • busteni
      • vhost

Verificați dacă aceeași structură de directoare este propagată pe Notebook.


Pasul 2 Instalați și configurați MAMP

MAMP este un acronim care reprezintă: Mac, Apache, MySQL și PHP, este o aplicație care instalează un mediu de server local pe Mac.

Instalarea sa este foarte ușoară: descărcați MAMP de aici, dezarhivați arhiva și faceți dublu clic pe acesta, apoi urmați instrucțiunile. Faceți acest lucru atât pe desktop, cât și pe notebook. Nu începe încă MAMP: înainte de a face acest lucru trebuie să mutați baza de date și să modificați configurația implicită.

Deplasați folderul bazei de date

Pe Spațiul de lucru mutați directorul de bază de date din locația standard MAMP în directorul db din Dropbox, pentru a face acest lucru deschideți un Terminal și utilizați următoarele comenzi:

cd / Aplicații / MAMP / db mv * ~ / Dropbox / Dezvoltare / db /

Pe Caiet deschideți un Terminal și ștergeți dosarul bazei de date folosind următoarea comandă:

cd / Aplicații / MAMP rm -rf ./db

În cele din urmă pe ambele Spațiul de lucru și Caiet creați o legătură simbolică din MAMP în Dropbox cu următoarea comandă:

ln -s ~ / Dropbox / Dezvoltare / db / Aplicații / MAMP / db

Acum legătura simbolică / Aplicații / MAMP / db arată spre dosarul partajat Dropbox ~ / Dropbox / Dezvoltare / db care conține bazele de date MAMP. Nu începe încă MAMP: trebuie să facem mai întâi o modificare a configurației.

Schimbați porturile MAMP

MAMP utilizează porturi personalizate pentru instanțele serverului Apache și MySQL: Apache rulează pe portul 8888, MySQL rulează pe portul 8889. Puteți să vă mențineți această configurație sau, după cum sugerează, să o schimbați în porturi standard: 80 pentru Apache și 3306 pentru MySQL.

Pentru a restabili porturile standard, porniți MAMP numai pe desktop , faceți clic pe "Preferințe ...", apoi pe "Porturi", faceți clic pe "Setați la porturile implicite Apache și MySQL" și apoi faceți clic pe "OK": MAMP salvează noua configurație și repornește automat.

Acum, pe Desktop, deschideți browserul dvs. preferat și mergeți la http: // localhost / MAMP /: ar trebui să vedeți pagina de pornire MAMP.

Dacă nu vedeți pagina de pornire MAMP, probabil că ați activat Partajare Web: deschideți Preferințele de sistem, faceți clic pe Partajare și dezactivați Partajare Web.

Nu vă faceți griji dacă Mac OS X necesită o parolă când porniți MAMP: avem Apache de configurare pentru a rula pe portul 80 care este un port privilegiat și acest lucru necesită o parolă de administrator.

Pentru că în această configurație MAMP nu poate fi rulat simultan atât pe desktop, cât și pe notebook, ieșiți din MAMP pe desktop, porniți-l pe Notebook și configurați-l în același mod. Când terminați oprirea MAMP.

Modificați configurația MAMP - Apache

Configurația MAP Apache este stocată în /Applications/MAMP/conf/apache/httpd.conf. Editați acest fișier cu editorul dvs. de text preferat și adăugați următoarele linii (faceți acest lucru pe ambele dvs.) Spațiul de lucru si al tau Caiet):

# Include configurația partajată în folderul Dropbox Include /Users/YOURUSERNAME/Dropbox/Development/conf/local-development.conf

A inlocui NUME DE UTILIZATOR cu numele de utilizator Mac OS X (dacă nu știți că se deschide Terminal și se execută cine sunt; vă va oferi numele dvs. de utilizator).

Această instrucțiune instruiește Apache să încarce un fișier de configurare suplimentar din folderul Dropbox (sincronizat între desktop și notebook). În acest fel îl putem folosi ca fișierul de configurare a mediului local.

Configurați Apache Virtual Host pe MAMP

Apache Virtual Host este o caracteristică frumoasă care vă permite să rulați mai mult de un site web (cum ar fi www.site1.com și www.site2.com) pe un singur server. Gazdele virtuale pot fi "bazate pe IP", ceea ce înseamnă că aveți o adresă IP diferită pentru fiecare site web sau "bazată pe nume", ceea ce înseamnă că aveți mai multe nume care rulează pe o singură adresă IP. Ultimul este caracteristica pe care o vom folosi (vezi aici pentru detalii).

Cu editorul de text preferat deschideți fișierul de configurare a mediului local /Users/YOURUSERNAME/Dropbox/Development/conf/local-development.conf și introduceți următoarele rânduri:

 AllowOverride All  # # Numit gazdă virtuală # LogFormat "% V% h% l% u% t \"% r \ "% s% b" vLogon CustomLog /Users/YOURUSERNAME/Dropbox/Development/logs/access.log vLogon ErrorLog / YOURUSERNAME / Dropbox / Development / logs / errors.log UtilizareCanonicalName Oprit VirtualDocumentRoot / Utilizatori / YOURUSERNAME / Dropbox / Development / vhosts /% 0

Șirul "% 0"aruncă vraja: când serverul Apache primește o cerere pentru domeniu www.site.dev caută un director numit www.site.dev în / Utilizatori / numedeutilizator / Dropbox / Dezvoltare / vhosts /, și dacă se găsește fișierele din el.

Celelalte instrucțiuni instruiesc Apache unde să scrie fișierele de eroare și de acces.


Pasul 3 Configurați WordPress

Acum suntem gata să configuram site-ul de dezvoltare WordPress www.site.dev. Pentru a face acest lucru trebuie să creați o www.site.dev (pe desktop).

și trebuie să editați (pe Desktop și pe Notebook) / etc / hosts fișier pentru a mapa numele de gazdă www.site.dev la adresa IP localhost. Cu editorul de text preferat deschideți fișierul / etc / hosts și adăugați următoarele linii la sfârșitul fișierului (Mac OS X cere parola pentru a modifica acest fișier de sistem):

# dezvoltare locală 127.0.0.1 www.site.dev

În acest stadiu ar putea fi util să faceți o verificare: deschideți terminalul și executați următoarea comandă:

ping -c 3 www.site.dev

Ar trebui să aveți un răspuns similar la acest lucru:

Acum este momentul să configurați WordPress: Descărcați pachetul WordPress de aici și dezarhivați într-un dosar temporar. Mutați tot conținutul dosarului temporar din interior /Users/YOURUSERNAME/Dropbox/Development/vhosts/www.site.dev/.

Pe desktop, porniți MAMP și deschideți browserul la adresa http: // localhost / MAMP /. Faceți clic pe fila phpMyAdmin și creați o nouă bază de date numită site_dev:

Deschideți browserul dvs. la www.site.dev și finalizați instalarea WordPress utilizând următoarele valori:

  • Numele bazei de date: site_dev
  • Nume utilizator: root
  • Parola: rădăcină
  • Bază de date gazdă: localhost
  • Prefixul de tabel: wp_

Opriți MAMP de pe desktop, așteptați sincronizarea Dropbox și porniți-o pe Notebook. Deschideți browserul de notebook-uri la adresa www.site.dev: WordPress este deja configurat!

La sfârșitul Pasului 3 avem un mediu local de dezvoltare WordPress bazat pe MAMP și sincronizat între desktop și notebook prin intermediul Dropbox, acum este timpul să configuram serverul la distanță.


Pasul 4: Configurați Git pe serverul de la distanță

Git este un sistem de control al versiunilor distribuit, care înregistrează modificări la un fișier sau un set de fișiere în timp și permite împingerea modificărilor către un server la distanță (descriere mai detaliată aici). În acest tutorial presupunem că Git este deja instalat pe serverul dvs. În consecință, vom continua cu configurația.

Mai întâi trebuie să te autentifici la server. Presupunem că aveți un cont cu acces SSH și autentificare cu chei publice. În acest fel, nu trebuie să introduceți o parolă de fiecare dată când vă conectați. Deschideți o fereastră terminal și conectați-vă la server:

ssh [email protected]

Configurați unele setări Git implicite despre utilizator și e-mail, pentru a evita ca Git să le solicite de fiecare dată:

git config --global user.email "[email protected]" git config - nume utilizator global "Numele tău"

Setup și inițializați un depozit gol:

site-ul mkdir site.git cd site.git git init --bare

Pentru a permite implementarea de la dezvoltare la site-ul de producție, trebuie să configurați a Git cârlig (Folosesc Vi ca editor de text pentru serverul de la distanță):

cd cârlige vi post-receive

Apoi introduceți următoarele linii:

#! / bin / bash # docroot = "/ home / nume de utilizator / www" în timp ce citiți oldrev newrev ref fișier = "echo $ ref | cut -d / -f3" dacă ["master" == "$ branch"; apoi git - work-tree = $ docroot checkout -f $ branch fi făcut

Setați variabila docroot la DocumentRoot Server Web și apoi faceți post-primesc executabil:

chmod 755 post-recepție

Acest Cârlig este invocat la sfârșitul procesului de împingere a modificărilor de la un client (Desktop sau Notebook) la Serverul de la distanță. Aceasta face implementarea în directorul de producție Web Server DocumentRoot (pentru detalii despre Git Hooks).

Comenzile Git utilizează unele variabilele de mediu; trebuie să configurați două dintre ele: GIT_DIR și GIT_WORK_TREE. Primul specifică calea către depozit, al doilea calea spre arborele de lucru (DocumentRoot). Cache-ul implicit pe serverul meu de la distanță este Bash, așa că le adaug în fișier .bash_profile.

cd ~ vi .bash_profile

Adăugați următoarele rânduri la sfârșitul fișierului:

# Export GIT GIT_DIR = ~ / repo.git export GIT_WORK_TREE = ~ / www

Pasul 5 Configurarea MySQL pe serverul de la distanță

Pe serverul de la distanță trebuie să creați o bază de date pe MySQL: pentru aceasta puteți urma instrucțiunile detaliate de instalare ale WordPress Codex. Serverul meu de la distanță are cPanel ca panou de control pentru găzduire, așa că urmează aceste instrucțiuni.


Pasul 6 Setarea Git pe mediul local

Instalați Git pe Mac OS X (instrucțiuni mai detaliate despre cartea Pro Git): descărcați programul de instalare din pagina de cod Google, faceți dublu clic pe fișierul dmg, apoi pe fișierul pkg și urmați instrucțiunile. Faceți acest lucru atât pe desktop, cât și pe notebook.

Acum sunteți pregătit să inițializați un depozit Git în mediul local. Pentru a face acest lucru deschideți Terminal (pe Desktop sau pe Notebook) și utilizați următoarele comenzi:

cd ~ / Dropbox / Dezvoltare / vhost / www.site.dev git init .

Ar trebui să vedeți ceva de genul:

Pentru a verifica starea depozitului Git, utilizați această comandă:

git status

rezultatul ar trebui să fie după cum urmează:

Git vă spune că toate aceste fișiere și directoare nu sunt urmărite în depozit și sugerează utilizarea acestora adăugați git comandă pentru a le urmări.

Înainte de a face acest lucru trebuie să faceți unele modificări în configurația Git. Trebuie să-i spunem lui Git ce fișiere ar trebui să urmărească și pe care nu ar trebui să o urmeze. Pentru a face acest lucru utilizați .gitignore fişier.

Fișierul .gitignore

Acest fișier specifică fișierele netrackate pe care Git ar trebui să le ignore (vedeți aici pentru mai multe detalii). Comanda este simplă, să facem un exemplu pentru a înțelege cum funcționează:

# ignorați magazinul de service Mac OS X.DS_Store # ignorați directorul my-test-dir și toate subdirectoarele my-test-dir / #ignore toate fișierele .txt * .txt

Deci, creați fișierul ~ / Dropbox / Dezvoltare / vhost / www.site.dev / .gitignore și adăugați următoarele rânduri:

# ignorați magazinul de servicii pentru Mac OS X.DS_Store # ignore debug.log wp-content / debug.log

Pentru moment acest lucru este tot ce trebuie să faceți. Ulterior, vom adăuga alte fișiere și directoare.


Pasul 7 Modificați configurarea WordPress pentru a administra conexiunile DB locale și la distanță

WordPress pe un mediu local utilizează DB din MAMP și fișierul său de configurare wp-config.php reflectă această configurație (nume de utilizator și parolă standard MAMP MySQL):

// ** Setările MySQL - Puteți obține aceste informații de la gazda web ** // / ** Numele bazei de date pentru WordPress * / define ('DB_NAME', 'site_dev'); / ** numele de utilizator al bazei de date MySQL * / define ('DB_USER', 'root'); / ** Parola bazei de date MySQL * / define ('DB_PASSWORD', 'root'); / ** Numele gazdei MySQL * / define ('DB_HOST', 'localhost');

Acest lucru funcționează pe un mediu local, dar ce se întâmplă dacă îl implementăm pe serverul de la distanță? Evident că nu va reuși să se conecteze la DB deoarece NUME_BD, UTILIZATOR_BD, PAROLĂ_BD și probabil db_host sunt greșite.

Soluția vine de la articolul lui Mark Jaquith: modificați wp-config.php astfel încât configurația pentru mediul local să fie încărcată dintr-un alt fișier și acel fișier nu este urmărit de git. Pentru a face acest lucru se deschide wp-config.php fișier și înlocuiți liniile de mai sus cu următoarele linii:

dacă (file_exists (dirname (__FILE__) ./local-config.php ')) include (dirname (__FILE__) ./local-config.php');  altceva define ('DB_NAME', 'YOURDBNAME'); definiți ("DB_USER", "YOURDBUSER"); define ('DB_PASSWORD', 'YOURDBPASSWORD'); define ('DB_HOST', 'YOURDBHOSTNAME'); 

A inlocui YOURDBNAME, YOURDBUSER, YOURDBPASSWORD și YOURDBHOSTNAME cu valorile pe care le-ați definit în Pasul 5.

Creați ~ / Dropbox / Dezvoltare / vhost / www.site.dev / local-config.php fișier și pune definițiile locale ale mediului înconjurător:

definiți ("DB_NAME", "site_dev"); define ('DB_USER', 'root'); define ('DB_PASSWORD', 'root'); define ('DB_HOST', 'localhost');

Acum trebuie să adăugăm locale-config.php la .gitignore astfel încât Git nu va urmări:

# ignorați magazinul de service pentru Mac OS X.DS_Store # ignore debug.log wp-content / debug.log # ignore local-config.php local-config.php

OK, acum suntem gata să facem primul comitet.


Pasul 8: Angajați schimbările în mediul local și transferați-le pe serverul de la distanță

Pentru a efectua modificări la depozitul Git în mediul local, introduceți aceste comenzi:

cd ~ / Dropbox / Dezvoltare / vhost / www.site.dev / git adăugați. git commit -m "Importul inițial"

Prima comandă Git urmărește toate fișierele și directoarele ~ / Dropbox / Dezvoltare / vhost / www.site.dev / cu excepția cazului în .gitignore, cel de-al doilea îi angajează pe toți în depozitul Git.

Este timpul să împingeți WordPress pe serverul de la distanță, dar mai întâi trebuie să configurați depozitul Git de la distanță:

git adaugă la distanță site-ul Web ssh: //[email protected]/home/yourusername/site.git

Această comandă îi spune lui Git că se cheamă un depozit la distanță website, găzduit pe server www.site.com accesibil printr-o conexiune SSH.

În cele din urmă, prima implementare pe serverul de la distanță:

git push master site-ul web

Performanța comenzii ar trebui să arate după cum urmează:

Acum vă puteți îndrepta browserul www.site.com și vedeți site-ul WordPress pe serverul de la distanță.


Câteva exemple de fluxuri de lucru tipice

Dezvoltarea temelor / pluginurilor

Ca exemplu de dezvoltare a temei / plugin-ului, putem crea în mediul local o temă de douăzeci și unu de copii și o putem implementa pe serverul de la distanță.

Pentru o instrucțiune detaliată cu privire la modul de creare a temei copilului, puteți citi acest articol pe Wptuts +. Practic, trebuie să creați un director care să conțină două fișiere: style.css și functions.php (acesta din urmă este opțional).

Deci, pe Desktop (sau pe Notebook) creați directorul ~ / Dropbox / Dezvoltare / vhost / www.site.dev / wp-content / teme / mi-twentyeleven-copil, apoi creați un fișier numit style.css în interiorul acestui dosar și adăugați următoarele linii:

/ * Tema Nume: Twenty Eleven Teme URI pentru tine: http: //www.site.com/ Descriere: Tema copilului pentru tema Twenty Eleven Autor: Numele tau Autor URI: http: //your-site.com/ Format: twentyeleven Versiune: 0.1 * / @import url ("... /twentyeleven/style.css");

De asemenea, puteți adăuga unele modificări CSS sub @import line, de exemplu, puteți modifica fundalul corpului:

corp fundal: # D51717;

Apoi creați functions.php fișier și adăugați următoarele rânduri:

". "\ N";  add_action ('wp_head', 'favicon_link'); ?>

Acest fișier de funcții simple are un singur lucru: adaugă o legătură favicon cu elementul cap de pagini HTML.

Acum tema copilului nostru este completă și trebuie să o urmărim în depozitul Git:

cd ~ / Dropbox / Dezvoltare / vhost / www.site.dev / git adăugați wp-content / theme / my-twentyeleven-child /

Apoi trebuie să facem schimbările:

git commit -m "A fost adăugat tema mea de douăzeci și unu de copii"

În acest fel, puteți continua dezvoltarea temei copilului adăugând fișiere, schimbând codul și făcând toate aceste modificări în depozit. Când tema dvs. este pregătită pentru serverul de producție, trebuie doar să emiteți git push comanda:

git push master site-ul web

În acest mod tema copilului va fi împinsă pe serverul de la distanță, gata de utilizare.

Dacă dezvoltați un plugin, faceți aceiași pași: urmăriți directorul plugin-ului și faceți schimbări în depozit. Când pluginul este gata, împingeți-l pe serverul de la distanță.

WordPress Management

În mod similar, putem gestiona instalarea pluginului WordPress sau actualizarea WordPress. Să presupunem că vrem să încercăm un nou plugin și dorim să fim siguri că nu ne va rupe locul de producție.

Instalați-o în mediul local folosind mai întâi panoul de administrare WordPress (vedeți aici pentru detalii), apoi trebuie să îl urmăriți și să-l adăugați la depozitul Git (faceți acest lucru pe Desktop sau pe Notebook):

cd ~ / Dropbox / Development / vhost / www.site.dev / git adăugați wp-content / plugins / plugin-to-try /

Dacă pluginul funcționează, îl puteți implementa pe serverul de la distanță utilizând:

git push master site-ul web

și permiteți-le să utilizați panoul de administrare WordPress.

Dacă pluginul nu funcționează, îl puteți dezinstala utilizând Panoul de administrare WordPress, apoi îl puteți elimina din fișierele urmărite și puteți comanda modificările:

git rm wp-content / plugins / plugin-to-try / git comanda -m "Am eliminat pluginul pentru a încerca"

Un mic sfat: dacă adăugați un director de plugin-uri .gitignore (înainte de a se angaja) pluginul va rămâne numai în mediul local, dar nu va fi împins pe serverul de la distanță. Acest lucru ar putea fi util pentru plugin-uri precum Debug Bar, care sunt utilizate în dezvoltarea locală, dar care nu trebuie transferate pe un site de producție.

Faceți modificări rapide pe serverul de producție și trageți-le în mediul local

Bine, știți, schimbările rapide pe serverul de producție nu sunt un obicei bun, într-adevăr sunt un obicei prost, dar uneori sunt inevitabile. Presupunând că am schimbat-o PAROLĂ_BD pe serverul de la distanță wp-config.php dosar și acum dorim să recunoaștem această schimbare în mediul nostru local wp-config.php. Pentru aceasta, conectați mai întâi serverul de la distanță prin SSH și utilizați următoarea comandă:

git commit -m "schimba DB_PASSWORD pe wp-config.php"

Apoi trageți modificările de la un depozit la distanță utilizând următoarea comandă de pe desktop:

git trageți site-ul web master

Dacă citiți wp-config.php veți vedea noul PAROLĂ_BD.


Concluzie

În acest tutorial am văzut un scenariu alcătuit dintr-un mediu local și un server de la distanță care găzduiește dezvoltarea și site-ul de producție pentru www.site.com, dar puteți repeta cu ușurință această setare pentru www.mynewcustomer.com, pentru www.myothernewnewcustomer.com si asa mai departe.

MAMP, Dropbox și Git formează o echipă câștigătoare care se ocupă de dezvoltarea și implementarea WordPress, reprezintă un mediu flexibil de dezvoltare care permite să adăugați cu ușurință un nou site, să îl dezvoltați oriunde vă aflați și să îl implementați într-un mod sigur serverului de producție.

Dacă lucrați în mod regulat cu WordPress, verificați selecția utilităților WordPress de pe Envato Market. De la pluginurile de securitate la personalizatoarele iFrame, există sigur că există ceva care vă poate ajuta.

Utilitare WordPress pe Envato Market
Cod