Kupakia picha ya kupakia - Plugins ya mzigo wa wavivu kwa WordPress. Njia bora ya kutatua Plugins kwa PHP Plugin Sluggish Plugin Plugin

  • 20.06.2020

Faili ya kazi - msaidizi wa burudani katika kupanua utendaji wa tovuti! Hakika, ikiwa hutumiwa kwa madhumuni yake, hata hivyo, wamiliki wengi wa blogu / tovuti hugeuka kazi.php kwa timu ya Solonka.

Kwa hali yoyote, kuna uwezekano na upungufu (mapungufu, mara nyingi zaidi ya mantiki), na kwa hiyo kanuni fulani inayoweza kutekelezwa, iliyoundwa kurekebisha vigezo vya Kernel ya WP (sio mada), zaidi kwa usahihi nje ya template ...

Wakati mazungumzo ni juu ya kisasa ya utendaji wa tovuti, katika mstari wa makala "bila Plugins ..." hakika ushauri wa shove code zote vitalu katika kazi ya hadithi.php. Sio sahihi!

Upanuzi wote wa kiufundi (sio kuhusiana na template ya mtindo wa moja kwa moja) ni mantiki zaidi kuhamisha kuziba iliyopangwa kwa usajili wao.

Unda! Na pia dari juu ya faida na minuses (Koim ni chini sana) ...


Sehemu za Sehemu:

jinsi ya kuunda Plugin yako

katika maandiko hapa chini, tunajifunza jinsi ya kuunda Plugin yako kama unavyo mkono: Kufanya katika maelezo yote, nuances. Tunajifunza nini faida na hasara (minuses ni chini! Na badala yake, sio hasa na hasara, lakini uwezekano mmoja kwa kila msimamizi)

ni tofauti gani kati ya faili ya kazi.php kutoka kwa Plugin

Kwa nini msimbo fulani unapaswa kuhusishwa moja kwa moja kwenye utendaji wa tovuti, uhamishe kwenye Plugin tofauti?

Faili ya kazi zaidi, lengo lake na kuonekana sio tofauti na Plugin (tu - Plugin katika somo))! - Kazi yake kuu ni kuimarisha utendaji muhimu (Active) template.

Kwa mfano, "urambazaji", ambapo kimantiki, orodha ya vifungo ni kupambwa CSS, kwa mtiririko huo, mtindo wa mandhari ya kazi - inaweza kuwa sahihi zaidi kuondoka kwenye mizizi ya template.

Je, ni faida gani - imegawanya faili ya kazi kwa faili tofauti au Plugin tofauti?

Kwa mfano, banal wengi - umeamua kubadilisha template!? ... Matokeo yake - maendeleo yote ya kazi yatatoweka, kwa sababu msimbo mzima muhimu iko katika faili ya kazi (niliona ukubwa wa faili 750klo)

Bila shaka, unaweza kuhamisha nyaraka za kazi kwenye mada mpya, lakini - kikombe cha kila kitu, bila hariri, ambayo huchukua muda mwingi, hauwezi kufanya: tumbili na kazi)

Na kisha:

faili ya faili ya Download.

Muhtasari: Utaratibu wa kupakua faili za kernel kwenye mfano wetu ni Plugins ya tovuti ya kazi (kutoka kwenye folda ya Plugins) na maudhui yao, na kisha faili ya kazi.php na maudhui yanachukuliwa. Yote ni milliseconds, na haiwezekani kuwa kuna kuzungumza kwa umakini juu ya kushinda kasi ya kurasa.

Ingawa inaonekana kwamba moja ya sababu za mpangilio wa upakiaji imewekwa na watengenezaji ambapo nafasi ya pili inapewa faili ya kazi (kama labda Kipengele cha urahisi zaidi), tu ukweli wa matumizi makubwa ya Plugins, mara nyingi maudhui makubwa ...

Mtu akisema: Plugin nyingine ...? ni vigumu!

Nami nasema, kwa maana hakuna kasi haitaathiri ... Badala yake, kinyume chake, ikiwa ni busara kuunda tovuti.

Aidha, faida ya uhamisho wa msimbo fulani ni dhahiri kwa upande mwingine, yaani, kasi ya kupakia tovuti inategemea idadi ya kuziba kazi, lakini kutoka kwa yaliyomo! Kwa nini usipunguze faili ya kazi ambayo, kama ilivyoelezwa, imewekwa baadaye baadaye ..? Na zaidi ya hayo, ni ngazi kamili ya template ya kuziba! Basi wapi mahali pa kanuni zake nyingi?

Kwa maoni yangu, (kazi, kazi) template lazima iwe na vigezo vyake tu kuhusu mahsusi.

excursion kwa hesabu ...

  1. imewekwa baadaye, inaulizwa kwa nini usihamisha ambapo usindikaji wa msimbo unafanywa hasa, na kwa mtiririko huo, uliowekwa na watendaji wa vigezo vya WP Kernel utaisoma kwa kasi na kusindika katika hatua inayofanana ya startup ya tovuti.
  2. uwezekano usiojulikana na shirika la mantiki la utendaji wa tovuti.
  3. huduma zisizo muhimu!

Kwa kuongeza, kama ilivyosema, faili ya kazi ni Plugin sawa, "Nitaomba tena, kwa nini kila kitu kilicho ndani yake kumfukuza? Na katika mchakato wa kufanya kazi na tovuti, kuchanganyikiwa kwa kubwa, vigumu kusoma hati, ambayo, kwa njia, ni ya ajabu na isiyo ya haki itashughulika na maudhui yake.

Ni rahisi na zaidi ya mantiki ili kuunda Plugin ya Mwanga, kuanzisha na kusahau ...

Kwa kifupi, kila mtu anaamua: kusikiliza uzoefu wake, au kwa maoni ya mwandishi wa makala fulani ya mafunzo.

Kisha inafuata maktaba ya WordPress, lakini si kwa makala ... kutoka kwa makala inawezekana kuteka wazo moja tu ...

Kwa namna fulani hivyo hapa s)

... Kwa wale ambao wana nia:

kuchunguza sheria zote za kernel (na, kwa njia, kuelezea kwa directories ya upakiaji) inaweza kuwa ya ajabu katika nambari za WordPress.

... Katika moja ya makala zifuatazo tu pheaker! ... na viungo kwa kurasa muhimu.


! .. Kujiandikisha kwenye tovuti ya updates -
... kuvunja na ujinga ..!

jinsi ya kuunda Plugin ya kazi ya ziada ya faili.php

Plug-in iliyowekwa, bila shaka, ni suluhisho rahisi, lakini utafiti unapaswa kuanza kutoka Azov!

Aidha, kufikia malengo yaliyochukuliwa katika makala hiyo, hakuna Plugins yenye nguvu haifai!

Tunakwenda kwenye jopo la mwenyeji wa mwenyeji (au zana za FTP) kufungua meneja wa faili.

Fungua folda ya Plugins na uunda saraka nyingine ndani yake (folda ya faili za Plugin yetu). Jina ni yoyote kabisa, katika Kilatini. Nina jina "mtihani" kama mfano.

Tafadhali kumbuka kuwa jina la admin la kuziba litakuwa hivyo ambalo limeandikwa katika jina la Plugin: kichwa cha habari cha mtihani (angalia maoni).

Fungua folda iliyoundwa na uunda faili ya Plugin ya Mwalimu ndani yake:

... na kichwa, sema kazi yangu.php na kuleta mistari kama hiyo kwa mwili wake (na jina la faili inaweza kuwa kabisa yoyote)

Rows katika maoni - Taarifa kuhusu Plugin, ambayo itaonekana katika jopo la admin (orodha ya kuziba).

Mara baada ya kuunda folda na faili, Plugin yako itaonekana katika admin. Angalia.

Kama exe, unaweza kuifungua kwa muda - lakini hakuna kinachotokea, Plugin bado haifai.

Ni hayo tu!! Plugin rahisi iliundwa na, inayojulikana, kwa mikono yao wenyewe kwa matumizi yake mwenyewe (kama paka ya Matroskin ilisema).

Katika pazia hili la uwasilishaji huenda chini ...
... ramps vumbi vumbi uongo ...

Lakini kwa njia, na sinema muhimu kutoka kwa mfululizo wa TV "bila Plugins" - tazama, fikiria kama msimbo ulipendekezwa katika msimbo wa video katika faili ya kazi?

Hakika, umepata mara kwa mara kwamba unahitaji kuongeza kipande cha msimbo wa tovuti yako kwenye WordPress ili kuongeza utendaji mpya. Ninasema sasa si kuhusu maandiko ya Wachambuzi wa Google kwamba unaingiza kwenye sehemu ya kichwa cha mada yako. Hapana. Mimi kuhusu vipande vidogo vya kanuni uliyopata kwenye vikao kwenye mtandao na mara moja mbio ili uwaongeze kwenye faili yako kazi.php..

Hebu tuwe waaminifu, kwa sababu wewe angalau mara moja, sawa? Na hii inaeleweka, kwa sababu imeandikwa kwenye jukwaa - ongeza msimbo huu katika kazi.php mada yako kwenye WordPress.

Kweli ni kwamba kuongeza kila internet kupatikana code katika kazi.php - sio wazo lolote. Uamuzi salama utaunda Plugin yako ya desturi mini na msimbo huu.

Katika somo hili, tutasema, katika hali gani unaweza kuongeza msimbo kwa kazi.php, na ambayo ni bora kutumia Plugin tofauti. Pia tunaonyesha jinsi unaweza kuunda kuziba ya desturi na kuongeza msimbo wako.

Ni kazi gani.php.

Ikiwa umewahi kupanda kwenye faili za tovuti yako ya WordPress, unaweza kuanguka katika faili kadhaa za kazi.php. Faili ya kazi.php, ambayo tutazungumzia katika somo hili ni kwenye folda: wp-contramEmesbach_memfunctions.php.

Kwa wazi, hii ndiyo faili sana inayohifadhi kazi zote na mipangilio ya mandhari yako maalum, kazi wakati huu. Jihadharini na neno "kazi", kwa sababu katika hili na kutakuwa na ujumbe kuu wa somo hili.

Kwa nini daima kutumia kazi.php ni wazo mbaya.

Usielewe kwa usahihi, tumia kazi.php kwa vipande vidogo vya msimbo katika mistari michache - hii ni hali ya kawaida kabisa. Tunasema juu ya ikiwa haijulikani kutumia kazi.php kama ghala kwa kabisa kanuni zote ulizoongeza. Hii si suluhisho la kila kitu kwa hali yoyote.

Sababu №1.

Ikiwa sasisho linaonyeshwa kwa mandhari yako ya kubuni, utapoteza kila kitu unachoongeza kwenye faili ya kazi.php. Najua nini ulifikiri tu - lakini ni tu kwa hali kama hizo?

Bila shaka. Lakini pia kuna watu wengi ambao hawajui nini mandhari ya binti ni. Au kuna watu ambao waligeuka kwako kwa msaada kuongeza kipande cha msimbo katika mada yao.

Kwa hiyo, sababu hii ni kwenye orodha hii. Ikiwa unaongeza msimbo wa kazi.php bila kutumia tanzu, hii ndiyo kengele yako ya kwanza ya kutisha.

Sababu # 2.

Hata kama umeweka kwa usahihi na kutumia tanzu. Nini kinatokea ikiwa unataka kwenda kwenye mada nyingine ya kubuni? Natumaini umeongeza maoni juu ya kila mabadiliko katika faili yako ya kazi.php, kwa sababu bila hii, mabadiliko ya mada nyingine itakuwa chungu sana. Nadhani umepata mawazo.

Sababu namba 3.

Ikiwa umeongeza msimbo wa kazi.php, ambayo kabisa bila kutarajia kuvunja tovuti yako kabisa, na unaweza kuona screen nyeupe tupu - unahitaji mteja FTP kupakua "kuharibiwa" kazi.php, hariri na kupakua nyuma kwenye tovuti. Radhi ni mwenyewe.

Wakati unaweza kutumia kazi.php.

Matumizi sahihi ya kazi.php kwa tanzu, kazi kwa sasa ni chaguo lenye kuruhusiwa. Lakini kumbuka, nilikazia neno hili " active."?

Ikiwa unaongeza sehemu za kificho ambazo zitafanya busara tu kufanya kazi na mada hii hasa, basi unaweza kutumia kazi kwa usalama (katika tanzu). Hapa kuna mifano wakati itakuwa sahihi:

  • Kuongeza faili nyingine ya mtindo (.css) kwa mada yako
  • Kubadilisha urefu wa tangazo la kurekodi (post excerpt) ili tovuti inaonekana kuwa bora
  • Inaongeza fonts za desturi kwa mandhari ya sasa.
  • Kuongeza faili ya ujanibishaji ili kutafsiri mandhari ya sasa.

Kwa maneno mengine, kila wakati unapoongeza au kubadilisha kitu kinachohusiana na mada maalum ya sasa, unaweza kutumia kazi kwa usalama.

Wakati ni bora kufanya bila kazi.php.

Tumia kazi.php ili kuongeza mambo zaidi ya kimataifa na kazi ambazo wewe kinadharia unaweza kuja kwa manufaa na kwa mada nyingine - hii ni wazo mbaya.

Hapa ni mifano michache wakati ni bora kufanya bila kazi.php:

  • Kujenga vilivyoandikwa vya desturi ambavyo utatumia mara nyingi
  • Kujenga shortcodes desturi.
  • Kuongeza msimbo ambao hauna tegemezi juu ya mada ya usajili (Kanuni ya Google Analytics, nk)

Katika hali hiyo, ni bora kuokoa msimbo huu bila kujali mada yako ya kubuni. Na unaweza kufanya hivyo na Plugins desturi.

Je! Umefikiri sasa - kuvunja kichwa chako juu ya uumbaji wa Plugin wakati unaweza kuhariri kazi.php? Ni vigumu sana! Niniamini, sio. Hii imefanywa kwa urahisi sana na kwa haraka.

Jinsi ya kuanzisha Plugin ya desturi badala ya kazi.php

Ili kuunda Plugin yako ya desturi ya kuhifadhi msimbo wako, unahitaji:

  1. Unda faili ya maandishi na msimbo wako na uhifadhi kama faili ya .FP
  2. Pakiti ya kupokea.php faili v.zip archive.
  3. Weka Archive hii kama Plugin ya kawaida ya WordPress kwenye orodha Plugins → Ongeza Mpya.

Hiyo ndiyo yote, vitendo 3 tu.

Hatua ya 1. Kuunda faili.php na msimbo wako

Fungua Notepad kwenye kompyuta yako na uingiza maandishi yafuatayo:

Bila shaka, unaweza kutumia jina lako kwa Plugin katika mstari wa jina la Plugin:

Hifadhi faili na uipe aina fulani ya jina la pekee ili WordPress haichanganya Plugin yako na imewekwa tayari. Kwa mfano: WPCAFE-desturi-kazi.php.

Ndiyo, usisahau wakati unapohifadhi kuchagua aina ya faili "faili zote" na kuongeza ugani.php:

Hatua ya 2. Kujenga archive.zip.

Nadhani hakuna maelezo hapa. Tu kuunda archive.Zip na faili yako archiver rahisi.

Hatua ya 3. Sakinisha kama Plugin ya kawaida.

Sehemu rahisi. Nenda tu kwa WordPress Adminka Plugins → Ongeza Mpya. Na kupakua kumbukumbu yako kama Plugin ya kawaida.

Mara tu unapohamisha, unaweza kuona Plugin yako mpya katika orodha ya Plugins nyingine zote zilizowekwa:

Jinsi ya kuongeza code yako

Ili kuongeza kipande chako cha msimbo, ingiza tu kwenye faili.php ambayo umeunda. Au unaweza daima kufanya Plugin nyingine tofauti kwa kazi mbili tofauti.

Kwa mfano, hii itaonekana kama faili yako.php, ikiwa unataka kufanya shortcode "Hello World!":

Maoni haya hayaathiri utendaji wa msimbo wako na kasi ya kuziba. Lakini utakuwa rahisi kwenda nao na kukumbuka kwamba inafanya kila kipengele ambacho umeongeza.

Tu funga maoni yako katika syntax kutoka oblique na asterisks: /* Maoni yako */

Baada ya kufanya mabadiliko kwenye msimbo wako, unaweza kuanzisha tena faili ya faili kupitia FTP au tu kuunda archive mpya.zip na kupakua kama Plugin mpya, na uondoe zamani.

Njia nyingine za kuepuka edkes.php.

Kwa ujumla, ikiwa una uhakika wa kutosha katika uwezo wako na kujua jinsi ya kuongeza msimbo katika kazi.php, haipaswi kuwa na matatizo yoyote na kwa Plugins desturi. Hakuna kitu ngumu hapa.

Lakini tunaelewa vizuri kabisa, ikiwa huna tamaa ya kuchanganya na haya yote kwa manually. Hata hivyo, ni WordPress. Kwa hiyo, unaweza kutumia Plugin ya bure ya Snippets, ambayo inafanya kuwa rahisi kuongeza msimbo wako wa ziada kwenye tovuti:

Kwa Plugin hii, unaweza kuongeza snippets tofauti na msimbo, kuwapa jina, maelezo, kuamsha na kuondokana na msimbo mmoja au mwingine snippet.

Kipengele kingine cha baridi ni kwamba unaweza kuagiza / kuuza nje vipande vya kanuni zako kati ya maeneo.

Matokeo.

Hii inaweza kuonekana kuwa mbaya sana, lakini eneo sahihi la msimbo wako wa ziada utakuwezesha kubadili kati ya mada mengine ya kubuni bila matatizo yoyote. Unaweza pia kuingiza au kukata kazi moja kwa moja ikiwa unagawanya kila kazi ya ziada kati ya Plugins ya mtu binafsi.

Kwa hiyo, njia hii inastahili sana.

cMS MySQL (4)

Ninajaribu kuunda mfumo wa msingi wa Plugin, sawa na kwamba mara nyingi hupata katika CMS, kama vile WordPress. Una folda ya Plugin ambayo imefungwa kwa uendeshaji wa mfumo kuu kwa kutumia arifa kuhusu matukio S. Kutumia template ya kubuni. Mtazamaji. au Tukio. .

Tatizo ni kwamba mfumo hauwezi kujua na ni matukio gani Plugin inataka kutenda - kwa hiyo mfumo unapaswa kupakia kila Plugin kwa ombi la kila ukurasa ili kujua kama Plugin hii inahitajika sana wakati fulani. Inakwenda bila kusema, ni rasilimali nyingi zilizowekeza - katika kesi ya WordPress, ambayo inaongezea MB kadhaa ya ziada ya kumbukumbu kwa kila ombi!

Je, kuna njia mbadala za kufanya hivyo?

Kwa mfano, kuna njia ya kupakua haya yote mara moja, na kisha cache matokeo ili mfumo wako ujue jinsi Plugins kwa boot yavivu? Kwa maneno mengine, mfumo huu hubeba faili ya usanidi ambapo matukio yote yanaonyeshwa kuwa Plugin inataka kuunganisha, na kisha inawaokoa katika APC au kitu cha maombi ya baadaye?

Ikiwa pia hufanya kazi vibaya, basi labda kuna muundo maalum wa faili ambao unaweza kutumika kupata mawazo mazuri kuhusu wakati programu fulani hazihitajiki kutekeleza swala.

Majibu.

Nina chombo cha usimamizi wa kuziba, lakini ninaitumia tu kwa programu za kiutaratibu na kwa kawaida ni kawaida kubeba mara moja. Lakini kwa API, kulingana na matukio na kupakua wavivu, ningeweza kuwasilisha kwa kutumia wrappers ndogo kwa ajili ya kudhibiti Plugins na kutumia kwa upakiaji wa moja kwa moja kwa upanuzi halisi.

/ ** * API: chochote * version: 0.1 * Kichwa: Mfano wa Plugin * Maelezo: ... * Config: * Inategemea: nyingineplugin * / Plugins $ ["title_event"] \u003d "tilleventclass"; Plugins $ ["Sekondari"] \u003d safu ("Class2", "Callback"); ?

Katika mfano huu, nadhani kwamba API ya kuziba ni orodha rahisi. Mfano huu wa script-plugin-123.php script haina kitu lakini kuongeza kwenye safu wakati upakiaji. Hivyo, hata kama una vipengele kadhaa vya kuziba, itasababisha tu ya ziada ya ziada_Once kwa kila mmoja.

Lakini programu kuu / au API ya kuziba inaweza badala ya kuunda matukio ya madarasa hayo (au mpya ya $ evencb; kwa ghafi- call_user_func_array au call_user_func_array kwa callbacks). Kwa upande mwingine, hii itasababisha mzigo wa kazi halisi ya autoloader. Hivyo, una mfumo wa mara mbili, ambapo sehemu moja inadhibiti orodha, nyingine ni kanuni halisi.

Kwa hiyo, bado ninafikiria config.php rahisi ambayo inabainisha tu Plugins na mipangilio kama hii:

"Mtumiaji / wrapper-kwa-htmlpurifier.php"); $ Cfg ["pretty"] \u003d 1;

Tena, kwa kuzingatia kwamba ni matukio ya shell / data, na maelezo ya kuziba kwa ajili ya kudhibitiwa. Unaweza pia kutumia API halisi ya rejista_even () na ufafanue kazi ya ziada ya wrapper kila. Lakini orodha ya majina ya darasa inaonekana kama chaguo rahisi.

Chombo cha udhibiti kilichotajwa hapo awali kinaonekana kuwa kiburi na kibaya: http://milki.include-once.org/genericplugins/
Lakini haitumiwi ikiwa unahitaji tu orodha (SQL Jedwali) na Usimamizi wa Mipangilio. Gharama hizi za juu zinalenga tu uchapishaji mzuri wa metadata ya kuziba na kuokoa config.php inayoonekana.

Hatimaye:

sPL_autoload () katika ni pamoja na_path na tukio rahisi-\u003e Daftari ya jina la darasa, shell moja ya kila mmoja, inarudi kila kitu mara moja.

Ningeokoa jina la darasa la Plugin pamoja na matukio yake yaliyosainiwa kwenye faili ya usanidi, na kisha kuhifadhiwa faili ya usanidi wa kuchambuliwa katika APC, kwa mfano. Kisha, wakati tukio linapoanza, mfumo unaweza kuwa wavivu kupakia madarasa yanayofanana ya kuziba kama inahitajika.

WordPress na mifumo mingine ya CMS ni mifano mbaya sana.

Lazima tuelewe kwamba msimu, karibu daima ina maana kwamba ni vigumu.

Mpango bora ambao nimewahi kufanya kazi ili kutatua hali hii ni Plugin ya msingi ya darasa, yenye makubaliano ya jina kali kwa kutumia autoloader.

Hivyo, kabla ya kutumia Plugin, unahitaji kuunda mfano au kutumia kazi za static.

Unaweza hata kupiga simu ya Plugin:

kwa mfano:

"/plugins/(sparts)/($parts).php"); Kuvunja; ) // ...)?

Kwa ajili ya matukio:

Lazima uandikishe tukio hili kwa bidii ili kuepuka mabadiliko ya nguvu.

Database itakuwa mahali pazuri kwa hili. Unaweza kuwa na matukio na usakinisha () na kufuta () mbinu katika darasa la Plugin ili kuongeza matukio fulani au mbinu za kumfunga kwa matukio mengine. Hii ni swala moja kwenye database, na kama unataka kupata zaidi kutoka kwao, ongeza kwenye memcached au kwenye faili ya gorofa.

Inafanya kazi kwa ajili yangu. Kwa hiyo, niliweza kupata mfumo mzito ambao ulitumia 8 MB kuomba kuanguka hadi 1 MB, na orodha sawa ya kazi, bila caching kabla. Sasa tunaweza kuongeza vipengele zaidi na kudumisha mfumo "Safi"

natumaini hii itasaidia

Njia bora ni kuanza kuandika coding nao. Templates za kubuni ni dhana nzuri ambayo ni vigumu kuomba, tu kusoma yao. Kuchukua mifano michache ya utekelezaji unaopata kwenye mtandao na uunda karibu nao.

Rasilimali bora ni ukurasa wa "data na kitu". Wanatafuta mwelekeo na kukupa mifano ya dhana na halisi. Vifaa vyao vya kumbukumbu pia ni ajabu.

Hii ni faili kuu katika mandhari yako ya WordPress. Iko katika / wp-maudhui / mandhari / (hapa ni jina la mada yako) /functions.php.
Inafafanua mali muhimu ya mada, ndoano, kuonekana na utendaji wake ni umeboreshwa, na baadhi ya kazi unayohitaji zinaongezwa. Faili hii imebeba kila wakati unapofungua ukurasa wowote wa WordPress, ili uweze kubadilisha kipengele chochote cha tovuti nayo. Katika suala hili, vidokezo vingi vya la " jinsi ya kubadilisha kitu katika WordPress bila Plugins. »Mara nyingi wasiwasi kufanya mabadiliko katika kazi.php, badala ya kujenga kuziba tofauti kwa utendaji huu au kutumia suluhisho la kumaliza. Mara nyingi hii inasababisha overload habari ya faili hii, msimbo inakuwa vigumu kusambaza, na ni vigumu zaidi kufanya marekebisho. Lakini hii sio hatari zaidi. Hatari zaidi ni kwamba wakati utafiti unabadilishwa, sehemu au utendaji wote wa tovuti muhimu utatoweka.

Ni tofauti gani kati ya kazi.php kutoka kwa Plugin.

. Kwa asili, kazi.php ni aina ya Plugin isiyo ya kawaida ya kimataifa, ambayo imefungwa kwa mada ya sasa. Kama inaunganisha na WordPress, unaweza kuona wp-settings.php. Kama inavyoonekana kutoka kwa msimbo wa chanzo, kupakua kwake hutokea baada ya kuziba yote, hata hivyo, hii haitoi vikwazo au faida yoyote, isipokuwa kwa uwezo wa kupindua kitu katika Plugins kushikamana. Kwa kasi ya msimbo, haitaathiri mtu yeyote. Tu maudhui ya Plugins na kazi.php huathiri. Kwa hiyo, kuwa makini wakati wa kuchagua programu ya kuziba kwa mandhari yako na kuacha bila ya lazima, bila ya lazima kwako, basi unaweza kuwezesha urahisi tovuti yako na kuharakisha kazi yake.

Wakati unahitaji kutumia kazi.php.

Fuata kanuni zifuatazo: Ikiwa utendaji ni moja kwa moja kuhusiana na mada ya sasa, lakini si kwa kazi ya tovuti, kuandika kwa kazi.php.

Kwa mfano, inaweza kuwa

  • Kuweka miniature.
  • Kuweka ukubwa Schidbarov.
  • Kuweka maeneo kwa vilivyoandikwa.
  • Kutangaza maeneo ya orodha ya urambazaji.
  • Mipangilio ya Mada.
  • Makala ya ziada ya mada yako

Wakati wa kuepuka kutumia kazi.php.

Ikiwa utendaji unapaswa kufanya kazi hata kwa mabadiliko ya mada ya kazi, ni muhimu kutunza uwasilishaji wake kwa Plugin tofauti.
Hii inaweza kuhusishwa:

  • Ufafanuzi wa counters ya mahudhurio (Google Analytiys, Yandex.metrika, Liveinternet)
  • Kurekebisha utendaji wa ziada wa admin (kwa mfano,)
  • Inasanidi msimbo wa chanzo ()
  • Ufafanuzi wa shortcodes.
  • Angalia katika

Orodha zisizo kamili, unaweza kufafanua maudhui yao mwenyewe.

Wapi kufanya msimbo huu, ikiwa sio kazi.php? Unaweza kuandika Plugins maalum kwao, hata hivyo, kuna njia ya kuvutia zaidi na rahisi.

mu-Plugins kama mbadala ya kazi.php.

Kwa sisi katika matoleo ya kisasa ya WordPress kutoka WordPress Mu (multi-mtumiaji) alikuja kazi ya kuvutia, inayoitwa FU Plugins.. Kiini chake kilikuwa kama ifuatavyo. Msimamizi wa WordPress Mu wakati mwingine anahitajika kufafanua Plugins kwa mtandao mzima wa maeneo. Haikuwezekana kufanikisha utendaji wa kawaida, kwa hiyo walianzisha sehemu maalum: / WP-Content / Mu-Plugins /, ambapo waliamua. Faili nyingine ya kuvutia, ya kuziba kutoka kwenye saraka hii imewekwa kabla ya wengine wote, ambayo inafanya uwezekano wa kutangulia maradhi au mipangilio.
Baadaye WPMU iliondolewa, kanuni yake iliunganishwa na blogu kuu, na sasa WordPress yoyote inaweza kutumia utendaji wa Mu-Plugins, ambayo sasa imeelezwa kama Lazima utumie., yaani, lazima kutumia.

Jinsi ya kutumia Plugins ya Mu-

Kwanza unahitaji kuunda sehemu maalum / wp-maudhui / mu-pugins /
Katika hiyo tunaweka faili za kuziba zinazohitajika. Tofauti na kuziba ya kawaida, sio lazima kuhimili syntax maalum, na utendaji unaweza kutangazwa moja kwa moja

Hapa kwa mfano, faili imeundwa kwa code ya mahudhurio.
Ndani ya faili hii inaonekana kama hii.

// ... badala ya mstari huu, ingiza coders code ...

Katika admin ataonekana kama Inahitajika

Replies 8.

Unaweza kutumia template ya mwangalizi. Njia rahisi ya kufanya kazi hii:

Pato:

Hii ni maombi yangu ya mambo 4 + 5 \u003d 9 4 * 5 \u003d 20

Vidokezo:

Katika mfano huu, msimbo wa chanzo unapaswa kutangaza Plugins yako yote kabla ya msimbo halisi wa chanzo unataka kupanua. Nilijumuisha mfano wa jinsi ya kushughulikia maadili moja au zaidi yanayoambukizwa na Plugin. Sehemu ngumu zaidi ya hii ni kuandika nyaraka halisi, ambayo inaorodhesha hoja ambazo zinaambukizwa kwa kila ndoano.

Hii ni njia moja tu ya kuunda mfumo wa kuziba katika PHP. Kuna njia mbadala bora, ninashauri kujitambulisha na nyaraka za WordPress kwa habari zaidi.

Samahani, inaonekana kwamba Waislamu wanabadilishwa na vitu vya HTML vya Markdown? Ninaweza kuchapisha tena msimbo huu wakati kosa hili litawekwa.

Hariri: Nevermind, inaonekana tu wakati unapohariri

Kwa hiyo, hebu sema, huna haja ya mfano wa mwangalizi, kwa sababu inahitaji kubadilisha njia za darasa kushughulikia kazi ya kusikiliza na unataka kupata kitu sawa. Na hebu sema hutaki kutumia urithi, kwa sababu unaweza tayari kurithi darasa lako kutoka kwa darasa lingine. Ingekuwa nzuri kuwa na njia ya jumla ya kufanya darasa lolote lililounganishwa bila jitihada nyingi? Hapa ni jinsi gani:

_Class \u003d Get_Class (& $ resobject); $ Hii -\u003e _ resobject \u003d $ resobject; ) Kazi ya umma __Set ($ Sproperty, $ Mchanganyiko) ($ splugin \u003d $ hii -\u003e _ darasa. "_" $ Sploperty. "_Sesevent"; ikiwa (ni_weza ($ spluunc_rray ($ splugin, $ MIXED);) $ Hii -\u003e _ reheobject -\u003e $ sproperty \u003d $ mchanganyiko;) kazi ya umma __P ($ sproperty) ($ ASITEMS \u003d (safu) $ hii -\u003e _ refoobject; $ Mchanganyiko \u003d $ Asitems [$ Sproperty] ; $ Splugin \u003d $ hii -\u003e _ darasa. "_" $ Sproperty. "_Gegent"; ikiwa (is_callable ($ splugin)) ($ mchanganyiko \u003d call_user_func_array ($ splugin, $ mchanganyiko);) kurudi $ mchanganyiko;) Kazi __Call ($ Smethod, $ mchanganyiko) ($ splugin \u003d $ hii -\u003e _ darasa. "_" $ Smathod. "_bereven"; ikiwa (ni_waweza ($ splugin, $ mchanganyiko );) ikiwa ($ iliyochanganywa! \u003d "block_event") (call_user_func_array (safu (& $ -\u003e _ reheobject, $ smathod), $ mchanganyiko); $ splugin \u003d $ hii - _ darasa. "_AfterEvent"; ikiwa (is_callable ($ splugin)) (call_user_func_array ($ splugin, $ mchanganyiko);)))) // mwisho clas Plugin ClugGable Exedend Plugin () // Mwisho Hatari PL uggable ///////////////////////// ////////////// ////////////////// // Jina \u003d ""; Kazi ya kazi ya umma (& $ show) (ECHO "$ show
\\ n ";) kazi ya umma SayName () (ECHO"
Jina la NMY ni: "$ hii-\u003e Jina."
\\ n ";)) // mwisho wa darasa mbwa $ \u003d mbwa mpya (); ///////////////////// //////////// $ PDOG \u003d New PlugGable (Dog Dog); Kazi Dog_bark_berevent (& $ MIXED) ($ MIXED \u003d "WOOF"; // override akisema "Meow" na "Woof" / $ MIXED \u003d "BLOCK_EVENT"; // Ikiwa unataka kuzuia tukio la kurudi $ iliyochanganywa;) Kazi ya Dog_bark_afterEvent (& $ iliyochanganywa) (ECHO iliyochanganywa; // Onyesha (& $ Mchanganyiko) ($ MIXED \u003d "Coco"; // override "Fido" na "Coco" kurudi $ mchanganyiko;) Kazi Dog_Name_getEvent (& $ mchanganyiko) ($ mchanganyiko \u003d "tofauti"; / / override "coco" na "tofauti" kurudi $ mchanganyiko;) / //////////////// /////////////// $ PDOG-\u003e Jina \u003d "Fido"; $ PDOG-\u003e Bark ("Meow"); $ PDOG-\u003e SayName (); ECHO "Jina langu jipya ni:" $ PDOG-\u003e Jina;

Katika sehemu ya kwanza, kwamba unaweza kuwezesha na ombi_once () wito juu ya script yako ya php. Inashughulikia madarasa kufanya kitu kilichounganishwa.

Katika Sehemu ya 2, ambapo tunapakua darasa. Kumbuka. Sikuhitaji kufanya chochote maalum kwa darasa, ambalo ni tofauti sana na template ya mwangalizi.

Katika Sehemu ya 3, ambapo tunabadilisha darasa letu kwa "kushikamana" (i.e., tunasaidia Plugins ambayo inaruhusu sisi kupanua mbinu na mali ya darasa). Kwa hiyo, kwa mfano, ikiwa una programu ya wavuti, unaweza kuwa na rejista ya Plugins, na unaweza kuamsha Plugins hapa. Kumbuka pia kwenye kazi ya dog_bark_berevent (). Ikiwa nimeweka $ mchanganyiko \u003d "block_event" mbele ya operator wa kurudi, itazuia mbwa kutoka laya na pia huzuia dog_bark_aftertevent, kwa sababu hakutakuwa na tukio.

Katika Sehemu ya 4, kwamba kanuni ya kawaida ya operesheni, lakini kumbuka kwamba kile unachoweza kufikiri hakitafanya kazi. Kwa mfano, mbwa haitangaza kwa jina "Fido", lakini "Coco". Mbwa haisemi "Meow", lakini "thamani". Na wakati unataka kuona jina la mbwa baadaye, utapata kwamba ni "tofauti", na si "coco". Hizi zote zimewasilishwa kwa sehemu ya 3.

Kwa hiyo inafanyaje kazi? Naam, waache wazuie () (ambayo kila mtu anasema "mabaya") na kuwatenga kwamba hii sio mfano wa mwangalizi. Kwa hiyo, njia ambayo inafanya kazi ni darasa la siri lililoitwa Pluggable, ambalo halina njia na mali zinazotumiwa na darasa la mbwa. Hivyo, kama hii inatokea, mbinu za uchawi zitahusishwa kwetu. Kwa hiyo, katika sehemu ya 3 na 4, tunawasiliana na kitu kilichopatikana kutoka kwa darasa la kuingizwa, na si kwa darasa la mbwa yenyewe. Badala yake, tunaruhusu darasa la Plugin "kugusa" kitu cha mbwa kwa ajili yetu. (Ikiwa hii ni aina fulani ya kubuni ambayo sijui - napenda kujua.)

Njia ya ndoano na msikilizaji hutumiwa kwa kawaida, lakini kuna mambo mengine unayoweza kufanya. Kulingana na ukubwa wa programu yako na ambaye anataka kuona msimbo (itakuwa script ya foss, au kitu ndani ya nyumba) kitaathiri sana jinsi unataka kutatua Plugins.

kdeloach ina mfano mzuri, lakini utekelezaji wake na kazi ya ndoano ni salama kidogo. Napenda kukuuliza kutoa maelezo zaidi juu ya tabia ya maombi ya PHP kwa barua yako, na jinsi unavyoona Plugins.

1 kwa Kdeloach kutoka kwangu.

Hapa ni njia ambayo nilitumia ni jaribio la nakala kutoka kwa ishara / qt / inafaa kutoka kwa utaratibu wa QT, aina ya template ya mwangalizi. Vitu vinaweza kutoa ishara. Kila ishara ina kitambulisho katika mfumo - inajumuisha ID ya ID + kitu-mtumaji. Kila ishara inaweza kuwa amefungwa kwa mpokeaji, ambayo ni "tu inayoitwa", unatumia darasa la tairi ili kueneza ishara kwa mtu yeyote ambaye ana nia ya kupata Wakati kitu kinachotokea unatuma ishara. Chini ni mfano na mfano wa utekelezaji.

ingia (); ?

Ninaamini kwamba njia rahisi ni kufuata ushauri wa Jeff na kuangalia kanuni iliyopo. Jaribu kuona WordPress, Drupal, Joomla na PHP-CMS nyingine maarufu kuona nini interfaces yao API kuangalia na kujisikia. Kwa hiyo, unaweza hata kupata mawazo ambayo huenda usifikiri kabla ya kufanya mambo kidogo zaidi.

Jibu la moja kwa moja litakuwa kuandika faili za kawaida ambazo zingejumuishwa kwenye faili ya pamoja ili kutoa urahisi wa matumizi. Itagawanywa katika makundi na haitolewa katika faili sawa ya "Hooks.php". Kuwa makini kwa sababu nini mwisho ni kwamba faili ambazo zinajumuisha hatimaye zina tegemezi na utendaji zaidi. Jaribu kupunguza kikomo cha API. I.e faili ndogo kwa ajili ya kuingizwa kwao.

Kuna mradi mzuri unaoitwa.