Odgođena utovariva za slike - lijeni dodaci za WordPress. Najbolji način za rješavanje dodataka za PHP aplikaciju Spolini plug PHP

  • 20.06.2020

Funkcijska datoteka - Zabavni asistent u proširenju funkcionalnosti stranice! Zaista, ako se koristi u predviđenu svrhu, međutim, mnogi vlasnici blogova / web lokacija predivno okreću funkcije.php u tim Solonka.

U svakom slučaju, postoje izvedivost i ograničenja (ograničenja, češće logični), pa je, stoga neki izvršni kod, dizajniran za podešavanje parametara WP kernela (ne temu), ispravnije iz predloška ...

Kada je razgovor na modernizaciji funkcionalnosti web stranice, u skladu sa člancima "bez dodataka ..." Svakako savjetujte da se svi blokovi kodova u legendarnim funkcijama. Nije u redu!

Sva čisto tehnička proširenja (ne odnose se na direktno stil predloška) logičnije je za prijenos dodatka koji se organizira za njihovu registraciju.

Kreirajte! A također i strop o prednostima i minusima (KOIM je znatno manje) ...


Članci sektora:

kako kreirati svoj dodatak

u tekstu u nastavku učimo kako kreirati vlastiti dodatak kao što ste ruku: unesite u sve detalje, nijansi. Naučimo šta su i za i protiv (minuse manje !! i radije nije u svim nedostacima, već jedne ili druge izvodljivosti za svakog administratora)

koja je razlika između funkcija.php datoteke s dodatka

Zašto bi se neki kod trebao direktno povezati s funkcionalnošću web mjesta, prebacite na zaseban dodatak?

Datoteka za najviše funkcija, njegov cilj i izgled nije drugačiji od dodatka (jednostavno - dodatak u objektu))! - Njegov glavni zadatak je obogaćivanje korisne funkcionalnosti (aktivnog) predloška.

Na primjer, "Navigacija", gdje je logično, meni gumba ukrašen CSS, respektivno, stil aktivne teme - može biti tačnije za odlazak u korijen predloška.

Koja je korist - podijelite datoteku funkcija u odvajanje datoteka ili zasebnog dodatka?

Na primjer, najnerajnije - jeste li odlučili promijeniti predložak!? ... Kao rezultat - svi funkcionalni razvoj događaja nestat će, jer se čitav koristan kod nalazi u datoteci funkcija (vidio sam takav veličinu datoteke 750 km)

Naravno, možete prenijeti dokumentaciju funkcija na novu temu, ali - šalicu svega, bez uređivanja, koji oduzme puno korisnog vremena, ne može se učiniti: majmun i posao)

I onda:

preuzimanje datoteke stranice

KRATAK: Postupak preuzimanja datoteka kernela web lokacije u našem primjeru je aktivni dodaci za web mjesto (iz mape dodataka) i njihov sadržaj, a zatim Funkcije.php datoteka sa sadržajem obrađuje se. Sve su to milisekunde, a malo je vjerovatno da postoji ozbiljno govori o pobjedi u brzini stranica.

Iako se čini da je jedan od razloga za takvo naloženje učitavanja instaliranih od strane programera u kojima je drugo mjesto dodijeljeno datoteci funkcija (kao vjerojatno Jednostavniji element), samo činjenica široke upotrebe dodataka, često masivni sadržaj ...

Neko uzvikne: još jedan dodatak ...? Teško je!

I kažem, bez brzine neće utjecati ... radije naprotiv, ako je zamišljeno stvoriti web mjesto.

Štaviše, korist od prenosa nekog koda je očigledna u drugoj, naime, brzina učitavanja web lokacije ne ovisi o broju aktivnih dodataka, već iz njihovog sadržaja! Pa zašto ne biste smanjili funkcijsku datoteku koja, kao što je spomenuto, učita se malo kasnije ..? I osim toga, to je punopravni masivni utikač na nivou predloška! Pa gdje je mjesto većine njegovog koda?

Po mom mišljenju, (aktivni, radni) predložak mora sadržavati samo njegove parametre u vezi sa konkretno.

izlet na aritmetiku ...

  1. triti se kasnije, pita se zašto se ne prenose tamo gdje se obrada kodova vrši prije svega, a, odnosno postavljaju administratori parametara WP kernela čitati će brže i obrađene u odgovarajućoj fazi pokretanja web mjesta.
  2. jasnozna izvodljivost i logička organizacija funkcionalnosti web lokacije.
  3. sadržaji koje nisu bitne!

Pored toga, kako je rečeno, datoteka funkcija je isti dodatak, "pitaću ponovo, zašto je sve u njemu u njemu da ga gurne? I u procesu rada sa lokalitetom, u ogromnom, teško je pročitati dokument, koji će, usput, neverovatno i neopravdano baviti svojim sadržajem.

Lakše je i logičnije stvoriti svjetlosni dodatak, postavljen i zaboraviti ...

Ukratko, svi odlučuju: slušati svoje iskustvo ili mišljenje autora nekog člana obuke.

Tada slijedi WordPress biblioteke, ali ne i člancima ... od članaka moguće je crtati samo jednu ideju ...

Nekako tako ovdje

... za one koji su zainteresirani:

ispitajte sva pravila kernela (i, usput, outliniranjem utovarivačkih imenika) može biti predivan u WordPress kodovima.

... u jednom od sljedećih članaka samo takvog Pheakera! ... i veze na korisne stranice.


! .. Potpisivanje na web lokaciji ažuriranja -
... raskid se neznanjem ..!

kako stvoriti dodatak dodatnih funkcija datoteka.php

Objavljeni dodatak, naravno, jednostavno je rješenje, ali studija bi trebala započeti od Azova!

Štaviše, da bi se postigli ciljevi uzeti u članku, ne trebaju moćni dodaci!

Ulazimo u hosting panel domaćina (ili FTP alata) otvorite upravitelj datoteka.

Otvorite mapu dodataka i stvorite drugi direktorij u njoj (mapa za datoteke našeg dodatka). Naziv je apsolutno bilo koji, na latinskom. Imam ime "test" kao primjer.

Imajte na umu da će naziv dodatka za administraciju biti takav koji je napisan u nazivu dodatka: zaglavlje informacija o ispitivanju (vidi komentare).

Otvorite kreiranu mapu i kreirajte datoteku glavnog dodatka u sebi:

... sa naslovom, recite moje funkcije.php i dovedite takve linije svom tijelu (a naziv datoteke može biti apsolutno)

Redovi u komentarima - informacije o dodatku koji će se pojaviti na administrativnom panelu (Plug-in Menu).

Odmah nakon kreiranja mape i datoteke, vaš će dodatak pojaviti na administratoru. Pogledajte.

Kao exe, možete ga aktivirati neko vrijeme - ali ništa se ne događa, dodatak je još uvijek u praznom hodu.

To je sve!! Stvoren je jednostavan dodatak i, zapažen, sa vlastitim rukama za vlastitu upotrebu (kao što je Matroonova mačka koja se koristila).

Na ovoj zavedi prezentacije se spušta ...
... Rampe Prašina SAD ...

Ali usput, koristan kino iz TV serije "Bez dodataka" - pogledajte, mislite, mislite da li je kôd predložen u video kodu u datoteci funkcija ??

Sigurno, više puta nailazite na to što morate dodati dio koda za svoju web mjesto na WordPress-u da biste dodali novu funkcionalnost. Sada ne govorim ne o skriptama Google analitičara koje umetnete u zaglavlje svog tema. Ne br. Ja sam onim malim fragmentima koda koji ste na forumima našli na internetu i odmah potrčali da biste ih dodali u vašu datoteku funkcije.php..

Budimo iskreni, jer ste barem jednom učinili, zar ne? A to je razumljivo, jer je napisano na forumu - dodajte ovaj kod u funkcije.php svoju temu na WordPress-u.

Istina je da dodajte svaki pronađeni kod Interneta u Funkcije.php - ne uvijek dobra ideja. Sigurnija odluka kreirat će vaš prilagođeni mini dodatak s ovim kodom.

U ovoj lekciji ćemo reći, u kojim slučajevima možete dodati kôd na funkcije.php i u kojem je bolje koristiti zaseban dodatak. Takođe prikazujemo kako možete kreirati prilagođeni dodatak i dodati svoj kôd na njega.

Šta su funkcije.php.

Ako ste se ikada popeli na datoteke vašeg WordPress stranice, mogli biste se spotaknuti u nekoliko datoteka Funkcions.php. Functions.php datoteka, o kojoj ćemo razgovarati u ovoj lekciji su u mapi: WP-Contenthemesbach_MemFunctions.php.

Očito je da je ovo sama datoteka koja pohranjuje sve funkcije i postavke za vašu određenu temu, trenutno aktivno. Obratite pažnju na riječ "aktivna", jer će u ovome i tu će biti glavna poruka ove lekcije.

Zašto uvijek koristite funkcije.php je loša ideja

Ne razumite pogrešno, koristite funkcije.php za male komade koda u nekoliko redaka - ovo je potpuno normalna situacija. Govorimo o tome da li je neželjeno koristiti funkcije.php kao skladište za apsolutno sav kôd koji ste dodali. Ovo nije univerzalno rješenje za bilo koju situaciju.

Uzrok №1.

Ako se za vaš dizajn prikaže ažuriranje, izgubit ćete sve što dodate u datoteku funkcija.php. Znam šta ste samo mislili - ali je li to samo za takve situacije?

Naravno, imati. Ali postoje i mnogi ljudi koji nemaju pojma šta je kćerka tema. Ili su ljudi koji su se okrenuli za vas da bi pomogla dodavanju komada koda u njihovu temu.

Stoga je taj razlog na ovoj listi. Ako dodate kôd na funkcije.php bez upotrebe podružnice, ovo je vaše prvo alarmantno zvono.

Uzrok br. 2.

Čak i ako ste pravilno postavili i koristite podružnicu. Šta se događa ako želite ići na drugu temu dizajna? Nadam se da ste dodali komentar na svaku promjenu u vašim funkcijama.php datotekom, jer bez ovoga prelazak na drugu temu bit će izuzetno bolna. Mislim da ste uhvatili misao.

Uzrok broj 3.

Ako ste dodali kôd na funkcije.php, što je potpuno neočekivano slomilo vašu web lokaciju, a vidite prazan bijeli ekran - trebat će vam FTP klijent za preuzimanje "pokvarenih" funkcija.php, uredite ga i preuzimanje na web mjesto. Zadovoljstvo je sama.

Kada možete koristiti funkcije.php

Pravilna upotreba funkcija.php za podružnicu, aktivna je trenutno aktivna opcija. Ali zapamtite, fokusirao sam se na ovu riječ " aktivan"?

Ako dodate dijelove koda koji će imati smisla posebno raditi s ovom temom, tada možete sigurno koristiti funkcije.php (u podružnici). Evo nekoliko primjera kada će biti prikladno:

  • Dodavanje druge datoteke u stilu (.css) za vašu temu
  • Promjena dužine najave snimanja (poštanski izlomak) tako da web lokacija izgleda bolje
  • Dodavanje prilagođenih fontova za trenutnu temu
  • Dodavanje datoteke lokalizacije za prevođenje trenutne teme

Drugim riječima, svaki put kada dodate ili promijenite nešto povezano sa određenom trenutnom temom, možete sigurno koristiti funkcije.php.

Kad je bolje učiniti bez funkcija.php

Koristite funkcije.php da biste dodali više globalnih stvari i funkcija koje teoretski može doći dobro i za drugu temu - ovo je loša ideja.

Evo nekoliko primjera kada je bolje učiniti bez funkcija.php:

  • Stvaranje prilagođenih widgeta koje ćete često koristiti
  • Stvaranje prilagođenih kratkih boja
  • Dodavanje koda koji ne ovisi o temi registracije (Google Analytics Code itd.)

U takvim je slučajevima bolje sačuvati ovaj kôd bez obzira na vašu dizajnersku temu. I to možete učiniti sa prilagođenim dodacima.

Jeste li sada mislili - slomite glavu preko stvaranja dodatka kada možete urediti funkcije.php? Previše je teško! Vjerujte mi, nije. To se radi vrlo lako i brzo.

Kako postaviti prilagođeni dodatak umjesto funkcija.php

Da biste stvorili svoj prilagođeni dodatak za pohranu vašeg koda, trebate:

  1. Kreirajte tekstualnu datoteku sa svojim kodom i sačuvajte je kao .fp datoteku
  2. Paket primljen.php datoteka v.zip arhiva
  3. Postavite ovu arhivu kao redovan WordPress dodatak u meniju Dodaci → Dodaj novu

To je sve, samo 3 akcije.

Korak 1. Kreiranje.php datoteka sa svojim kodom

Otvorite Notepad na računaru i umetnite sljedeći tekst:

Naravno, možete koristiti svoje ime za dodatak na liniji naziva dodataka:

Spremite datoteku i dajte je neka vrsta jedinstvenog imena tako da Wordpress ne zbunjuje vaš dodatak s već instaliranim. Na primjer: WPCAFE-Custom-funkcije.php.

Da, ne zaboravite kada sačuvate da biste odabrali vrstu datoteka "Sve datoteke" i dodajte ekstenziju.php:

Korak 2. Kreirajte.zip arhivu

Mislim da ovdje nema objašnjenja. Samo stvorite.zip arhivu sa svojom prikladnom arhiverom.

Korak 3. Instalirajte kao običan dodatak

Najjednostavniji dio. Samo idi na Wordpress Adminka u Dodaci → Dodaj novu I preuzmite svoju arhivu kao najobičniji dodatak.

Čim ga aktivirate, možete vidjeti svoj novi dodatak na listi svih ostalih instaliranih dodataka:

Kako dodati svoj kod

Da biste dodali fragment vašeg koda, jednostavno ga umetnite u datoteku.php koju ste kreirali. Ili uvijek možete napraviti još jedan odvojeni dodatak za dvije različite funkcije.

Na primjer, ovo će izgledati kao vaš file.php, ako želite napraviti kratki kôd "Hello World!":

Ovi komentari ne utječu na performanse vašeg koda i brzinu dodatka. Ali bit ćete lakše navigirati s njima i zapamtiti da čini svaku osobinu koju ste dodali.

Samo omotajte svoj komentar u sintaksu iz kosi i zvjezdica: /* Vaš komentar */

Nakon izmjene u vašem kodu, možete ponovo pokrenuti datoteku.php datoteke putem FTP-a ili jednostavno stvorite novu arhivu i preuzmite kao novi dodatak i izbrišite staro.

Ostali načini izbjegavanja Edkes.php

Po i velikim, ako ste sigurni u svoje sposobnosti i znate kako dodati kod u funkcijama.php, ne biste trebali imati poteškoća i sa prilagođenim dodacima. Ovdje nije ništa komplicirano.

Ali dobro razumijemo, ako nemate želju za ubrzavanjem sa svim tim ručno. Ipak, to je WordPress. Stoga možete koristiti besplatni dodatak za isječak koda, što olakšava dodatni kod na web mjesto:

Uz ovaj dodatak možete dodati različite isječke sa kodom, dajte im ime, opis, aktivirajte i odspojite selektivno jedan ili drugi kôd isječaka.

Još jedna cool funkcija je da možete uvesti / izvesti svoje fragmente koda između web lokacija.

Rezultati

Ovo se može činiti beznačajnom sitnicom, ali ispravna lokacija vašeg dodatnog koda omogućit će vam prebacivanje između drugih tema dizajna bez ikakvih problema. Takođe možete uključiti ili isključiti jednu funkcionalnost pojedinačno ako podijelite svaku dodatnu funkciju između pojedinih dodataka.

Dakle, ova metoda zaista zaslužuje pažnju.

cMS MySQL (4)

Pokušavam stvoriti osnovni dodarni sistem, sličan onome što često nalazite u CMS-u, poput WordPress-a. Imate priključuju mapu koja se vezuje za glavni sistem sustava pomoću obavijesti o događaji S. Korištenje predloška dizajna Promatrač. ili Događaj .

Problem je u tome što sistem ne može znati kakve događaje Dodatak želi djelovati - stoga bi sustav trebao učitati svaki dodatak za svaki zahtjev za stranu da biste saznali da li je ovaj dodatak zaista potreban u nekom trenutku. Nepotrebno je, da li je uloženo puno resursa - u slučaju WordPress-a koji dodaje nekoliko dodatnih MB memorije za svaki zahtjev!

Postoje li alternativni načini za to?

Na primjer, postoji li način da se sve ovo jednom preuzme, a zatim keširate rezultate tako da vaš sistem zna koliko dodaci za lijenu čizmu? Drugim riječima, sustav učitava konfiguracijsku datoteku u kojoj su svi događaji naznačeni da se dodatak želi vezati, a zatim ih sprema u APC ili nešto za buduće zahtjeve?

Ako također radi loše, možda postoji posebna struktura datoteka koja se može koristiti za prikupljanje razumnih pretpostavki o tome kada neki dodaci nisu potrebni za izvršavanje upita.

Odgovori.

Imam alat za upravljanje plug-in, ali ga koristim samo s proceduralnim dodacima i sa svim uključenim se obično učitavaju odmah. Ali za API, na osnovu događaja i lijenog preuzimanja, mogao bih pošaliti male omote za kontrolu dodataka i pribjegavajući automatskom učitavanju za stvarna proširenja.

/ ** * API: WHALI * Verzija: 0,1 * Naslov: Primjer dodataka * Opis: ... * CONFIG: * Zavisi: ostaloPlugin * / $ dodaci ["title_event"] \u003d "Tituleventclass"; $ dodaci ["sekundarni"] \u003d Array ("Class2", "povratni poziv"); ?\u003e

U ovom primjeru pretpostavljam da je plug-in API jednostavan popis. Ovaj primer značajnog Plugin-123.php skripta ne radi ništa osim dodavanja nizu prilikom učitavanja. Dakle, čak i ako imate desetak priključnih funkcija, to će dovesti samo do dodatnog uključenog_once na svaki.

Ali glavna aplikacija / ili utikač API umjesto toga jednostavno stvori slučajeve navedenih klasa (ili novi $ EventCB; za RAW-Call_User_Func_array ili call_user_func_array za povratne pozive). Zauzvrat će to dovesti do tereta stvarnog zadatka automatskog utovarivača. Stoga imate dvostruki sistem, gdje jedan deo kontrolira listu, drugi je pravi kôd.

Dakle, i dalje zamišljam jednostavan config.php koji jednostavno navodi dodatke i postavke ovako:

"Korisnik / wrapper-for-htmlpurifier.php"); $ CFG ["Prilično"] \u003d 1;

Ponovo, uzimajući u obzir da su to samo scenariji školjke / podataka, s opisom dodatka za kontroličnost. Možete koristiti i stvarni registar_even () api i definirati dodatnu funkciju omotača u svakom. Ali popis imena klase izgleda kao najjednostavnija opcija.

Spomenuti upravljački alat izgleda zahrđalo i ružno: http://milki.include-once.org/genericplugins/
Ali ne koristi se ako vam treba samo popis (SQL tablica) i upravljanje postavki. Ovi režijski troškovi namijenjeni su samo prekrasnim ispis metapodataka za utikač i spremanje config.php čitljivo.

Konačno:

sPL_AutoLoad () incel_path i jednostavan događaj-\u003e Registar klasičnog imena, jedna skripta-školjka svaka, samo se sve uključuje.

Sačuvao bih ime klase dodataka zajedno sa svojim potpisanim događajima u konfiguracijskoj datoteci, a zatim je spremio analizirani konfiguracijski datoteku u APC, na primjer. Zatim, kada događaj započne, sustav može lijepiti za učitavanje odgovarajućih klasa dodataka po potrebi.

WordPress i drugi CMS sistemi su vrlo loši primjeri.

Moramo shvatiti da je modularni, gotovo uvijek znači da je teže.

Najbolja shema s kojom sam ikad radio na rješavanju ove situacije je dodatak na bazi klase, sa strogim ugovorom o imenu pomoću automatskog utovarivača.

Dakle, prije upotrebe dodatka morate kreirati instancu ili koristiti statičke funkcije.

Možete čak i nazvati dodatak:

npr.:

"/plugins/($sparts)/($parts).php"); Prekid; ) // ...)?\u003e

Što se tiče događaja:

Morate statički ovaj događaj registrirati kako biste izbjegli dinamičnu promjenu.

Baza podataka će biti pravo mjesto za to. Možete imati događaje i instalirati () i deinstaliranje () metode u klasu dodatka da biste dodali određene događaje ili vezivanje na druge događaje. Ovo je jedan upit u bazu podataka, a ako želite dobiti više od toga, dodajte ga u Memcached ili u ravnu ini datoteku.

Dobro funkcionira za mene. Tako sam uspio dobiti teški sustav koji je potrošio 8 MB da bi zatražio pad do 1 MB, s potpuno istim popisom funkcija, bez prethodne keširanja. Sada možemo dodati više funkcija i održavati sistem "čisti"

nadam se da će ovo pomoći

Najbolji je način početi kodiranje s njima. Predlošci dizajna odličan su koncept koji je teško primijeniti, samo ih čitati. Uzmite nekoliko primjera implementacija koje pronađete na Internetu i stvorite oko njih.

Odličan resurs je stranica "podataka i objekta". Pregledavaju obrasce i daju vam i konceptualni i stvarni primjeri. Njihov referentni materijal je takođe divan.

Ovo je glavna datoteka u vašoj WordPress temi. Smješten u / WP-sadržajima / temama / (ovdje je naziv vaše teme) /Functions.php.
Definiše važna svojstva teme, kuke, izgled i njegovu funkcionalnost prilagođeni su, a neke su funkcije koje su vam potrebne dodane. Ova se datoteka učitava svaki put kada otvorite bilo koju WordPress stranicu, tako da možete promijeniti bilo koji element stranice s njim. U tom pogledu, mnogi savjeti a la " kako promijeniti nešto u WordPress-u bez dodataka »Često se tiču \u200b\u200btačno unošenja promjena u funkcijama.php, umjesto da kreirate zasebni dodatak u ovu funkcionalnost ili koristite gotovi otopinu. Često to dovodi do preopterećenja informacija ove datoteke, kôd postaje teško rastaviti, a još je teže napraviti ispravke. Ali ovo nije najopasnije. Najopasnije je to kada se anketa promijeni, dio ili sva potrebna funkcionalnost web mjesta nestat će.

Koja je razlika između funkcija.php iz dodatka

. U suštini, funkcije.php je vrsta globalnog necizivnog dodatka, koji je vezan za trenutnu temu. Kao što se povezuje sa WordPress-om, možete vidjeti wp-sats.php. Kao što se može vidjeti iz izvornog koda, njegovo preuzimanje dolazi nakon svih dodataka, međutim, to ne daje nikakve nedostatke ili prednosti, osim mogućnosti prevlačenja nečega u priključenim dodacima. Za brzinu koda, neće utjecati na bilo koga. Samo sadržaj dodataka i funkcija.php utiče. Stoga budite oprezni pri odabiru aktivnih dodataka za svoju temu i odustajte od nepotrebnog, nepotrebne vama, onda možete lako olakšati svoju web lokaciju i ubrzati njegov rad.

Kada trebate koristiti funkcije.php

Slijedite sljedeće pravilo: Ako je funkcionalnost izravno povezana sa trenutnom temom, ali ne i sa radom na mjestu, napišite ga na funkcije.php.

Na primjer, to može biti

  • Postavljanje minijature
  • Postavljanje veličina Schidbarov
  • Postavljanje mjesta za widgete
  • Najava mjesta za navigacijski meni
  • Postavke teme
  • Dodatne karakteristike vaše teme

Kada izbjeći korištenje funkcija.php

Ako funkcionalnost treba raditi čak i s promjenom aktivne teme, vrijedi se brinuti o njegovoj predaji na zaseban dodatak.
To se može pripisati:

  • Definicija šaltera za pohađanje (Google Analytiys, Yandex.Metrika, LiveInternet)
  • Podesite dodatnu administrativnu funkcionalnost (na primjer,)
  • Konfiguriranje izvornog koda ()
  • Definicija kratkodoga
  • provjeri

Nepotpune liste, možete sami definirati svoj sadržaj za sebe.

Gdje napraviti ovaj kod, ako ne u funkcijama.php? Međutim, posebne dodatke možete napisati, međutim, postoji način zanimljivijeg i lakših.

mu-dodaci kao alternativa funkcijama.php

Za nas u modernoj verziji WordPress-a iz WordPress-a (Multi-korisnik) došlo je zanimljiva funkcionalnost, pozvana Mu dodaci.. Njegova suština bila je sljedeća. Administrator WordPress MU ponekad potreban za definiranje dodataka za cijelu mrežu web lokacija. Nije bilo moguće postići uobičajena funkcionalnost, pa su uveli poseban odjeljak: / WP-sadržaj / mu-dodaci /, gdje su bili odlučni. Još jedna zanimljiva, dodaci datoteka iz ovog direktorija učitavaju se prije svih ostalih, što omogućava unaprijed određene konstante ili postavke.
Kasnije je WPMU ukinuo, njegov kôd integriran je sa glavnim blogom, a sada bilo koji WordPress može koristiti funkcionalnost Mu-dodataka, što je sada dešifrirano kao Mora se koristiti., odnosno obavezno za upotrebu.

Kako koristiti Mu-Plugins

Prvo morate stvoriti poseban odjeljak / WP-sadržaj / mu-pugins /
U njemu postavljamo željene datoteke sa utikačem. Za razliku od konvencionalnih dodataka, nije potrebno izdržati posebnu sintaksu, a funkcionalnost se može direktno objaviti

Ovdje na primjer, datoteka je stvorena kod kodeksa brojača pohađanja.
Unutar ove datoteke izgleda ovako

// ... umjesto ove linije, umetnite kod brojača ...

Na administratoru će izgledati kao Potreban

8 odgovora

Možete koristiti promatrački predložak. Jednostavan funkcionalni način za izvođenje ovoga:

Izlaz:

Ovo je moja luda aplikacija 4 + 5 \u003d 9 4 * 5 \u003d 20

Napomene:

U ovom primjeru, izvorni kod morate proglasiti sve svoje dodatke prije stvarnog izvornog koda koji želite proširiti. Uključio sam primjer kako podnijeti jednu ili više vrijednosti koje je dodatak prenio. Najteži dio toga je napisati stvarnu dokumentaciju, koji su navedeni koji se argumenti prenose na svaku kuku.

Ovo je samo jedan način za stvaranje plug-in sistema u PHP-u. Postoje najbolje alternative, predlažem vam da se upoznate sa WordPress dokumentacijom za više informacija.

Izvinite, čini se da su podvlake zamijenjeni HTML Objavenim objektima? Mogu ponovo objaviti ovaj kod kada će se ta greška popraviti.

Uredi: Nevermind, pojavljuje se samo kad uređuješ

Dakle, recimo, ne treba vam obrazac posmatrača, jer zahtijeva da promijenite metode klase da biste riješili zadatak slušanja i želite dobiti nešto zajedničko. I recimo da ne želite da koristite proširene nasljeđe, jer već možete naslijediti na razred iz neke druge klase. Bilo bi lijepo imati opći način da se bilo koja nastava povezana bez mnogo napora? Evo kako:

_Class \u003d get_class (& $ povratak); $ ovo -\u003e _ odavanje \u003d $ povratak; ) Javna funkcija __set ($ sproperty, pomiješana) ($ splegin \u003d $ ovo -\u003e _ klasa. "_Setevent"; ako (IS_Callable ($ splegin \u003d call_user_func_array ($ splegin) $ Mješovito);) $ ovo -\u003e _ POVRATAK \u003d $ SPROPETY \u003d $ Mješoviti;) Javna funkcija __get ($ sproperty) ($ asitems \u003d (VASPOOBECT; $ Mješoviti \u003d $ asilems [$ sproperty] ; $ SPLUGIN \u003d $ ovo -\u003e _ klasa. "_". $ Sproperty. "_GetEvent"; ako (IS_Callable ($ splegin)) ($ Mješanac \u003d Call_User_Func_array ($ splegin, $ mešovita);) povratak $ pomiješano;) javno Funkcija __Call ($ smithod, $ Mješoviti) ($ SPLUGIN \u003d $ ovo -\u003e _ klasa. "_". $ smithod "; ako (IS_Callable ($ splegin \u003d call_user_func_array ($ splegin, $ pomiješana );) ako ($ miješa! \u003d "block_event") (Call_User_Func_array (niz (& $ -\u003e _ refoobject, $ smithod), $ pomiješano); $ ovo - _ ". $ smethod. "_Afterevent"; ako (IS_Callable ($ splegin)) (Call_user_func_array ($ splegin, $ mešovito);)))) // kraj Clas dodatak Cluggeble Produži dodatak () // krajnje klase pl uggable ////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////// // IME \u003d ""; Javna funkcija kora (i $ show) (echo "$ show
\\ n ";) javna funkcija govori () (eho"
\\ Nmy ime je: ". $ Ovo-\u003e ime."
\\ n ";)) // krajnji pas $ pas \u003d novi pas (); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////// $ pwog \u003d novi dodatak ($ \u200b\u200bpas); funkcija dog_bark_beforeevent (& $ miješani) ($ miješani) ($ miješani \u003d "woof"; // prevladavajući "miow" sa "woof" / / $ Mixed \u003d "block_event"; // Ako želite blokirati povratak događaja $ Mješoviti;) Funkcija dog_bark_afterevent (& $ Mješoviti) (Echo $ Mješoviti) Funkcija Dog_name_setevent (& $Med \u003d "Koč" "FIDO" Povratak $ Povratak $ Mješoviti;) Funkcija Dog_name_getevent (& $ Mješoviti) ($ Mješoviti \u003d "različit"; // prevladavanje "po povratku $ pomiješanog;) / /////////////// // ////////////////////// / $ PDOG-\u003e Naziv \u003d "FIDO"; $ PDOG-\u003e Kora ("meow"); $ pdog-\u003e sayname (); echo "Moje novo ime je:". $ Pdog-\u003e naziv;

U prvom dijelu, da možete omogućiti pozivu zahtjeva_once () na vrhu vašeg PHP skripte. Učitava časove da učine nešto povezano.

U dijelu 2, gdje preuzimamo klasu. Bilješka. Nisam trebao raditi ništa posebno za klasu, što se značajno razlikuje od promatračkog predloška.

U dijelu 3, gdje prebacimo našu klasu na "povezani" (I.E., podržavamo dodatke koji nam omogućavaju da nadvladamo metode i svojstva klase). Dakle, na primjer, ako imate web aplikaciju, možete imati registar dodataka i možete aktivirati dodatke ovdje. Napomena takođe na funkciji Dog_bark_Beforeevent (). Ako sam instalirao $ miješa \u003d "Block_event" ispred operatora povratka, blokirat će psa iz Laya i blokira dog_bark_afterevent, jer neće biti događaja.

U dijelu 4, da je normalan radni kod, ali imajte na umu da ono što možda pomislite neće raditi. Na primjer, pas ga ne izjavljuje s imenom "FIDO", ali "COCO". Pas ne kaže "meow", ali "vrijedi". A kad kasnije želite vidjeti ime psa, pronaći ćete da je to "drugačije", a ne "coco". Sva ova poništavanja predstavljena su u 3. dijelu.

Pa kako to radi? Pa, neka isključuju eval () (za koju svi kažu "zli") i isključuju da ovo nije posmatrač. Dakle, način na koji se radi je skrivena prazna klasa koja se zove priključna, koja ne sadrži metode i svojstva koju koristi klasa psa. Dakle, kao što se to događa, čarobne metode će biti uključene za nas. Stoga, u dijelovima 3 i 4 komuniciramo s objektom dobivenim iz klasne dodatne, a ne sa samom pseće klase. Umjesto toga, dopuštamo da klasa dodatka "dodiruje" objekt zag psa za nas. (Ako je ovo neka vrsta dizajna koji ne znam - javite mi.)

Način kuke i slušatelja najčešće se koristi, ali postoje i druge stvari koje možete učiniti. Ovisno o veličini vaše aplikacije i ko želi vidjeti kôd (to će biti scenarij fous ili nešto u kući) će uvelike utjecati na način na koji želite riješiti dodatke.

kdeloach ima ugodan primjer, ali njegova primjena i funkcija kuka su malo nesigurnih. Zamolio bih vas da date više informacija o karakteru PHP aplikacija za vaše pismo i kako vidite dodatke.

1 do kdeloaca od mene.

Evo pristupa koji sam koristio je pokušaj kopiranja iz QT signala / utora iz QT mehanizma, svojevrsni promatrački predložak. Predmeti mogu emitirati signale. Svaki signal ima identifikator u sustavu - sastoji se od lične karte + pošiljatelja objekta. Svaki signal može biti vezan za prijemnik, koji se jednostavno "naziva", koristite klasu guma za prijenos signala za prijenos svakog kojih se zanimaju Kad se nešto dogodi, pošaljete signal. Ispod je primjer i primjer implementacije.

ulogovati se (); ?\u003e

Vjerujem da je najlakši način slijediti Jeffov savjet i pogledati postojeći kod. Pokušajte vidjeti WordPress, Drupal, Joomla i druge poznate PHP-CMS da biste vidjeli šta njihovi API sučelji izgledaju i osjećaju. Dakle, možete čak dobiti i ideje koje možda niste pomislili prije nego što stvari učini malo debljijim.

Direktniji odgovor bi bio za pisanje zajedničkih datoteka koje bi bili uključeni u datoteku Uključivanja za pružanje jednostavnosti upotrebe. Bit će podijeljen u kategorije i nije pružena u istom "kuka.php" masivnom datoteku. Budite oprezni jer ono što završava je da datoteke koje uključuju u konačnici imaju sve više ovisnosti i funkcionalnosti. Pokušajte ograničiti API API. I.E manje datoteka za njihovo uključivanje.

Pozvan je uredan projekat