Plugin php ústup. Najlepší spôsob, ako povoliť doplnky pre aplikáciu PHP. Plugin PHP Code Widget

Určite ste sa už viackrát stretli s tým, že na pridanie novej funkcionality je potrebné pridať nejaký kúsok kódu pre váš web WordPress. Nehovorím o skriptoch Google Analytics, ktoré práve teraz vkladáte do hlavičky svojej témy. nie Hovorím o tých malých úryvkoch kódu, ktoré ste našli na fórach na internete a okamžite ste ich bežali pridať do svojho súboru funkcie.php.

Povedzme si úprimne, už ste to aspoň raz urobili, však? A to je pochopiteľné, pretože to bolo napísané na fóre - pridajte tento kód do functions.php vašej WordPress témy.

Pravdou je, že pridanie každého kódu, ktorý nájdete na internete, do functions.php je nie vždy dobrý nápad... Bezpečnejším riešením by bolo vytvoriť si vlastný mini plugin s týmto kódom.

V tomto návode vám povieme, v ktorých prípadoch môžete pridať kód do functions.php a v ktorých je lepšie použiť samostatný plugin. Ukážeme vám tiež, ako si môžete sami vytvoriť vlastný plugin a pridať doň svoj kód.

Čo je functions.php

Ak ste si niekedy prezerali súbory svojej stránky WordPress, možno ste narazili na niekoľko súborov functions.php. Súbor functions.php, o ktorom budeme hovoriť v tomto návode, sa nachádza v priečinku: wp-contentthemesyour_themefunctions.php.

Je zrejmé, že ide o ten istý súbor, v ktorom sú uložené všetky funkcie a nastavenia pre vašu konkrétnu tému, momentálne aktívny... Venujte pozornosť slovu „aktívny“, pretože to bude hlavným posolstvom tejto lekcie.

Prečo je zlý nápad vždy používať functions.php

Nechápte ma zle, je úplne normálne použiť functions.php pre malé kúsky kódu v niekoľkých riadkoch. Hovoríme o tom, že je nežiaduce používať functions.php ako úložisko úplne všetkého, čo pridávate do kódu. Nie je to univerzálne riešenie pre každú situáciu.

Dôvod číslo 1.

Ak bude pre vašu tému vydaná aktualizácia, prídete o všetko, čo ste pridali do súboru functions.php. Viem, čo ste si práve mysleli - ale je to len pre tento druh situácie?

Samozrejme, že mám. Ale je aj veľa ľudí, ktorí netušia, čo je to detská téma. Alebo sú ľudia, ktorí vás požiadali, aby ste im pomohli pridať kúsok kódu do ich témy.

Preto je tento dôvod na tomto zozname. Ak pridáte kód do functions.php bez použitia podradenej témy, toto je váš prvý budík.

Dôvod č. 2.

Aj keď ste podradenú tému správne nakonfigurovali a použili. Čo sa stane, ak chcete prejsť na inú tému dizajnu? Dúfam, že ste pridali komentár ku každej zmene, ktorú vykonáte v súbore functions.php, pretože bez toho by bol prechod na inú tému mimoriadne bolestivý. Myslím, že ste pochopili.

Dôvod číslo 3.

Ak ste do functions.php pridali kód, ktorý úplne nečakane pokazí vašu stránku a uvidíte prázdnu bielu obrazovku – budete potrebovať FTP klienta, aby ste nahrali „pokazené“ functions.php, upravte ho a nahrali späť na stránku. Také potešenie pre seba.

Kedy použiť functions.php

Správne použitie functions.php pre aktuálne aktívnu podradenú tému je platná možnosť. Ale pamätaj, sústredil som sa na toto slovo" aktívny"?

Ak pridávate kúsky kódu, ktoré budú dávať zmysel len pri práci s touto konkrétnou témou, potom môžete pokojne použiť features.php (v podradenej téme). Tu je niekoľko príkladov, kde by to mohlo byť vhodné:

  • Pridanie ďalšej šablóny so štýlmi (.css) pre váš motív
  • Zmeňte dĺžku úryvku príspevku, aby stránka vyzerala lepšie
  • Pridanie vlastných písiem pre aktuálnu tému
  • Pridanie lokalizačného súboru na preklad aktuálnej témy

Inými slovami, kedykoľvek pridáte alebo zmeníte čokoľvek súvisiace s konkrétnou aktuálnou témou, pokojne použite functions.php.

Kedy je lepšie zaobísť sa bez funkcií.php

Na pridávanie globálnych vecí a funkcií, ktoré by sa vám teoreticky mohli hodiť pre inú tému, je zlý nápad.

Tu je pár príkladov, kedy je lepšie zaobísť sa bez functions.php:

  • Vytváranie vlastných widgetov, ktoré budete často používať
  • Vytváranie vlastných krátkych kódov
  • Pridanie kódu nezávislého na téme (kód Google Analytics atď.)

V takýchto prípadoch je najlepšie ponechať si tento kód bez ohľadu na vašu tému. A môžete to urobiť pomocou vlastných doplnkov.

Teraz premýšľate - lámete si hlavu nad vytvorením pluginu, kedy môžete upravovať functions.php? Je to príliš ťažké! Verte mi, nie je to tak. To sa robí veľmi rýchlo a jednoducho.

Ako nastaviť vlastný plugin namiesto functions.php

Ak chcete vytvoriť svoj vlastný doplnok na uloženie kódu, potrebujete:

  1. Vytvorte textový súbor s kódom a uložte ho ako súbor .php
  2. Výsledný súbor .php zabaľte do archívu .zip
  3. Nainštalujte tento archív ako bežný doplnok WordPress v ponuke Pluginy -> Pridať nový

To je všetko, len 3 akcie.

Krok 1. Vytvorte súbor .php s vaším kódom

Otvorte v počítači Poznámkový blok a vložte nasledujúci text:

Samozrejme môžete použiť svoje meno pre plugin v riadku Plugin Name:

Uložte súbor a dajte mu jedinečný názov, aby si WordPress nepomýlil váš doplnok s už nainštalovanými. Napríklad: wpcafe-custom-functions.php.

Áno, pri ukladaní nezabudnite vybrať typ súboru „Všetky súbory“ a pridať príponu .php:

Krok 2. Vytvorte archív .zip

Myslím, že tu nie je potrebné žiadne vysvetlenie. Stačí vytvoriť archív .zip so súborom v akomkoľvek pohodlnom archivátore.

Krok 3. Nainštalujte ako bežný doplnok

Najjednoduchšia časť. Stačí prejsť do oblasti správy WordPress na adrese Pluginy -> Pridať nový a nahrajte svoj archív ako bežný doplnok.

Po jeho aktivácii by ste mali vidieť svoj nový doplnok v zozname všetkých ostatných nainštalovaných doplnkov:

Ako pridať kód

Ak chcete pridať útržok kódu, jednoducho ho vložte do súboru .php, ktorý ste vytvorili. Alebo môžete vždy vytvoriť ďalší samostatný doplnok pre dve rôzne funkcie.

Napríklad takto by vyzeral váš súbor .php, ak by ste chceli vytvoriť krátky kód „Ahoj svet!“:

Tieto komentáre žiadnym spôsobom neovplyvňujú výkon vášho kódu a rýchlosť spúšťania pluginu. Ale s nimi bude pre vás jednoduchšia navigácia a zapamätanie si toho, čo každá funkcia, ktorú pridáte, robí.

Stačí zabaliť komentár do syntaxe lomky a hviezdičky: /* tvoj komentár */

Po vykonaní zmien vo vašom kóde môžete znova načítať súbor .php cez FTP alebo jednoducho vytvoriť nový archív .zip a nahrať ho ako nový doplnok a starý odstrániť.

Ďalšie spôsoby, ako sa vyhnúť úpravám functions.php

Celkovo, ak ste si dostatočne istí svojimi schopnosťami a viete, ako pridať kód do functions.php, nemali by ste mať žiadne problémy ani s vlastnými zásuvnými modulmi. Nie je tu nič ťažké.

Úplne dobre však rozumieme, ak nemáte chuť sa s tým všetkým popasovať ručne. Napriek tomu je to WordPress. Preto môže prísť vhod bezplatný doplnok Code Snippets, ktorý uľahčuje pridanie dodatočného kódu na stránku:

Pomocou tohto doplnku môžete pridávať rôzne útržky kódu, priraďovať im názov, popis, selektívne aktivovať a deaktivovať jeden alebo druhý kus kódu.

Ďalšou skvelou funkciou je, že môžete importovať / exportovať útržky kódu medzi stránkami.

výsledky

Môže sa to zdať ako malý detail, ale správne umiestnenie vášho dodatočného kódu vám umožní v budúcnosti jednoducho prepínať medzi inými témami. Túto alebo tú funkciu môžete povoliť alebo zakázať aj samostatne, ak každú ďalšiu funkciu rozdelíte medzi samostatné doplnky.

Táto metóda si teda skutočne zaslúži pozornosť.

Zdravím vás priatelia. Dnes prídeme na to, ako zabezpečiť fungovanie akéhokoľvek PHP kódu vo WordPress widgetoch, článkoch a stránkach. Štandardne takáto funkcia nie je v tomto CMS dostupná a maximum, s ktorým môže užívateľ počítať, je vloženie HTML kódu.

Prečo PHP kód štandardne nefunguje

Zdalo by sa, prečo vývojári neodmenili taký populárny a pohodlný motor s užitočnými schopnosťami na automatické vykonávanie kódu PHP. Najprv som o tom premýšľal, ale dospel som k záveru, že takáto politika sa vykonáva z bezpečnostného hľadiska, pretože nesprávne použitie PHP vo widgetoch alebo vo vnútri záznamov môže viesť k nenapraviteľným následkom – niečo sa pokazí v databáze a praskne celá stránka.

Preto je práca s PHP ponechaná na milosť programátorom alebo ľuďom, ktorí sú v tejto veci viac či menej pokročilí – akékoľvek skripty sa spúšťajú priamo v súboroch.

Na verejných stránkach (kde je viacero autorov) spustenie PHP v tele článku zvyšuje riziko úmyselnej sabotáže, keďže každý autor môže získať plný prístup na stránku cez okno na úpravu článku.

Podľa stupňa nebezpečenstva by som celú túto situáciu rozdelil do 3 úrovní:

  1. Nechať všetko tak, ako to vývojári zamýšľali - je ťažké bezpečne, náhodne alebo úmyselne poškodiť stránku.
  2. Povoliť spúšťanie PHP vo widgetoch – stredná úroveň nebezpečenstva, prístup má iba správca stránky.
  3. Používanie kódu všade je nebezpečné, pretože web môže spravovať každý, kto má povolené upravovať články a stránky (moderátori, autori).

Na čo slúži PHP pre widgety?

Otázka je individuálna, keďže pomocou tohto programovacieho jazyka je možné implementovať čokoľvek. Mňa osobne k napísaniu tohto príspevku podnietila objednávka klienta, ktorého web práve robím. Na ňom bolo potrebné zobraziť v bočnom paneli v samostatnom widgete zoznam noviniek z jedného nadpisu – „Novinky“. V štandardných widgetoch WordPress takáto funkcia neexistuje.

Otázka bola medzi nájdením pluginu s vhodnými schopnosťami alebo použitím jednoduchého PHP kódu. Skript na takúto úlohu je naozaj malý a nechcelo sa mi zaťažovať stránku extra pluginom, ktorý by sa nikde inde nevyužil.

Vo všeobecnosti, povolením spúšťania PHP môžeme vyriešiť 2 problémy:

  • Nahradiť niektoré pluginy stránok skriptami a znížiť tak zaťaženie hostingu;
  • Implementujte funkcie, pre ktoré ešte neexistujú pluginy.

V prvej fáze budem hovoriť o widgetoch a potom v samostatnom bloku o výstupe kódu v obsahu.

PHP pluginy vo widgetoch

Výhoda pluginov: Pri zmene WordPress témy sa nenarušia funkcie pridané do šablóny, všetko funguje ďalej bez nutnosti zásahu webmastera. Háčiky pridané do šablóny pri zmene témy bude potrebné preniesť do novej ručne.

V mojom príklade vyššie robím pre klienta webovú stránku a ak si chce zmeniť dizajn svojpomocne, tak zmiznú nastavenia, ktoré sa robia cez súbory functions.php a iné, takže to zjednoduším ako Je pre neho možné spravovať stránku, spoliehajúc sa na pluginy (najmä v jej špecializovanom segmente je návštevnosť malá a nebude príliš zaťažená).

Miniaplikácia kódu PHP

Tento plugin používam pri svojej práci už dlho, do zoznamu dostupných pridáva widget, podobný bežnému textovému, ktorý dokáže okrem textu a HTML spracovať len PHP.

PHP Code Widget sa nachádza v oficiálnom repozitári WordPress a dá sa ľahko nájsť podľa názvu. Ako nainštalovať takéto pluginy.

Nie sú potrebné žiadne nastavenia, widget sa zobrazí v zozname ihneď po inštalácii a aktivácii pluginu. Presuňte "PHP kód" do bočného panela a pridajte tam ľubovoľný skript.

PHP vo WordPress widgetu bez pluginu

V tomto prípade potrebujeme háčik, ktorý nahradí štandardnú funkciu umožňujúcu prácu textovému widgetu WordPress s funkciou umožňujúcou spracovanie PHP.

Tento háčik je pridaný do súboru functions.php aktuálnej témy (úplne na konci, pred zátvorkou?>). Potom sa nové možnosti pre widget, ako v prípade pluginu, nezobrazia, PHP kódy začnú pracovať v štandardnom texte.

Hotový kód:

Add_filter ("widget_text", "text_html_php_widget", 100); function text_html_php_widget ($ text) (if (strpos ($ text, "". $ text); $ text = ob_get_contents (); ob_end_clean ();) return $ text;)

Prvý riadok je filter, ktorý pri každom volaní nahrádza štandardnú funkciu textového widgetu novou, text_html_php_widget, a potom nasleduje popis najnovšej funkcie.

Prečo PHP kód v článkoch a príspevkoch WordPress

Vo vnútri záznamov je spustiteľný PHP kód vyžadovaný oveľa menej často ako vo widgetoch, preto som v prvej časti článku uvažoval o bočnom paneli samostatne, aby ste sa vyhli zbytočnému pripájaniu potenciálne nebezpečných funkcií.

Ale aj v príspevkoch je potrebné používať skripty. Najbežnejším príkladom je zobrazenie mapy webu bez pluginu. Je pravda, že pre mapu môžete použiť inú techniku ​​- vytvoriť špeciálnu šablónu stránky (toto je samostatná téma).

Raz som potreboval vypísať PHP na nasledujúci účel:

Vytvoril som video stránku. Epizódy série sa zobrazovali v playlistoch podľa sezón a pod každým playlistom sezóny bolo potrebné zobraziť zoznam epizód s odkazom na vašu stránku. Vyzerá to ako mapa stránok, len je to komplikovanejšie - závery museli tvoriť zoznamy samostatných nadpisov. Každý odkaz bolo možné ručne napísať do HTML kódu, no epizód je niekoľko stoviek a postup je nudný. Navyše, keď sa objavila nová séria, odkaz na ňu by sa musel pridať ručne - je to nepohodlné. Rozhodol som sa teda použiť na implementáciu funkcie PHP.

Doplnok na spustenie PHP v obsahu Exec-PHP

Aj keď tento doplnok nebol aktualizovaný 7 rokov, robí svoju prácu dobre. A vybral som si ho z nejakého dôvodu – nepoužíva žiadne krátke kódy, ako konkurenti, ale umožňuje vkladať čistý kód do príspevkov WordPress, počnúc .

Zásuvný modul Exec-PHP sa nachádza v úložisku a inštaluje sa prostredníctvom ponuky na paneli správcu motora.

Existuje iba jedno z nastavení - povolenie / zákaz vykonávania kódu v textovom widgete, nie je možné zakázať prácu v príspevkoch a na stránkach, ak ho potrebujete odstrániť, deaktivujte doplnok.

Ak chcete vložiť PHP kód do článku, musíte sa prepnúť do režimu HTML (karta „Text“). Vizuálny režim s najväčšou pravdepodobnosťou pokazí kód.

Spustenie kódu PHP v článkoch WordPress bez doplnku

Analogicky s widgetmi môžeme plugin nahradiť špeciálnou funkciou, ktorá umožňuje spúšťanie PHP skriptov v obsahu. Bohužiaľ sa mi nepodarilo nájsť možnosť, v ktorej by kód fungoval automaticky ako v prípade pluginu, reagujúceho na tagy. Vyžaduje sa použitie krátkeho kódu. Moje znalosti PHP nestačili na to, aby som potrebnú funkciu napísal sám, preto ju uvádzam tak, ako je. Práca s krátkym kódom má významnú nevýhodu, ktorá komplikuje prácu, o tom budem hovoriť nižšie.

Ako pracovať s funkciou opísanou nižšie

  1. Vložte ho do súboru functions.php témy;
  2. Na správne miesto v článku vložte konštrukciu - spustiteľný kód bez

Funkcia:

/ * Spustenie php na článkoch a stránkach WordPress: kód * / funkcia start_php ($ sa zhoduje) (eval ("ob_start ();". $ Matches. "$ Inline_execute_output = ob_get_contents (); ob_end_clean ();"); návrat $ inline_execute_output ;) function inline_php ($ content) ($ content = preg_replace_callback ("/ \ ((. | \ n) *?) \ [\ / startphp \] /", "start_php", $ content); $ content = preg_replace ( "/\((.|\n)*?)\ [\/startphp\\\\\", "$ 1", $ content); return $ content;) add_filter ("the_content", "inline_php");

Chyba

Ak sú vo vnútri vloženého kódu PHP vložené HTML alebo text, potom to nebude fungovať. Akýkoľvek text alebo značky bude potrebné vložiť pomocou príkazu echo, čo nie je vždy vhodné. To znamená, že kód by mal mať čistý PHP-shny 100 správny formát.

Správny

Echo "Toto bude fungovať";

Nesprávne

Echo "Tento riadok je správny"; Toto nebude fungovať

V plugine Exec-PHP takýto problém nie je – vykoná sa text aj HTML, ale všetky prvky PHP kódu musia byť orámované v príslušných tagoch.

Pre mnohých webmasterov otvára téma opísaná v tomto článku nekonečné možnosti kreativity – môžete implementovať to, čo ste predtým nemohli, a tiež sa zbaviť množstva pluginov ich nahradením rôznymi filtrami, funkciami a háčikmi.

V tejto príručke sa bližšie pozrieme na to, ako vytvoriť doplnok WordPress s vlastnou stránkou správcu. Charakteristickým znakom každého pluginu je oddelenie jeho kódu od jadrového kódu WordPress. Ak sa niečo stane s pluginom, zvyšok webu bude fungovať.

  • Textový editor

Na dokončenie krokov v tomto návode potrebujete textový editor, ako napríklad Notepad ++ alebo NetBeans IDE. Potrebujete tiež FTP prístup na váš hostingový účet a.

Tento sprievodca doplnkom WordPress je napísaný pre tých, ktorí ho už majú. V tomto návode vytvoríme novú funkciu, zavoláme existujúce funkcie WordPress pomocou ich parametrov.

Čo je doplnok WordPress?

WordPress Plugin Je samostatný kód, ktorý vylepšuje a rozširuje funkčnosť WordPress. Pomocou ľubovoľnej kombinácie PHP, HTML, CSS, JavaScript / jQuery alebo radu ďalších programovacích jazykov môže doplnok WordPress pridať nové funkcie do ktorejkoľvek časti vašej stránky vrátane Administračnej konzoly. Môžete zmeniť predvolené správanie WordPress alebo úplne odstrániť nepotrebné správanie. Pluginy uľahčujú prispôsobenie WordPress pre seba a vaše potreby.

Keďže doplnok WordPress je samostatný kód, nezasahuje priamo do žiadnej časti základného kódu WordPress. Doplnok je možné skopírovať alebo nainštalovať na ľubovoľnú inštaláciu WordPress. Alternatívne (a veľmi odrádzaný) Cesta zmeny WordPress – zápis novej funkcie do súboru WordPress funkcie.php ktorý je v adresári / wp-zahŕňa / alebo do súboru funkcie.php ktorá je súčasťou vašej témy. To môže viesť k množstvu potenciálnych problémov.

WordPress a jeho témy sú pravidelne aktualizované. A keď používate podradenú tému WordPress, ďalšia aktualizácia prepíše súbor funkcie.php a nový kód, ktorý ste pridali, bude odstránený a budete ho musieť pridávať znova a znova. Ďalší nepríjemný moment môže nastať, ak napíšete veľa funkcií a jedna z nich obsahuje chybu, ktorú neviete nijakým spôsobom vystopovať, možno budete musieť nahradiť aktuálny súbor pôvodným, ale budete musieť obetovať všetky ostatné funkcie. To bude mať za následok veľký počet chýb PHP na stránke, pretože volania funkcií, ktoré už boli odstránené, budú stále uskutočňované z iných miest.

Pluginy sa pri aktualizácii WordPress nikdy automaticky neprepíšu ani neodstránia. Ak váš kód doplnku WordPress obsahuje chyby, môžete ho jednoducho zakázať v správcovskej konzole pri oprave chyby. V prípade, že váš doplnok má závažnú chybu, WordPress ho môže niekedy automaticky deaktivovať sám, aby zachoval funkčnosť celej stránky.

čo je to háčik?

WordPress pluginy interagujú so základným kódom prostredníctvom tzv háčiky (háčiky, z angličtiny. hák – hák). K nim, ako k háčikom, môžete „prilepiť“ výkon akýchkoľvek funkcií, ktoré nás zaujímajú. Vo WordPresse sú dva druhy háčikov:

  1. Háčiky akcií alebo háčiky udalostí (pridanie / odstránenie vlastnej funkcie k nejakej udalosti).
  2. Háčiky filtrov alebo háčiky filtrov (na zmenu údajov spracovaných funkciami).

Udalosti a udalosti

Návšteva akejkoľvek stránky na webe WordPress je volaním mnohých funkcií PHP (tzv diania - akcie). Funkcie sa viažu na akčné háčiky... Mechanizmus háku udalostí poskytuje WordPress. Môžeš pridať ich funkcie na akúkoľvek udalosť zo zoznamu udalostí pomocou mechanizmu háku a budú spustené pri spustení tejto udalosti. môžete tiež vymazať existujúce funkcie z ľubovoľného zoznamu hákov udalostí. Háčiky udalostí sú viazané na vykonanie konkrétnej udalosti. Napríklad pred zatvorením značky na ľubovoľnej stránke sa volá háčik udalosti wp_head () a spustí sa množstvo funkcií, ktoré sú naviazané na tento háčik wp_head ().

Pridanie funkcií do háku udalosti pomocou add_action ()

Komu pridať k akejkoľvek udalosti háku, váš doplnok WordPress by mal zavolať funkciu WordPress s názvom add_action () s aspoň dvoma parametrami.

// háčik udalosti "init", zavolaný potom, čo WordPress dokončí načítanie základného kódu add_action ("init", "add_Cookie"); // Nastavenie súboru cookie pomocou funkcie aktuálneho času dňa add_Cookie () (setcookie ("čas poslednej_návštevy", dátum ("r"), čas () + 60 * 60 * 24 * 30, "/"));)

  • háčik-udalosti(akčný hák), na ktorý sa chystáme prepojiť našu funkciu.
  • Druhým povinným parametrom je názov funkcie ktoré spustíme.
  • prioritou (priorita) funkciu, ktorú sa chystáte spustiť. Na jeden háčik udalosti môžete naviazať toľko funkcií, koľko chcete, a pristupovať k nim v ľubovoľnom poradí. Predvolená priorita spustenia je 10, vaša funkcia sa spustí hneď po vstavaných funkciách WordPress. Funkcia s prioritou 11 sa spustí ako ďalšia atď.
  • počet argumentov, znamená, koľko parametrov môže akceptovať vaša vlastná funkcia. V predvolenom nastavení je počet parametrov 1.

Príklad kódu doplnku na zobrazenie textu za sekciou päty na každej stránke

Tento doplnok WordPress zachytáva háčik udalosti wp_footer () ktorý sa volá tesne pred uzavretím tagu

na každej stránke a pridáva novú funkciu tzv mfp_Add_Text ()... Keďže doplnok WordPress nie je viazaný na tému, funkcia bude fungovať, aj keď tému zmeníte na inú. Tento príklad si môžete uložiť do súboru PHP a nahrať ho do adresára wp-content / pluginy / a aktivujte ho v správcovskej konzole, aby ste videli zmeny.

"; } ?>

Tu je výsledok:

Poznámka: PHP načíta obsah celého skriptu naraz pred jeho spustením, čo znamená, že môžete volať add_action () pred vašou definíciou funkcie: call add_action () s vašimi funkciami na začiatku súboru v poradí, v akom budú načítané, potom definujte svoje funkcie v rovnakom poradí nižšie. Toto štruktúrovanie kódu uľahčí čítanie súboru.

Odstránenie funkcií z hákov udalostí pomocou remove_action ()

Pre mazanie mala by sa použiť funkcia spojená s háčikom udalosti remove_action ()... Príklad nižšie vám pomôže pochopiť, ako funguje pridávanie a odstraňovanie funkcií do / z háku udalosti.

// Háčik pre udalosť "init", ktorá sa volá po dokončení načítania jadra WordPress a funkciou "remove_My_Meta_Tags" add_action ("init", "remove_My_Meta_Tags"); // Odstráňte funkciu "add_My_Meta_Tags" z funkcie háčika udalosti wp_head remove_My_Meta_Tags () (remove_action ("wp_head", "add_My_Meta_Tags");)

Spustí sa remove_action () aspoň dve parametre.

  • Prvým povinným parametrom je názov háčik-udalosti(akčný hák) ku ktorému bola funkcia pripojená
  • Druhým povinným parametrom je názov funkcie chcete odstrániť
  • Tretím (voliteľným) parametrom je priorita funkcie, ktorá sa má odstrániť. Tento parameter sa musí zhodovať s prioritou, ktorá bola nastavená pri pridávaní udalosti do háku udalosti. Ak nie je definovaný, tento parameter nepovoľujte.

Príklad: Povedzme, že chcete, aby sa text pridaný do päty v predchádzajúcom príklade nezobrazoval v pondelok. Jedným zo spôsobov, ako to urobiť, je použiť funkciu dátumu v PHP na získanie aktuálneho dňa v týždni odovzdaním podmieneného príkazu Ak potom… a skontrolujte, či je aktuálny deň pondelok, potom zavolajte remove_action (), ak je pondelok. Funkciu kontroly a vymazania podľa dňa v týždni voláme pomocou add_action () pripojením k udalosti, ktorá sa stala predtým (napr. wp_head) než tá, ku ktorej je pripojená naša hlavná akcia textu päty ( wp_footer)... Ak zvolíme udalosť, ktorá nastane neskôr ako wp_footer, k vymazaniu nedôjde, pretože stránka už bude vygenerovaná.

Po načítaní päty stránky sa pridá môj text!

";) // Definovanie funkcie" mfp_Remove_Text () "na odstránenie našej predchádzajúcej funkcie z" wp_footer "funkcie udalosti mfp_Remove_Text () (if (dátum (" l ") ===" pondelok ") (// Zacieliť na" wp_footer "action , odstráňte z nej funkciu "mfp_Add_Text" remove_action ("wp_footer", "mfp_Add_Text");))?>

Filtre a filtračné háčiky

Funkcie filtrov vám umožňujú upravovať údaje vrátené inými funkciami a musia byť najprv zachytené pomocou filtračné háčiky... Háčiky filtra sa trochu líšia od háčikov udalostí. Fungujú však ako háčiky udalostí – možno ich vyvolať na rôznych miestach skriptu a kontextovo. Úplný zoznam filtračných hákov a kontext hovorov nájdete na stránke WordPress Plugin API / Filter Reference.

Pridanie filtrov pomocou add_filter ()

Komu pridať akúkoľvek funkciu k háku filtra, váš doplnok by mal zavolať funkciu WordPress s názvom pridať_filter () s aspoň dvoma parametrami.

// Zachyťte háčik filtra "the_content" (obsah akéhokoľvek príspevku), spustite funkciu "mfp_Fix_Text_Spacing" add_filter ("the_content", "mfp_Fix_Text_Spacing"); // Funkcia automatickej opravy dvojitej medzery mfp_Fix_Text_Spacing ($ the_Post) ($ the_New_Post = str_replace ("", "", $ the_Post); return $ the_New_Post;)

  • Prvým povinným parametrom je názov filtračný hák(háčik filtra), na ktorý chceme funkciu zavesiť.
  • Druhým parametrom je názov funkcia filtra, ktoré chceme spustiť.
  • Tretí parameter (voliteľný) je prioritou (priorita) funkciu, ktorú chcete spustiť. Do hákového filtra môžete pridať toľko rôznych funkčných filtrov, koľko chcete. Predvolená priorita je 10, zaradí vašu vlastnú funkciu do frontu po akejkoľvek vstavanej funkcii. Funkcia s prioritou 11 sa spustí ako ďalšia atď.
  • Štvrtý parameter (voliteľný) je počet argumentovčo znamená, koľko parametrov môže akceptovať vaša vlastná funkcia. V predvolenom nastavení je počet parametrov 1.

Príklad. Doplnok WordPress na zmenu úryvku / úryvku príspevku

WordPress má funkciu, ktorá vytiahne úryvok (citát) z príspevku, je to tzv get_the_excerpt () a je tiež filtračným háčikom. Funkcia zobrazujúca výpis hovorov get_the_excerpt (), Ak ho chcete získať, použite filter a pred zobrazením sa zmení veľkosť úryvku. Tento doplnok WordPress definuje funkciu filtra, ktorá berie text ako vstupný parameter, pridáva nejaký text na jeho začiatok a pri každom volaní vráti novú hodnotu. get_the_excerpt ()... Odkedy sa funkcia vrátila get_the_excerpt () hodnota je skutočný kus textu, automaticky sa zadáva ako parameter funkcie $ old_Excerpt, pri volaní pomocou add_filter (). Funkcia, ktorú definujete by mal vrátiť novú hodnotu.

úryvok:$ old_Excerpt; return $ new_Excerpt;)?>

Konečný výsledok:


Odstránenie filtrov pomocou remove_filter ()

Ak chcete odstrániť filter, stačí zavolať funkciu remove_filter ()... Pridajme napríklad opäť jednoduchú podmienku a text vymažeme, ak je štvrtok.

// Hook filter get_the_excerpt, spustí funkciu mfp_Add_Text_To_Excerpt add_filter ("get_the_excerpt", "mfp_Add_Text_To_Excerpt"); // Ak je dnes štvrtok, odstráňte filter the_excerpt () if (date ("l") === "Thursday") (remove_filter ("get_the_excerpt", "mfp_Add_Text_To_Excerpt");) // Vezmite pasáž, pridajte text a vrátiť funkciu novej pasáže mfp_Add_Text_To_Excerpt ($ old_Excerpt) ($ new_Excerpt = " úryvok:". $ old_Excerpt; return $ new_Excerpt;)

Teraz, keď už máte základné znalosti o filtroch a udalostiach, poďme vytvoriť jednoduchý doplnok WordPress, ktorý pridá nový odkaz a stránku do správcovskej konzoly.

Krok 1 - Uloženie doplnku

Prvým krokom pri vytváraní doplnku WordPress je vytvorenie adresára na ukladanie všetkých vašich súborov. Všetky pluginy sú uložené v adresári: / wp-content / pluginy /... Adresár, ktorý vytvoríte, musí mať jedinečný a zmysluplný názov, ktorý sa neprekrýva s inými zásuvnými modulmi. Pripojte sa k svojmu hostingovému účtu cez FTP. Z hlavného adresára WordPress prejdite na wp-obsah potom v pluginy... Vo vnútri adresára pluginy vytvorte nový adresár s názvom môj-prvý-plugin.


Je lepšie oddeliť samostatné súbory s kódom zásuvného modulu do podadresárov v hlavnom adresári zásuvných modulov namiesto ukladania všetkého do jedného adresára, čím sa predíde zmätkom a bude to dobré sémantické oddelenie zdrojových súborov zásuvného modulu. Najmä oddelenie súborov podľa významu bude veľmi viditeľné, keď váš doplnok rastie a stáva sa zložitejším. Ak váš doplnok používa svoje vlastné štýly CSS, vytvorte adresár CSS a uložte tam všetky CSS súbory. Ak váš doplnok WordPress používa JavaScript, vytvorte adresár JavaScript.

Krok 2 - vytvorenie prvého súboru

Prvý súbor pre váš plugin je veľmi dôležitý. Obsahuje všetky informácie, ktoré WordPress potrebuje na zobrazenie vášho pluginu v zozname aktuálne aktívnych doplnkov.

Vo vašom adresári môj-prvý-plugin vytvorte nový súbor PHP a pomenujte ho my-first-plugin.php... Je dobrou praxou pomenovať hlavný súbor zásuvného modulu aj adresár. Pridajte otváraciu značku PHP na prvom riadku. Na koniec súboru nemusíte pridávať uzatváraciu značku (prečítajte si poznámku na manuálovej stránke PHP, aby ste videli dôvod). Tento súbor bude obsahovať predovšetkým takzvané „komentáre v hlavičke“ alebo komentáre v hlavičke s informáciami, ktoré bude čítať a zobrazovať WordPress. Komentáre v hlavičke sú uzavreté vo viacriadkovom komentári PHP, pričom každý riadok definuje špeciálne informácie začínajúce špeciálnymi znakmi, aby ste mohli určiť, na čo sa riadok vzťahuje. Takáto štruktúra by mala byť prítomná iba v prvom súbore a jeho nie je potrebné opakujte vo zvyšku.

Prvý riadok v komentári v súbore my-first-plugin.php musíte pridať názov pluginu. Začnite viacriadkový komentár PHP otvorením so znakmi /* na druhom riadku súboru, hneď za značkou PHP open. Na tretí riadok napíšte Názov doplnku: Môj prvý doplnok. V ďalších dvoch samostatných riadkoch môžete zadať popis pluginu a meno autora. Potom na ďalšom riadku zatvorte blok komentárov so symbolmi */ ... Váš súbor teraz vyzerá asi takto:

Meno autora.

Krok 3 - Zápis funkcií pluginu

Ako je uvedené vyššie, je dobrou praxou rozdeliť kód doplnku do príslušných súborov a adresárov. Keďže hlavnou funkciou prvého súboru je obsahovať informácie o plugine, umiestnime plugin WordPress do iných súborov a adresárov a na prístup k nim použijeme funkciu PHP ‘include’. Akékoľvek súbory uložené v podadresároch sa volajú priamo z nášho kódu a iba z nášho kódu, takže názov podadresára nemusí mať predponu. Dôrazne sa však odporúča použiť jedinečnú predponu pre vaše súbory, funkcie a premenné, aby ste sa vyhli konfliktom s inými zásuvnými modulmi. V tejto súvislosti budeme používať predponu mfp, skratka pre 'My First Plugin'.

V hlavnom adresári vášho pluginu vytvorte nový podadresár s názvom zahŕňa. Každý súbor, ktorý je „zahrnutý“ v inom súbore, prejde do tohto podadresára. Vytvorte nový súbor PHP v podadresári zahŕňa a uložiť ako mfp-functions.php. Otvorenie štítku na prvom riadku. Tento nový súbor bude uchovávať funkcie vášho pluginu.

Teraz sa vráťte k my-first-plugin.php v hlavnom adresári pluginov. Potrebujeme pripojiť súbor mfp-functions.php používať nové funkcie. Keďže ide o hlavný súbor doplnku, pripojenie mfp-functions.php tu sprístupníte funkcie v akomkoľvek inom súbore vášho pluginu. Použite vyžadovať_raz aby ste raz prepojili súbor s funkciami a ubezpečili sa, že plugin funguje len vtedy, ak sú funkcie dostupné. Najjednoduchší spôsob, ako zahrnúť súbory z adresára doplnkov, je použiť funkciu WordPress plugin_dir_path (__ FILE__) ktorý poskytuje úplnú cestu k adresáru, kde je uložený náš doplnok WordPress, potom použite . (bodka) na pridanie názvu podadresára, ktorý sme vytvorili predtým ( zahŕňa), potom názov súboru, ktorý sme vytvorili ( mfp-functions.php).

Úprava my-first-plugin.php ako je uvedené nižšie, potom uložte a znova načítajte, čím prepíšete predchádzajúcu verziu.

Späť k mfp-functions.php v podadresári zahŕňa.

Je dobré spojiť niekoľko funkcií a nad každú skupinu napísať viacriadkový komentár popisujúci skupinu, potom krátky jednoriadkový komentár pred každou funkciou popisujúci jej popis. Týmto spôsobom nemusíte čítať celý kód, hľadať funkciu a zisťovať, čo robí. Zavolajme funkciu mfp_Add_My_Admin_Link (). Pridá nový horný odkaz na Správcovskú konzolu v navigačnej ponuke.

Aby sme to zhrnuli, napíšeme novú funkciu podľa týchto krokov:

  • Píšeme komentáre popisujúce funkciu
  • Funkciu voláme
  • Napíšeme funkciu

V mfp-functions.php, napíš nasledovné:

Vo vnútri našej funkcie musíme použiť vstavanú funkciu WordPress add_menu_page () nastaviť názov ponuky, názov a kto ju môže vidieť. Potom povieme, čo sa má zobraziť, keď prejdeme na stránku. K odkazu v menu môžete pridať aj ikonu a nastaviť jej polohu v navigačnom menu admin panela – obe sú voliteľné, takže sa tým v našom návode nebudeme zaoberať. Vedľa odkazu na vašu stránku sa zobrazí predvolená ikona. Náš odkaz sa zobrazí v spodnej časti navigačnej ponuky správcovskej konzoly. Všetky tieto informácie sa zadávajú ako parametre add_menu_page ().

Štyri základné parametre add_menu_page ()- každý na novom riadku pre lepšiu prehľadnosť:

  1. Názov stránky, ktorý sa vám zobrazí po kliknutí na odkaz (zobrazený na karte prehliadača).
  2. Text zobrazený v odkaze ponuky (zobrazený v navigačnom zozname správcovskej konzoly), môže to byť názov vášho doplnku.
  3. Požiadavky na používateľskú skúsenosť na zobrazenie ponúk, v tomto príklade môžu na stránku pristupovať iba používatelia s ‘manage_options’ (zatiaľ si s tým nerobte starosti).
  4. Ktorý súbor použiť, kedy otvoriť stránku (vytvoríme ho v ďalšom kroku), ktorý bude uložený v podadresári zahŕňa a byť zavolaný mfp-first-acp-page.php. Tu zadaná adresa URL je známa ako „slizák“.

Než budeme pokračovať, je dôležité vedieť, že existuje alternatívny spôsob použitia tejto funkcie. Štvrtým parametrom môže byť len reťazec textu, ktorý sa objaví v adrese URL po „ wp-admin / admin.php? page = '... Ak zadáte „moja-doplnková-stránka“, adresa URL sa zmení na „Wp-admin / admin.php? Stránka = moja-stránka-doplnku“... Štvrtý parameter by potom mal byť názov funkcie, ktorá vydáva čokoľvek. Môžete napísať funkciu, ktorá napríklad vydá iba „Vitajte na stránke 1“. Je oveľa jednoduchšie vytvoriť súbor PHP, ktorý bude obsahovať vašu stránku.

Úprava mfp-functions.php, vymazať // Tu je môj kód, nahradiť ho add_menu_page () a odovzdajte parametre, ako je uvedené nižšie:

Na spustenie tejto funkcie musíme použiť funkciu WordPress s názvom add_action () s dvoma parametrami, ako je popísané v časti „Pridanie funkcií k háku udalosti“ v tejto príručke. Pred pokračovaním si môžete znova prečítať túto časť.

  • Prvým parametrom je akčný háčik, ktoré chcete chytiť. V našom prípade je háčik udalosti admin_menu- to znamená, že naša funkcia sa načíta, keď sa začne generovať menu Admin.
  • Druhý parameter je jednoducho názov funkcie, ktorá sa má spustiť. Funkcia, ktorú sme napísali, sa volá mfp_Add_My_Admin_Link... Všimnite si, že tu nie sú napísané zátvorky. Pamätajte, že PHP načíta celý skript pred jeho spustením, čo vám umožňuje použiť add_action () pred definovaním funkcie špecifikovanej v parametri 2.

Náš konečný súbor vyzerá takto:

Nahrajte súbor mfp-functions.php do katalógu zahŕňa a prepísať starý.

Krok 4 - vytvorenie novej stránky správcu

Teraz môžete vytvoriť stránku, ktorá sa zobrazí po kliknutí na odkaz vo vašej správcovskej konzole. Vráťte sa do podadresára zahŕňa a vytvorte nový súbor PHP s názvom mfp-first-acp-page.php. Otváracia značka PHP sa v tomto súbore nevyžaduje, pretože budeme používať iba HTML. Napíšte HTML kód, ako je uvedené nižšie, a nahrajte súbor.

Ahoj!

Toto je prvá stránka pluginu :)

Pri vytváraní správcovských stránok WordPress odporúča, aby ste kód HTML zabalili do značiek div a dali mu názov triedy „wrap“, ako je uvedené vyššie. Zabezpečíte tak, že všetok váš obsah sa zobrazí na správnom mieste a bude vyzerať rovnako ako ostatné stránky správcu. Ak toto odporúčanie nedodržíte, stránka nemusí vyzerať veľmi atraktívne.

Vráťte sa na zoznam doplnkov WordPress v správcovskej konzole a aktivujte ho. Po načítaní stránky sa pozrite na navigačnú lištu na paneli správcu. Tu uvidíte nový odkaz s názvom „Môj prvý doplnok“. Kliknite naň a zobrazí sa vám domovská stránka správcu!

Záver

Gratulujeme, práve ste vytvorili svoj prvý doplnok WordPress, pridali nový odkaz do ponuky správcu a zobrazili novú stránku v správcovskej konzole! Zdá sa, že to nie je až tak veľa, ale toto sú prvé sebavedomé kroky. Teraz môžete na základe získaných vedomostí meniť funkčnosť WordPressu tak, ako potrebujete. Viac informácií o WordPress

Dobrý deň, milí priatelia a hostia blogu! Dnešný príspevok bude užitočný pre začiatočníka aj ostrieľaného webmastera, ktorý ešte nevie, ako vkladať php kód vo wordpresse na stránky, príspevky a bočný panel tak, aby ho spúšťal WordPress engine.

Chcem vám v tomto článku povedať o tom a o tom, ako môžete vložiť php kód do wordpressu bez použitia pluginu a pomocou pluginu. Dozviete sa tiež všetky nuansy a jemnosti, výhody a nevýhody, ktoré na vás môžu čakať pri vykonávaní tejto funkcie na WordPress.

Niekedy je pri tvorbe webu jednoduchá potreba vložiť php kód do wordpressu do príspevkov, stránok alebo bočných panelov. Sám som sa s tým raz stretol a keď som sa pokúsil vložiť kód php do bočného panela, vyšiel ako obyčajný text. To znamená, že nebola vykonaná ako funkcia.

Prečo potrebujete spustiť php kód na WordPress v príspevkoch, stránkach a bočných paneloch? Každý správca webu sa rozhodne sám za seba! Do vašich príspevkov bola napríklad potreba vložiť akýkoľvek skript vytvorený v php kóde, alebo potrebujete zobraziť nejaké nezvyčajné menu v bočnom paneli, človek nikdy nevie.

Aby ste mohli zobraziť spustiteľný php kód vo WordPress, musíte urobiť nejaké akcie a ktoré, teraz zistíme ...

Ako zobraziť spustiteľný PHP kód vo WordPress bez doplnku?

Táto metóda výstupu kódu php do WordPress bude relevantná pre tých, ktorí sú horlivými odporcami inštalácie nepotrebných doplnkov do svojich zdrojov. A teraz sa naučíte, ako to urobiť.

Ak to chcete urobiť, budete musieť v súbore vykonať nejaké zmeny funkcie.php tému vašej aktívnej stránky. Stačí tam pridať nasledujúci kód úplne na koniec, pred " ?> " :

/ * na vloženie spustiteľného kódu php do článkov / stránok WordPress použite tento krátky kód: kód * / funkcia exec_php ($ sa zhoduje) (eval ("ob_start ();". $ sa zhoduje. "$ inline_execute_output = ob_get_contents (); ob_end_clean () ; "); return $ inline_execute_output;) funkcia inline_php ($ content) ($ content = preg_replace_callback (" / \ ((. | \ n) *?) \ [\ / exec \] / "," exec_php ", $ content ) ; $ content = preg_replace ("/ \ ((. | \ n) *?) \ [\ / exec \] /", "$ 1", $ content); return $ content;) add_filter ("the_content", " inline_php ", 0);

Potom použite tento krátky kód vo svojich príspevkoch a článkoch na vloženie spustiteľného kódu php:

Tu je php kód

  • Malé upresnenie, ktoré je veľmi dôležitým bodom pre správne zobrazenie a výstup php kódu vo vašich príspevkoch na stránke!

Je nevyhnutné, aby ste pri vkladaní kódu php do krátkeho kódu nepoužívali toto: “"! To znamená, že váš spustiteľný php kód vložený do krátkeho kódu by mal vyzerať takto nie takto " " , a Páči sa ti to "dátum odozvy ("Y");". A nakoniec, keď to vložíte do krátkeho kódu, bude to vyzerať takto:

Dátum odozvy ("Y");

  • Ďalšie varovanie pre začínajúcich webmasterov!

Spustenie php kódu vo vašich príspevkoch WordPress týmto spôsobom robí váš engine zraniteľným voči všetkým druhom hackerov – crackerov, ktorí ho môžu použiť na svoje sebecké účely. Ak to chcete urobiť, musíte zmeniť hodnotu " exec"v kóde, ktorý sa vkladá do súboru funkcie.php na vlastnú päsť, ktorú poznáte len vy! A podľa toho použite rovnakú hodnotu v skrátené kódy na vloženie do záznamov.

Touto akciou sa môžete vyhnúť tomu, že niekto bude môcť využiť potenciálnu "dieru" vytvorenú v dôsledku použitia tejto funkcie - vložiť php kód do wordpressu.

Ide o vkladanie php kódu do WordPressu bez použitia pluginu.

Teraz poďme zistiť, ako môžete stále vkladať php kód do WordPress, ale s doplnkom ...

Ako vložiť spustiteľný PHP kód do WordPress pomocou doplnku Exec-PHP?

Existuje veľa pluginov na vkladanie php kódu do wordpressu na spustenie. Nie všetky sú však bezpečné, pretože keď sú nainštalované a používané, v motore sa objavia zraniteľné miesta, ktoré môžu zneužiť hackeri, ktorí nie sú po ruke.

Teraz vám poviem o najbezpečnejšom a najfunkčnejšom doplnku na vykonávanie php kódu vo WordPress - toto je Exec-PHP... Najprv si ho musíte stiahnuť alebo z oficiálna stránka WordPress alebo jednoducho nainštalujte z panela správcu na stránke. Dúfam, že vieš ako sa to robí?! Ak nevieš, tak sa pozri. Nechýba ani videoklip, v ktorom môžete všetko vidieť na vlastné oči. Hoci ide o inštaláciu ďalšieho pluginu, princíp je rovnaký.

Po nainštalovaní a aktivácii doplnku sa zobrazí hlavná ponuka správcu:

Kliknite naň a dostanete sa na:

Tu vyberte spustiť / ignorovať PHP kód vo widgetoch a je to.

Potom, aby ste mohli vložiť spustiteľný php kód do wordpressu do príspevkov a stránok, musíte zaškrtnúť políčko vo svojom profile -:

Všetko. Teraz môžete na svoje stránky a príspevky pridať ľubovoľný php kód vo wordpresse a bude vykonaný!

Ďakujem za pozornosť! Veľa šťastia všetkým! Dobudúcna!

Každý, kto pozná WordPress, už počul o súbore témy (šablóny) functions.php. Nie každý však dobre chápe jeho účel, vidí v ňom iba súbor, v ktorom sú uložené rôzne php funkcie. Na webe, ako je ten môj na tejto stránke, sa často odporúča pridať do tohto súboru PHP kód. Nie každý kód však bude fungovať pre tento súbor. Nie preto, že to nebude fungovať, ale preto, že to nezodpovedá logike používania.

Taktiež pri úprave functions.php nováčikovia robia chyby, kvôli ktorým stránka prestane fungovať.

V tomto článku sa pokúsim zvážiť všetky tieto body: kedy použiť functions.php a kedy je lepšie to nerobiť, aké chyby môžu nastať pri úprave functions.php.

Funkcie Functions.php

features.php sa nachádza v priečinku témy a načítava sa zakaždým, keď si prezeráte vonkajšok stránky, v administračnom paneli a dokonca aj počas požiadaviek AJAX. Neexistuje žiadny prípad, kedy by function.php nebol zahrnutý a to otvára množstvo príležitostí pre vývojárov.

Napríklad nasledujúci kód vložený do súboru functions.php témy rozšíri funkčnosť témy povolením podpory pre miniatúry príspevkov:

Add_action ("after_setup_theme", "wp_kama_theme_setup"); function wp_kama_theme_setup () (// Podpora miniatúr add_theme_support ("po miniatúrach");)

Ďalší príklad, kód nahradí text v päte administračného panela WordPress údajmi o počte požiadaviek na databázu, čase generovania stránky a využití pamäte:

## Údaje o počte požiadaviek do databázy v päte admin add_filter ("admin_footer_text", "wp_usage"); // v administračnom paneli add_filter ("wp_footer", "wp_usage"); // na stránke funkcia wp_usage () (echo sprintf (__ ("SQL:% d v% s sekund% s MB", "km"), get_num_queries (), timer_stop (0, 3), round (memory_get_peak_usage () / 1024/1024, 2));)

function.php verzus pluginy

- "Pluginy sú pomalšie ako kód v súbore functions.php", hovoria neinformovaní - nie je!

Teoreticky je vloženie kódu do functions.php rovnaké ako inštalácia pluginu, ale nie je to to isté. Skutočne, pri zmene témy dostaneme úplne iné funkcie.php a všetky vykonané zmeny sa stratia, ale plugin zostane, bez ohľadu na to, ako dlho sa téma zmení. Z týchto dôvodov je potrebné odkázať na súbor functions.php. Ak sa pridaná funkcionalita vzťahuje nielen na tému, ale aj na stránku ako celok, mali by ste porozmýšľať nad jej pripojením ako doplnku.

Druhý príklad vyššie je „Údaje o počte databázových dotazov v päte správcu“. Logicky nevhodné na použitie v súbore functions.php. Pretože ak zmeníme šablónu, stratíme túto funkcionalitu a používa sa v administračnom paneli a je potrebná bez ohľadu na použitú tému.

Tak to odstránime z functions.php a urobme z toho plugin – je to jednoduché!

Ak chcete vytvoriť doplnok, musíte vytvoriť súbor s kódom uvedeným nižšie (názov súboru môže byť ľubovoľný), pridať ho do adresára pluginov wp-content / plugins / a aktivovať doplnok v admin paneli:

Ak nechcete, aby sa na paneli správcu zobrazoval ďalší doplnok, môžete použiť doplnky, ktoré musíte použiť.

Na čo sú vlastne functions.php?

Ako som písal vyššie: functions.php je potrebný na rozšírenie funkčnosti témy, a to len na to! Do tohto súboru musíte pridať akýkoľvek kód, ktorý je potrebný pre samotnú šablónu, ale nie pre web ako celok.

Ak sa vám na akomkoľvek zdroji ponúkne pridanie kódu do súboru functions.php a funkcia kódu priamo nesúvisí so šablónou, potom nebuďte leniví a vytvorte si z tohto kódu plugin a možno v budúcnosti budete vyhnúť sa neočakávanej strate predtým pridaných funkcií.

Ako sa načíta súbor functions.php

function.php je pripojený počas inicializácie aktuálnej témy, po pripojení všetkých funkcií WordPress a všetkých aktívnych pluginov. Stručne popíšem chronológiu načítania WordPress, kde môžete vidieť, kedy sú pripojené dôležité súbory:

Index.php wp-blog-header.php wp-load.php wp-config.php wp-settings.php // Najzákladnejšie funkcie sú pripojené (pripojenie k databáze $ wpdb a filtračnému systému) // Základné filtre sú pripojené // SHORTINIT: Zastaviť načítavanie tam, kde je len to najzákladnejšie: if (SHORTINIT) return false; // je prepojené celé prostredie WordPressu: základné funkcie, filtre // sú pripojené nevyhnutné pluginy, následne sa spustí udalosť: do_action ("muplugins_loaded"); // aktivované pluginy sú pripojené, potom sa spustí udalosť: do_action ("plugins_loaded"); // nastavenie globálnych premenných: wp_the_query, wp_query, wp_rewrite, wp, wp_widget_factory, wp_roles ... do_action ("setup_theme"); // nastavenie aktuálnej témy // začlenenie súboru témy >>>>>>>>>>>> functions.php<<<<<<<<<<<< do_action("after_setup_theme"); // событие, когда среда WP, все плагины и тема полностью подключены, но на экран еще ничего не выведено: do_action("init"); // проверка статуса сайта для мультисайтовой сборки // тоже самое что init только после проверки статуса (до этой строки работа PHP может не дойти) do_action("wp_loaded"); wp() // заполняет основной запрос WP и все глобальные переменные связанные с ним wp-includes/template-loader.php // подключает нужный файл шаблона

Proces načítania pre WordPress, a najmä functions.php, je dobre znázornený na tomto obrázku:

Schéma nahrávania WordPress

Chyby vo functions.php pri vkladaní kódu

Opakovane som sa stretol s otázkami o chybách typu: "Po nainštalovaní kódu do súboru functions.php stránka prestala fungovať - ​​biela obrazovka. Čo mám robiť?". Sám som sa s tým raz stretol.

Niektoré riešenia tohto problému zostali pre mňa dlho záhadou - zdalo sa, že som nič nerobil a dokonca ani tanec s tamburínou nebol, ale raz to všetko fungovalo. Prečo sa to deje? Pozrime sa na možné situácie, v dôsledku ktorých sa stránka môže „rozbiť“ a ich vysvetlenie:

    Vložte pripravený kód - stránka prestane fungovať.

  1. Editácia functions.php - stránka prestane fungovať.

Častejšie ide o otváranie a zatváranie značiek PHP.... Zvyčajne, ak má vložený kód tieto značky na začiatku a na konci, je potrebné ich odstrániť. Súbor functions.php by tiež nemal zobrazovať žiadny text (HTML kód alebo iný obsah) na obrazovke. Výstup textu je povolený iba vo funkcii, ktorá sa neskôr použije v šablóne alebo ktorá je pripojená k háčikom (ďalšie podrobnosti nájdete nižšie).

Predtým nie je možné povoliť žiadne znaky, vrátane neviditeľných znakov (zalomenie riadku), pretože function.php je pripojený ešte pred nastavením hlavičiek http (v takýchto hlavičkách sa prenášajú rôzne údaje, napr. že ide o html dokument, že kódovanie utf-8 je iné) . Podľa pravidiel PHP by sa obsah mal zobraziť po odoslaní hlavičiek. A všetko vonkutoto je obsah - text zobrazený na obrazovke, dokonca aj neviditeľný znak \ n. Preto takýto text vyvoláva chybu.

Aby ste sa vyhli chybám, zvážte 4 body:

# 1 Správne hniezdenie

Napríklad sme mali takúto štruktúru:

........ kód tu .........?>

Správne takto:

# 2 Žiadne zalomenia riadkov, medzery, text predtým

Takýto kód vyvolá chybu:

A tento nie je:

Logickejšie je to napísať takto:

Stáva sa, že zalomenie riadku je umiestnené na úplnom konci functions.php, potom sa to stáva skutočným problémom, pretože všetko sa zdá byť správne, ale stránka nefunguje. Vlastne po?> Alebo predtým

je tam prázdny riadok

Z tohto dôvodu mnohí vývojári úplne odstránia značku?> Closing, čo je v PHP v poriadku. Odporúčam, aby ste vždy urobili toto:

# 3 Použitievnútri funkcie PHP

Ak je funkcia vo functions.php, potom vnútri tejto funkcie môžete použiť značky, napríklad, aby ste vizuálne zvýraznili HTML kód vo funkcii:

toto je html kód

Faktom je, že v tomto prípade je funkcia iba zaregistrovaná a nevykonáva žiadnu akciu. Všetko vo funkcii (medzi ()) nefunguje, kým sa táto funkcia nezavolá, ale takéto funkcie sa zvyčajne volajú zo šablóny alebo cez filtre po odoslaní hlavičiek HTTP. Preto v tomto príklade môžeme zalomenie riadkov ignorovať a použiť?> A

# 4 Kódovanie

Ešte jedna poznámka k súboru functions.php: súbor nastavte na kódovanie UTF-8 (UTF-8 bez kusovníka). V opačnom prípade, ak má funkcia v súbore text v azbuke, zobrazí sa v nezrozumiteľných symboloch: krakozyabrami, čmáranice - nazvite si to, ako chcete.