A intra
Toate secretele computerului pentru începători și profesioniști
  • Cum să faci obiecte în Minecraft
  • Cheat Flux B4 (Killaura, Aimbot, X-Ray)
  • De ce Tele2 nu preia rețeaua?
  • Win Mobile Crimeea: serviciu
  • Jocul instalat nu pornește
  • Ce trebuie să faceți dacă jocul nu se încarcă pe computer
  • Sfârșitul pluginului php. Cel mai bun mod de a permite pluginuri pentru o aplicație PHP. Crearea unui plugin personalizat cu funcții WordPress

    Sfârșitul pluginului php.  Cel mai bun mod de a permite pluginuri pentru o aplicație PHP.  Crearea unui plugin personalizat cu funcții WordPress

    Cu siguranță, ați întâmpinat adesea nevoia de a adăuga o bucată de cod pe site-ul dvs. WordPress pentru a adăuga funcționalități noi. Nu mă refer la scripturile Google Analytics pe care le inserați în partea de antet a temei dvs. Nu. Vorbesc despre acele mici fragmente de cod pe care le-ai găsit pe forumurile de pe Internet și ai alergat imediat să le adaugi în fișierul tău. funcții.php.

    Să fim sinceri, ai făcut asta măcar o dată, nu? Și acest lucru este de înțeles, pentru că a fost scris pe forum - adăugați acest cod la functions.php al temei dvs. WordPress.

    Adevărul este că adăugarea fiecărui cod pe care îl găsiți pe Internet la functions.php este nu întotdeauna o idee bună. O soluție mai sigură ar fi să vă creați propriul mini plugin personalizat cu acest cod.

    În acest tutorial, vă vom spune în ce cazuri puteți adăuga cod la functions.php și în ce cazuri este mai bine să utilizați un plugin separat. De asemenea, vă vom arăta cum puteți crea un plugin personalizat și să adăugați propriul cod la acesta.

    Ce este functions.php

    Dacă ați trecut vreodată prin fișierele site-ului dvs. WordPress, este posibil să fi întâlnit mai multe fișiere functions.php. Fișierul functions.php despre care vom vorbi în acest tutorial se află în folderul: wp-contentthemesyourthemefunctions.php.

    Evident, acesta este același fișier care stochează toate funcțiile și setările temei dvs. specifice, activ în prezent. Fiți atenți la cuvântul „activ”, deoarece acesta va fi mesajul principal al acestei lecții.

    De ce să folosiți întotdeauna functions.php este o idee proastă

    Nu mă înțelege greșit, utilizarea functions.php pentru bucăți mici de cod în câteva rânduri este o situație complet normală. Ceea ce spunem este că nu este o idee bună să folosiți functions.php ca depozit pentru absolut tot codul pe care l-ați adăugat. Aceasta nu este o soluție unică pentru orice situație.

    Motivul #1.

    Dacă există o actualizare a temei dvs., veți pierde tot ce ați scris în fișierul functions.php. Știu ce tocmai te-ai gândit - dar există unul doar pentru situații ca asta?

    Desigur că au. Dar există și mulți oameni care habar n-au ce este o temă de copil. Sau există persoane care ți-au cerut ajutor pentru a adăuga o bucată de cod la tema lor.

    De aceea, acest motiv se află pe această listă. Dacă adăugați cod la functions.php fără a utiliza o temă copil, acesta este primul dvs. steag roșu.

    Motivul #2.

    Chiar dacă ați configurat și utilizați corect o temă copil. Ce se întâmplă dacă vrei să treci la o altă temă? Sper să adăugați un comentariu la fiecare modificare pe care o faceți în fișierul functions.php, deoarece fără el, trecerea la o altă temă va fi extrem de dureroasă. Cred că ai înțeles ideea.

    Motivul #3.

    Dacă ai adăugat cod la functions.php care, din senin, îți sparge complet site-ul și rămâi cu un ecran alb gol, vei avea nevoie de un client FTP pentru a descărca funcția ruptă functions.php, edita-l, și încărcați-l înapoi pe site-ul dvs. Plăcerea este așa.

    Când să folosiți functions.php

    Folosirea corectă a functions.php pentru tema copil activă în prezent este o opțiune validă. Dar amintiți-vă, am subliniat acest cuvânt " activ"?

    Dacă adăugați bucăți de cod care vor avea sens numai atunci când lucrați cu acea temă anume, atunci puteți utiliza în siguranță functions.php (într-o temă copil). Iată câteva exemple în care acest lucru ar fi potrivit:

    • Adăugarea unui alt fișier de stiluri (.css) pentru tema dvs
    • Schimbarea lungimii extrasului postării pentru a face site-ul să arate mai bine
    • Adăugarea de fonturi personalizate pentru tema curentă
    • Adăugarea unui fișier de localizare pentru a traduce tema curentă

    Cu alte cuvinte, ori de câte ori adăugați sau modificați ceva legat de tema curentă specifică, puteți utiliza în siguranță functions.php.

    Când este mai bine să faci fără functions.php

    Folosirea functions.php pentru a adăuga mai multe lucruri și funcții globale de care teoretic ai putea avea nevoie pentru o altă temă este o idee proastă.

    Iată câteva exemple când este mai bine să faci fără functions.php:

    • Creați widget-uri personalizate pe care le veți folosi des
    • Crearea de coduri scurte personalizate
    • Adăugarea unui cod care nu depinde de temă (codul Google Analytics etc.)

    În astfel de cazuri, este mai bine să salvați acest cod, indiferent de tema dvs. Și puteți face acest lucru cu pluginuri personalizate.

    Vă gândiți acum să vă încurcați despre crearea unui plugin când puteți edita functions.php? Este prea dificil! Crede-mă, nu este adevărat. Acest lucru se face foarte ușor și rapid.

    Cum să configurați un plugin personalizat în loc de functions.php

    Pentru a vă crea propriul plugin personalizat pentru a vă stoca codul, aveți nevoie de:

    1. Creați un fișier text cu codul dvs. și salvați-l ca fișier .php
    2. Împachetați fișierul .php rezultat într-o arhivă .zip
    3. Instalați această arhivă ca un plugin WordPress obișnuit în meniu Pluginuri → Adăugați nou

    Gata, doar 3 pași.

    Pasul 1. Creați un fișier .php cu codul dvs

    Deschideți Notepad pe computer și inserați următorul text:

    Desigur, puteți folosi propriul nume pentru plugin în linia Nume plugin:

    Salvează fișierul și dă-i un nume unic, astfel încât WordPress să nu confunde pluginul tău cu cele deja instalate. De exemplu: wpcafe-custom-functions.php.

    Da, nu uitați să selectați tipul de fișier „Toate fișierele” când salvați și să adăugați extensia .php:

    Pasul 2. Creați o arhivă .zip

    Cred că nu este nevoie de o explicație aici. Doar creați o arhivă .zip cu fișierul dvs. folosind orice arhivator convenabil.

    Pasul 3. Instalați ca un plugin obișnuit

    Partea cea mai simplă. Doar accesați administratorul WordPress la Pluginuri → Adăugați nouși încărcați arhiva dvs. ca un plugin obișnuit.

    Odată ce îl activați, veți putea vedea noul dvs. plugin în lista tuturor celorlalte plugin-uri instalate:

    Cum să adăugați codul dvs

    Pentru a adăuga propriul fragment de cod, pur și simplu lipiți-l în fișierul .php pe care l-ați creat. Sau puteți face oricând un alt plugin separat pentru două funcții diferite.

    De exemplu, așa ar arăta fișierul dvs. .php dacă doriți să faceți un cod scurt „Hello World!”

    Aceste comentarii nu afectează în niciun fel performanța codului dvs. sau viteza de execuție a pluginului. Dar vă vor face mai ușor să navigați și să vă amintiți ce face fiecare caracteristică adăugată.

    Doar împachetați comentariul în sintaxa slash și asterisc: /* comentariul tau */

    După ce ați făcut modificări codului, puteți reîncărca fișierul .php prin FTP sau pur și simplu creați o nouă arhivă .zip și încărcați-o ca plugin nou și ștergeți-l pe cel vechi.

    Alte moduri de a evita editarea functions.php

    În general, dacă sunteți suficient de încrezător în abilitățile dvs. și știți cum să adăugați cod la functions.php, nu ar trebui să aveți dificultăți cu pluginurile personalizate. Nu este nimic complicat aici.

    Dar înțelegem foarte bine dacă nu doriți să lucrați manual cu toate acestea. La urma urmei, acesta este WordPress. Prin urmare, s-ar putea să vă fie util să utilizați pluginul gratuit Code Snippets, care vă permite să adăugați cu ușurință codul suplimentar pe site:

    Cu acest plugin, puteți adăuga diferite fragmente de cod, le puteți oferi un titlu, o descriere și să activați și să dezactivați selectiv una sau alta parte de cod.

    O altă caracteristică interesantă este că puteți importa/exporta fragmentele de cod între site-uri.

    Rezultate

    Acesta poate părea un mic detaliu, dar plasarea corectă a codului suplimentar vă va permite să comutați între alte teme fără probleme în viitor. De asemenea, puteți activa sau dezactiva această sau acea funcționalitate individual dacă împărțiți fiecare funcție suplimentară între pluginuri separate.

    Deci, această metodă chiar merită atenție.

    Un fișier cu funcții este un asistent distractiv în extinderea funcționalității site-ului! mai ales dacă este folosit în scopul propus - cu toate acestea, mulți proprietari de blog/site-uri web transformă minunat functions.php într-un amestec.

    În orice afacere, există oportunități și restricții (restricții, adesea logice), și, prin urmare, este mai corect să mutați un cod executabil menit să reglementeze parametrii nucleului WP (nu tema) în afara șablonului...

    Când se vorbește despre modernizarea funcționalității unui site web, în ​​linia articolelor „fără plugin-uri...” cu siguranță sfătuiesc să împinge toate blocurile de cod în legendarul functions.php. Nu este corect!

    Este mai logic să transferați toate extensiile pur tehnice (care nu au legătură directă cu stilul șablonului) la un plugin organizat pentru înregistrarea lor.

    Să-l creăm! și vom vorbi, de asemenea, despre avantajele și dezavantajele (dintre care sunt semnificativ mai puține)...


    Secțiuni ale articolului:

    cum să-ți creezi propriul plugin

    În textul de mai jos vom învăța cum să vă creați propriul plugin cu propriile mâini: vom înțelege toate detaliile și nuanțele. Să aflăm care sunt avantajele și dezavantajele (sunt mai puține dezavantaje!! și mai degrabă, acestea nu sunt deloc contra, ci una sau alta oportunitate pentru fiecare administrator)

    care este diferența dintre fișierul functions.php și plugin

    De ce un cod legat direct de funcționalitatea site-ului ar trebui mutat într-un plugin separat?

    Fișierul funcție în sine, scopul și consistența acestuia nu diferă de un plugin (pur și simplu un plugin în temă))! — sarcina sa principală este de a îmbogăți un șablon specific (activ) cu funcționalități utile.

    De exemplu, „navigație”, unde, în mod logic, meniul de butoane este proiectat cu CSS în funcție de stilul temei active - poate că ar fi mai corect să îl lăsați în rădăcina șablonului.

    Care este beneficiul împărțirii fișierului cu funcții în fișiere separate sau un plugin separat?

    De exemplu, cel mai banal lucru - ai decis să schimbi șablonul!? ... ca urmare, toate dezvoltările funcționale se vor pierde, deoarece tot codul util este localizat în fișierul de funcții (am văzut odată o astfel de dimensiune a fișierului de 750kILO)

    Desigur, puteți muta documentația funcțiilor la un subiect nou, dar cel mai adesea, nu o puteți face fără modificări, care ocupă mult timp util: maimuță și muncă)

    Și apoi:

    ordinea de descărcare a fișierelor site-ului

    Pe scurt: ordinea de încărcare a fișierelor de bază ale site-ului din exemplul nostru este următoarea - pluginurile active ale site-ului (din folderul de pluginuri) și conținutul acestora sunt încărcate puțin mai devreme și abia apoi fișierul functions.php cu conținutul este procesat. Toate acestea sunt milisecunde și nu merită să vorbim serios despre câștigarea vitezei paginii în sine.

    Deși, se pare că unul dintre motivele acestei ordine de încărcare stabilite de dezvoltatori, unde locul al doilea este dat fișierului de funcție (cum ar fi probabil element mai ușor), doar faptul că utilizarea pe scară largă a pluginurilor, adesea cu conținut masiv...

    Cineva va exclama: alt plugin...? este greu!

    Și zic, asta nu va afecta nicio viteză... mai degrabă, dimpotrivă, dacă abordați cu gândire crearea site-ului.

    Mai mult, beneficiul transferului unor coduri este evident într-un alt mod, și anume, viteza de încărcare a site-ului nu depinde de numărul de pluginuri active, ci de conținutul acestora! Deci, de ce să nu reduceți fișierul cu funcție, care, după cum am menționat, este încărcat puțin mai târziu...? și, în plus, este un PLUGIN masiv la nivel de șablon cu drepturi depline! Deci, unde merge cea mai mare parte din codul lui?

    În opinia mea, un șablon (activ, de lucru) ar trebui să conțină doar parametri care îl privesc în mod specific.

    o excursie in aritmetica...

    1. este încărcat mai târziu, întrebarea este, de ce să nu-l mutați într-un loc în care se realizează în primul rând procesarea codului și, în consecință, modificările la parametrii de bază WP specificati de administrator vor fi citite mai rapid și procesate la etapa corespunzătoare a site-ului lansa?
    2. oportunitatea notorie și organizarea logică a funcționalității site-ului.
    3. comoditate, care nu este lipsită de importanță!

    În plus, după cum s-a spus, fișierul de funcție este același plugin - voi întreba din nou, de ce să bag totul în el? și în procesul de lucru cu site-ul, confundați-vă într-un document de cod uriaș, greu de citit, care, apropo, este incredibil și nejustificat de umflat cu conținutul său.

    Este mai ușor și mai logic să creați un plugin ușor, să îl configurați și să uitați de el...

    Într-un cuvânt, fiecare decide singur: dacă să-și asculte propria experiență sau părerea autorului unui anumit articol educațional.

    În timp ce ar trebui să studiezi WordPress în biblioteci, dar nu din articole... este posibil să culegi doar cutare sau cutare idee din articole...

    Ceva de genul)

    ...pentru cei interesati:

    Puteți studia toate regulile nucleului (și, apropo, ordinea de încărcare a directoarelor nucleului)) într-un mod minunat în codurile WordPress.

    ...unul dintre următoarele articole va avea doar un astfel de subiect Baedeker! ...și link-uri către pagini utile.


    !..prin abonarea la actualizările site-ului -
    ... sa ne despartim de ignoranta..!

    cum se creează un plugin fișier suplimentar functions.php

    Pluginul în cauză este, desigur, o soluție simplă, dar învățarea ar trebui să înceapă de la bază!

    Mai mult, pentru a atinge obiectivele asumate în articol, nu sunt necesare pluginuri puternice!

    Mergem la panoul de control al găzduirii (sau folosind FTP) și deschidem managerul de fișiere.

    Deschideți folderul de pluginuri și creați un alt director în el (un folder pentru fișierele noastre de plugin). Absolut orice nume, în latină. Am numele „test” ca exemplu.

    Vă rugăm să rețineți că numele pluginului din panoul de administrare va fi același cu cel specificat în antetul de informații Nume plugin: test (vezi comentarii).

    Deschideți folderul creat și creați fișierul plugin principal în el:

    ...cu un nume, spune my-functions.php și adaugă următoarele linii în corpul său (și numele fișierului poate fi absolut orice)

    Rândurile din comentarii sunt informații despre plugin care va apărea în panoul de administrare (meniul pluginuri).

    Imediat după ce creați folderul și fișierul, pluginul dvs. va apărea în panoul de administrare. Uite.

    În calitate de fost, îl puteți activa pentru o perioadă - dar nu se va întâmpla nimic, pluginul este încă inactiv.

    Asta e tot!! A fost creat un plugin simplu și, în mod remarcabil, cu propriile mâini și în beneficiul tău (cum spunea pisica Matroskin).

    În acest moment, cortina spectacolului se coboară...
    ... praf trist cade pe rampe...

    Apropo, iată un film util din seria „fără pluginuri” - aruncați o privire, gândiți-vă dacă codul propus în videoclip ar trebui lăsat în fișierul cu funcții?

    Relativ des, public diverse fragmente pentru WordPress care fac viața mult mai ușoară. Și aproape întotdeauna mă concentrez pe cum să le conectez corect.

    Desigur, este mai ușor și mai obișnuit să mergeți pe calea tradițională și să introduceți pur și simplu fragmentul în fișier funcții.php subiectul tău activ. Dar în 9 din 10 cazuri, va fi mai adecvat și mai corect să plasați codul fragmentului într-un plugin separat. Ca ultimă soluție, adăugați-l la un plugin funcțional special pentru site-ul dvs. T.N. Plugin WordPress specific pentru site, în care vor fi stocate toate funcționalitățile suplimentare ale site-ului dvs.

    De ce este necesar acest lucru?

    Permiteți-mi să vă explic cu un exemplu simplu. Să presupunem că ați dezvoltat un site web cu o structură complexă, o mulțime de tipuri de date personalizate, taxonomii, filtre, meniuri, cu suport pentru un număr mare de câmpuri personalizate și setări de utilizator. Toate personalizările, așa cum se cuvine în acest caz, le-ați plasat în fișier funcții.php. Totul este bine, dar va trece ceva timp și te vei confrunta cu sarcina reproiectării. Veți dori să schimbați sau să dezvoltați o nouă temă. Atunci încep problemele. Deoarece toate funcționalitățile site-ului integrate în vechea temă vor fi dezactivate împreună cu aceasta.

    Cum să fii

    Trebuie să înțelegeți un adevăr simplu. Fișierul cu caracteristicile temei ar trebui să conțină numai caracteristici relevante pentru designul site-ului dvs. Specific pentru subiectul al cărui fișier de funcție este editat. Și toate așa-zise „mecanica”, funcționalitatea de lucru a site-ului și toate personalizările acestuia sunt plasate mai corect în pluginuri. Sau într-un singur plugin. Apoi, când schimbați subiectul, acesta va rămâne neatins.

    Crearea unui plugin personalizat cu funcții WordPress

    De fapt, totul se face foarte simplu.

    • Creați un folder în directorul dvs. de pluginuri WordPress. De exemplu: /wp-content/plugins/mysite-plugin/;
    • Creați un fișier în acest folder, denumindu-l, de exemplu, my-plugin.php;
    • Lipiți următorul cod în acest fișier:
    • Accesați setările de gestionare a pluginurilor și activați-vă noul plugin.

    Titlul, descrierea și comentariile la cod pot fi înlocuite cu propriile tale. Acum puteți plasa toate fragmentele necesare și personalizarea în acest plugin. Fără teama de a pierde funcționalitatea site-ului atunci când tema activă este schimbată din nou.

    Ne putem opri aici, dar nu ar fi în întregime corect din partea mea să nu mai vorbim de așa-zisele. Pluginuri MU.

    Pluginuri MU (Must Use Plugins)

    Pluginurile MU sunt foarte utile în cazurile în care dezactivarea pluginului este inacceptabilă și poate provoca erori critice în funcționarea site-ului. De exemplu, pe site-urile clienților. Pentru a evita acțiunile incorecte ale clientului în consola de gestionare a site-ului.

    Pluginurile MU sunt pluginuri WordPress necesare care sunt instalate într-un director special și sunt întotdeauna active. Pluginurile MU nu sunt afișate în lista generală a pluginurilor site-ului, există o filă separată pentru ele. Ele pot fi dezactivate doar ștergând direct fișierul plugin MU din director.

    Beneficiile pluginurilor MU

    • Pluginurile MU nu trebuie activate, sunt mereu active și nu pot fi dezactivate în consola de gestionare a site-ului;
    • Pluginul MU este conectat și activat prin simpla încărcare a fișierului plugin în directorul mu-plugins;
    • Pluginurile MU sunt încărcate în ordine alfabetică înainte ca pluginurile obișnuite să fie încărcate.

    Vă rugăm să rețineți că subdirectoarele pentru pluginurile MU, spre deosebire de cele obișnuite, nu sunt acceptate. Ca ultimă soluție, puteți crea un plugin și puteți scrie un încărcător simplu în el care va încărca pluginuri din directoare. Ca asta:

    In cele din urma

    După cum puteți vedea, nu este nimic fundamental dificil în utilizarea pluginurilor funcționale. Iar avantajele folosirii lor sunt evidente. Am auzit adesea părerea că pluginurile creează un fel de încărcare incredibilă pe site. Mulți utilizatori au anumite prejudecăți cu privire la pericolele utilizării pluginurilor. Acest lucru nu este în întregime adevărat. Daunele pot fi cauzate de pluginuri greșite, dezvoltate de cineva necunoscut și descărcate de la cineva necunoscut. Optimizare slabă a pluginului, utilizarea funcțiilor PHP și WordPress învechite. Daunele pot veni de la un număr mare de pluginuri care rulează simultan. Mai ales cu funcționalitate duplicat. Este posibil și un conflict banal între pluginuri și pluginuri cu tema. Și cu o abordare competentă și rezonabilă, pluginurile vor aduce beneficii excepționale site-ului dvs.

    Abonează-te la telegrama mea și fii primul care primește materiale noi, inclusiv. care nu sunt pe site.

    În WordPress, de fapt, există 2 abordări diferite pentru a adăuga elemente funcționale la bara laterală sau subsolul unui blog - folosind widget-uri, precum și adăugarea de cod PHP și funcții speciale WordPress la fișierele șablon. Prima opțiune este mai convenabilă pentru utilizatorii fără pregătire tehnică puternică, este foarte clară și simplă, a doua este pentru dezvoltatorii care doresc să gestioneze toate nuanțele informațiilor afișate. Dar uneori apare o sarcină atunci când trebuie să combinați aceste 2 abordări. Cel mai simplu exemplu este atunci când creați un site web pentru un client - acesta ar trebui să primească un panou de administrare funcțional cu câteva opțiuni simple (!) pentru gestionarea proiectului. Nu îi vei prezenta diversele funcții WordPress, ce parametri sunt acolo, cum funcționează, etc. În acest caz, nu vă puteți lipsi de widget-uri.

    Actualizare 19.06.2019: Conform ultimelor date, widget-ul PHP Code nu a fost actualizat de doi ani sau mai mult, așa că, ca alternativă, vă sfătuiesc să acordați atenție celui avansat, care, pe lângă PHP, funcționează cu JavaScript, HTML/CSS și shortcodes - un lucru universal!

    Într-una dintre postările anterioare, am descris deja procesul nu este atât de complicat pe cât ar părea la prima vedere. Deși, în principiu, aproape toate temele WordPress acceptă deja nativ widget-uri. A doua nuanță în această chestiune este că nu toate problemele pot fi rezolvate folosind un set standard de widget-uri care au doar setări de bază - un titlu și câteva opțiuni. În timp ce WP oferă mult mai multe funcționalități, care uneori trebuie utilizate. Luați, de exemplu, widgetul „Postări recente” și comparați-l cu - widgetul vă va permite doar să selectați numărul de linkuri din bloc, fără sortare, design sau tip de arhivă. Widgeturile sunt convenabile, dar oferă adesea puține opțiuni. Ceea ce ajută în această problemă este adăugarea codului PHP direct prin widget-uri folosind pluginul PHP Code Widget.

    Plugin pentru widgetul codului PHP

    Acest plugin adaugă un nou tip de widget la WordPress, care este foarte asemănător cu un bloc de text standard. Se numește Cod PHP. Puteți descărca pluginul, instalarea este standard - copiați fișierul plugin în /wp-content/plugins/, activați-l în panoul de administrare, după care va apărea un nou element pe pagina de widget-uri.

    Pentru a adăuga cod php, pur și simplu trageți widget-ul în locația dorită din panoul widget-ului șablon și scrieți codul php în câmpul de text. Este important să folosiți sintaxa corectă, astfel încât să nu apară erori, iar interpretul să interpreteze codul așa cum ar trebui! După cum puteți vedea, pluginul este extrem de ușor de utilizat, l-am testat pe câteva site-uri, unde funcționează grozav.

    În ceea ce privește pluginul PHP Code Widget, principiul însuși de a adăuga cod prin widget-uri va ajuta utilizatorul să treacă complet la lucrul cu șablonul prin mecanismul widget. Chiar dacă utilizatorul nu este foarte tehnic, procedura de dezactivare sau modificare a anumitor elemente șablon va fi mult mai simplă decât căutarea piesei de cod dorită în fișierele șablon. Folosind această abordare, puteți lucra cu ușurință și cu site-uri de lucru deja create care acceptă widget-uri și unde trebuie să faceți unele modificări. De exemplu, adăugarea de cod sape la WordPress - prin widget-uri utilizatorul va putea înțelege unde și ce este afișat. Sau vi s-a ordonat să dezvoltați unele modificări pe site, iar implementarea lor în fișierele șablon nu este atât de ușor de implementat - să presupunem că există un bloc cu file, unde trebuie să afișați informații într-unul dintre marcaje - este foarte nepotrivit să eliminați pluginurile pentru file, apoi adăugați suportul acestora manual prin șablon și apoi introduceți codul pentru modificările necesare. Este de multe ori mai ușor să instalați pluginul PHP Code Widget și să adăugați informații la file prin intermediul widget-urilor.

    În general, nu putem spune că este întotdeauna nevoie să adăugați cod PHP prin widget-uri, dar uneori poate apărea o astfel de sarcină, după cum puteți vedea. În acest caz, PHP Code Widget va ajuta la rezolvarea tuturor problemelor ușor și rapid. Un modul atât de simplu, dar foarte util.

    P.S. Comandarea de cărți online a devenit și mai ușoară - o librărie online specială are o selecție largă de produse, prețuri accesibile și livrare direct la tine acasă.
    Mecanicii auto din Odesa pot face totul dacă aveți nevoie de demaroare și generatoare auto în Odesa, cumpărați-le sau comandați-le împreună cu instalarea - nicio problemă, contactați Starter.od.ua.

    Salutări, prieteni. Astăzi ne vom da seama cum să facem ca orice cod PHP să funcționeze în widget-uri, articole și pe paginile WordPress. În mod implicit, o astfel de funcție nu este disponibilă în acest CMS și maximul pe care un utilizator se poate baza este implementarea codului HTML.

    De ce codul PHP nu funcționează implicit

    S-ar părea de ce dezvoltatorii nu au recompensat un motor atât de popular și convenabil cu capabilități utile pentru execuția automată a codului PHP. La început m-am gândit la asta, dar am ajuns la concluzia că această politică este urmată din punct de vedere al securității, deoarece utilizarea ineptă a PHP în widget-uri sau în postări poate duce la consecințe ireparabile - ceva se va sparge în baza de date și în întregul site. se va prăbuși.

    Prin urmare, lucrul cu PHP este lăsat în seama programatorilor sau oamenilor mai mult sau mai puțin avansați în această chestiune - orice scripturi sunt executate direct în fișiere.

    Pentru site-urile publice (unde există mai mulți autori), rularea PHP în corpul unui articol crește riscul de sabotaj deliberat, deoarece orice autor poate obține acces deplin la site prin fereastra de editare a articolului.

    În funcție de gradul de pericol, aș împărți toată această situație în 3 niveluri:

    1. Lăsând totul așa cum au intenționat dezvoltatorii, este dificil să deteriorați site-ul în siguranță, accidental sau intenționat.
    2. Permite execuția PHP în widget-uri – nivel mediu de pericol, doar administratorul site-ului are acces.
    3. Folosirea codului peste tot este periculoasă, deoarece oricine are voie să editeze articole și pagini (moderatori, autori) poate gestiona site-ul.

    De ce aveți nevoie de PHP în widget-uri?

    Întrebarea este individuală, deoarece orice poate fi implementat folosind acest limbaj de programare. Personal, am fost solicitat să scriu această postare printr-o comandă de la un client al cărui site îl construiesc în prezent. A fost necesar să afișați în bara laterală într-un widget separat o listă de știri dintr-o categorie - „Știri”. Widgeturile standard WordPress nu au această caracteristică.

    Întrebarea era între găsirea unui plugin cu capabilitățile adecvate sau utilizarea unui cod PHP simplu. Scriptul pentru o astfel de sarcină este foarte mic și nu am vrut să încarc site-ul cu un plugin suplimentar care să nu fie folosit în altă parte.

    În general, permițând PHP să execute, putem rezolva 2 probleme:

    • Înlocuiți unele dintre pluginurile site-ului cu scripturi și în acest fel reduceți sarcina pe găzduire;
    • Implementați funcții pentru care pluginuri nu există încă.

    În prima etapă, voi vorbi despre widget-uri, iar apoi, într-un bloc separat, despre ieșirea codului în conținut.

    Pluginuri PHP în widget-uri

    Avantajul pluginurilor: La schimbarea temei WordPress, funcțiile adăugate șablonului nu sunt perturbate, totul continuă să funcționeze fără a necesita intervenția webmasterului; Cârligele adăugate șablonului la schimbarea temei vor trebui transferate manual pe cel nou.

    În exemplul meu de mai sus, fac un site web pentru un client și dacă acesta dorește să schimbe singur designul, atunci setările făcute prin fișierele functions.php și altele vor dispărea, așa că îl fac cât mai ușor pentru el. pentru a gestiona site-ul, bazându-se pe pluginuri (mai ales în nișa sa traficul este mic și nu va fi prea multă încărcare).

    Widget de cod PHP

    Folosesc acest plugin în munca mea de mult timp se adaugă la lista de widget-uri disponibile, asemănător unui text obișnuit, capabil doar să proceseze PHP pe lângă text și HTML.

    PHP Code Widget este prezent în depozitul oficial WordPress și poate fi găsit cu ușurință după nume. Cum se instalează astfel de pluginuri.

    Nu sunt necesare setări; widgetul va apărea în listă imediat după instalarea și activarea pluginului. Trageți „Codul PHP” în bara laterală și adăugați orice script acolo.

    PHP în widgetul WordPress fără plugin

    În acest caz, vom avea nevoie de un cârlig care să înlocuiască funcția standard care permite widget-ului text WordPress să funcționeze cu o funcție care permite procesarea PHP.

    Acest cârlig este adăugat la fișierul functions.php al temei curente (la sfârșit, înainte de paranteza de închidere?>). După aceasta, nu apar noi opțiuni de widget, așa cum este cazul pluginului, codurile PHP încep să funcționeze în text standard.

    Cod gata:

    Add_filter("widget_text"," text_html_php_widget ",100); funcția text_html_php_widget($text) ( if(strpos($text,"„.$text); $text = ob_get_contents(); ob_end_clean(); ) returnează $text; )

    Prima linie este un filtru care înlocuiește funcția standard text widget cu una nouă de fiecare dată când este numită - text_html_php_widget, iar apoi există o descriere a noii funcție în sine.

    De ce codul PHP în articole și postări WordPress

    În interiorul postărilor, codul PHP executabil este necesar mult mai rar decât în ​​widget-uri, așa că în prima parte a articolului m-am uitat separat la bara laterală, astfel încât să puteți evita conectarea inutilă a funcțiilor potențial periculoase.

    Dar chiar și în postări este nevoie să folosiți scripturi. Cel mai comun exemplu este afișarea unui sitemap fără un plugin. Adevărat, puteți folosi o altă tehnică pentru hartă - faceți un șablon de pagină special (acesta este un subiect separat).

    Odată am avut nevoie de output PHP pentru următorul scop:

    Am facut un site video. Episoadele serialului erau afișate în playlisturi pe sezon, iar sub fiecare playlist al sezonului a fost necesar să afișați o listă de episoade cu un link către pagina dvs. Arată ca o hartă a site-ului, doar mai complicată - concluzia trebuia trasă din liste de secțiuni individuale. A fost posibil să introduceți manual fiecare link folosind codul HTML, dar există câteva sute de episoade și procedura este plictisitoare. Mai mult, dacă a apărut o nouă serie, ar trebui adăugat manual un link către ea - incomod. Așa că am decis să folosesc funcțiile PHP pentru implementare.

    Plugin pentru execuția PHP în conținutul Exec-PHP

    În ciuda faptului că acest plugin nu a fost actualizat de 7 ani, își face treaba perfect. Și l-am ales dintr-un motiv - nu folosește coduri scurte ca concurenții săi, dar face posibilă inserarea de cod pur în postările WordPress, începând cu .

    Pluginul Exec-PHP se află în depozit și este instalat prin meniul din panoul de administrare al motorului.

    Dintre setări, există doar una - permisiunea/interzicerea executării codului într-un widget text, nu există nicio opțiune de a dezactiva lucrul în postări și în pagini, dacă trebuie să îl eliminați, dezactivați pluginul.

    Pentru a introduce cod PHP într-un articol, acesta trebuie să fie comutat în modul HTML (fila Text). Modul vizual va strica codul cel mai probabil.

    Executarea codului PHP în articolele WordPress fără un plugin

    Prin analogie cu widget-urile, putem înlocui pluginul cu o funcție specială care permite executarea scripturilor PHP în conținut. Din păcate, nu am reușit să găsesc o opțiune în care codul să funcționeze automat ca în cazul unui plugin, reacționând la etichete. Necesită utilizarea unui cod scurt. Cunoștințele mele despre PHP nu au fost suficiente pentru a scrie singur funcția necesară, așa că o prezint așa cum este. Lucrul cu un shortcode are un dezavantaj semnificativ care complică munca, îl voi discuta mai jos.

    Cum se utilizează funcția de mai jos

    1. Îl lipim în fișierul functions.php al temei;
    2. La locul potrivit în articol inserăm o construcție - cod executabil fără

    Funcţie:

    /* Rularea php în articole și pagini WordPress: cod */ function start_php($matches)( eval("ob_start();".$matches."$inline_execute_output = ob_get_contents();ob_end_clean();"); return $inline_execute_output ; ) function inline_php($content)( $content = preg_replace_callback("/\(((.|\n)*?)\[\/startphp\]/", "start_php", $content); $content = preg_replace( "/\((.|\n)*?)\[\/startphp\]/", "$1", $conținut ) add_filter("the_content", "inline_php");

    Defect

    Dacă codul PHP inserat conține inserții HTML sau text, nu va funcționa. Orice text sau etichete vor trebui introduse folosind comanda echo, ceea ce nu este întotdeauna convenabil. Adică, codul trebuie să fie pur PHP cu 100 de formate corecte.

    Dreapta

    Echo „Așa va funcționa”;

    Gresit

    Echo „Această linie este corectă”; Nu va funcționa așa

    Nu există o astfel de problemă în plugin-ul Exec-PHP - vor fi executate atât text, cât și HTML, dar toate elementele codului PHP trebuie să fie încadrate în etichetele corespunzătoare.

    Pentru mulți webmasteri, subiectul descris în acest articol deschide posibilități infinite pentru creativitate - puteți implementa ceva ce nu se putea face înainte și, de asemenea, scăpați de o mulțime de plugin-uri, înlocuindu-le cu diferite filtre, funcții și cârlige.