Užitočné vložky kódu (úryvky) pre WordPress. PHP kód vo WordPress – osvedčené postupy Bezkonfliktné prepojenie skriptov a štýlov vo WordPress

Aby sa zabezpečilo, že kód WordPress bude všade navrhnutý v rovnakom štýle a bude ľahko čitateľný v jadre, doplnkoch a témach, odporúča sa dodržiavať štandardy kódovania prijaté vývojármi WordPress. Tieto štandardy sú veľmi podobné štandardu PEAR, existujú však značné rozdiely. Odporúčam vám sa s nimi zoznámiť a ak je to možné, riadiť sa nimi pri vytváraní pluginov alebo tém.

Okrem štandardov pre písanie samotného PHP kódu existujú aj štandardy pre dokumentovanie kódu - sú to komentáre k funkciám a háčikom: PHP Documentation Standards (anglicky)

Jednoduché a dvojité úvodzovky

Ak v reťazci nie sú žiadne premenné, použite jednoduché úvodzovky, inak dvojité úvodzovky. V reťazci nie je potrebné uvádzať úvodzovky a ak sú prítomné, odporúča sa ich striedať:

Echo "Názov odkazu"; echo "$linkname";

Druhý riadok v tomto príklade nevymaže výstupné premenné, čo sa musí urobiť z bezpečnostných dôvodov. Preto pre takýto zápis musia byť premenné vopred vymazané. Vo všeobecnosti možno takýto záznam považovať za neprijateľný! Pozrite si časť s návodom na bezpečný výstup.

Vrúbky

Odsadenie by malo vždy zobrazovať logickú štruktúru kódu. Namiesto medzier použite tabulátory (kláves Tab) – poskytuje to väčšiu flexibilitu. Medzery by sa mali používať, keď potrebujete niečo zarovnať v rámci riadku.

pravidlo: tabulátory by sa mali používať na začiatku riadku na odsadenie, zatiaľ čo medzery môžu byť použité v strede riadku na zarovnanie.

If (podmienka) ( $foo = "nejaká hodnota"; $foo2 = "nejaká hodnota2"; $foo_bar = "nejaká hodnota3"; $foo5 = "nejaká hodnota4"; )

A takto vyzerá kód, ak zobrazíte neviditeľné znaky tabulátora a medzery:

If (podmienka) ( ---$foo.....= "nejaká hodnota"; ---$foo2....= "nejaká hodnota2"; ---$foo_bar.= "nejaká hodnota3"; ---$foo5 ....= "nejaká hodnota4" ;)

V prípade asociatívnych polí musia hodnoty začínať na novom riadku. Pri vypisovaní prvkov poľa sa odporúča zadať „poslednú“ čiarku – vďaka tomu je pridávanie nových prvkov pohodlnejšie...

$my_array = array(---"foo"..=> "somevalue", ---"foo2"..=> "somevalue2", ---"foo3"..=> "somevalue3", -- - "foo34".=> "nejaká hodnota3",);

Štýl kučeravej ortézy

Kučeravé zátvorky sa musia použiť pre všetky bloky v štýle, ako je znázornené nižšie:

If (podmienka) ( akcia1(); akcia2(); ) elseif (podmienka2 && podmienka3) ( akcia3(); akcia4(); ) else (predvolená akcia(); )

Ak existuje dlhý blok, mal by sa rozdeliť na dva alebo viac krátkych blokov alebo funkcií, ak je to možné. Ak je takýto dlhý blok potrebný, pridajte na koniec krátky komentár, aby bolo jasné, čo presne kučeravá ortéza uzatvára. Tento prístup je logické použiť pre blok s 35 alebo viac riadkami.

Každý kód, ktorý nie je intuitívny, by mal byť zakomentovaný.

Vždy používajte kučeravé rovnátka, aj keď to nie je potrebné.

If (condition) ( action0(); ) if (condition) ( action1(); ) elseif (condition2) ( action2a(); action2b(); ) foreach ($items as $item) ( process_item($item); )

Upozorňujeme, že požiadavka na používanie zložených zátvoriek vždy znamená, že konštrukcie v štýle jednej čiary sú zakázané.

$var = "dangerous""; // nespracované údaje, ktoré môžu alebo nemusia uniknúť $id = some_foo_number(); // údaje sa očakávajú ako číslo, ale nie sme si istí $wpdb->query($wpdb-> priprav( "UPDATE $wpdb->posts SET post_title = %s WHERE ID = %d", $var, $id));

%s sa používa pre reťazce a %d pre celé čísla. Upozorňujeme, že nie sú „v úvodzovkách“! $wpdb->prepare() sám escapuje reťazce a v prípade potreby pridáva úvodzovky. Výhodou Prepare() je, že si nemusíte pamätať manuálne použitie esc_sql() a tiež to, že reťazec dotazu so zástupnými symbolmi je vizuálnejší, ako keby používal premenné zabalené v esc_sql() .

Databázové dotazy

Snažte sa nezapisovať priame dotazy do databázy. Ak existuje vhodná funkcia, a je ich vo WP veľa, ktorá dokáže získať potrebné dáta, použite ju.

Používanie funkcií namiesto dotazov pomáha udržiavať budúcu kompatibilitu kódu. Mnohé funkcie navyše pracujú s vyrovnávacou pamäťou a to môže výrazne urýchliť kód.

Názvy tried, funkcií, súborov, konštánt, premenných

Názvy funkcií, premenných, hákov

V premenných, háčikoch a názvoch funkcií používajte malé písmená a-z a nikdy nie CamelCase . Jednotlivé slová oddeľte podčiarkovníkom _. Neskracujte názvy premenných, pokiaľ to nie je nevyhnutné; udržiavať kód jednoznačný a samodokumentačný.

Funkcia some_name($some_variable) ( [...] )

Názvy tried

Musíte použiť slová s veľkými_písmenami oddelenými podčiarkovníkom. Akékoľvek skratky (akronymy, skratky) musia byť VEĽKÉ.

Class Walker_Category rozširuje Walker ( [...] ) triedu WP_HTTP ( [...] )

Konštanty musia byť VEĽKÉ slová oddelené podčiarkovníkom:

Define("DOING_AJAX", true);

Názvy súborov

Musí byť jasné a musí obsahovať iba malé písmená a slová musia byť oddelené pomlčkou - .

My-plugin name.php

Názvy súborov tried

Malo by byť založené na názve triedy s predponou class- , podčiarkovníky v názve triedy sú nahradené spojovníkom, napríklad WP_Error sa zmení na:

Class-wp-error.php

Tento štandard pomenovávania súborov je platný pre všetky existujúce a nové súbory tried. Existujú však súbory výnimiek: class.wp-dependencies.php, class.wp-scripts.php, class.wp-styles.php. Tieto súbory majú predponu class. , bodka za slovom trieda namiesto spojovníka.

Vymazať hodnoty premenných v parametroch funkcií

Booleovské hodnoty sú uprednostňované pred hodnotami reťazca. Tie. Namiesto true/false pri volaní funkcií je lepšie použiť nejaký reťazec vysvetľujúci hodnotu parametra.

Zlý kód:

Funkcia eat($čo, $pomaly = pravda) ( ​​... ) eat("huby"); jesť("huby", pravda); // čo znamená pravda? eat("dogfood", false); // čo znamená nepravda, opak pravdy?

Keďže PHP nepodporuje pomenované argumenty, hodnoty flag sú bezvýznamné a zakaždým, keď sa stretneme s volaním funkcie, ako v príkladoch vyššie, musíme sa pozrieť do dokumentácie funkcie. Kód môže byť čitateľnejší, ak namiesto boolovských hodnôt použijete hodnoty popisného reťazca.

Dobrý kód:

Funkcia jesť($čo, $rýchlosť = "pomaly") ( ... ) jesť("huby"); jesť("huby", "pomaly"); jesť("krmivo", "rýchlo");

Ak potrebujete viac parametrov funkcií, použite pole $args. Je ešte lepší!

Veľmi dobrý kód:

Funkcia eat($čo, $args) ( ... ) eat("rezance", array("rýchlosť" => "mierne"));

Interpolácia pre dynamické názvy hákov

Pre ľahkú čitateľnosť a detekciu by mali byť háčiky s premennými v ich názvoch interpolované (uzavreté v zložených zátvorkách ( a )) a nemali by byť zreťazené:

Zátvorky sú potrebné, aby PHP mohlo správne analyzovať dátové typy premenných v interpolovanom reťazci.

// oprava do_action("($new_status)_($post->post_type)", $post->ID, $post); // nesprávne vykonanie_akcie($new_status "_". $post->post_type, $post->ID, $post);

Ak je to možné, dynamické hodnoty v názvoch značiek by tiež mali byť čo najkratšie a najpresnejšie. $user_id je oveľa prehľadnejšie ako napríklad $this->id .

Ternárny operátor

Ternárne operátory sú dobré, ale odporúčajú, aby ste vždy testovali pravdivé tvrdenie a nie nepravdivé tvrdenie. Inak je to jednoducho zavádzajúce kvôli dvojitému negatívu. Výnimkou je použitie! empty(), pretože niekedy je ťažké to napísať inak.

Ako skontrolovať:

// (ak je podmienka pravdivá = pravda) ? (potom urobíme toto): (inak toto); $music_type = ("jazz" == $hudba) ? "cool" : "bla"; // (ak hodnota nie je prázdna - ! prázdna) ? (potom urobíme toto): (inak toto);

Ako nepísať:

// (ak nie je splnená podmienka!= true) ? (potom urobíme toto): (inak toto); $music_type = ("jazz" != $music) ? "bla" : "cool";

Podmienky majstra Yodu

Pri vykonávaní logických porovnaní vždy dávajte konštanty alebo literály naľavo a premennú napravo.

Ak (pravda == $the_force) ( $víťazný = you_will($be); )

Ak vo vyššie uvedenom príklade vynecháme druhé znamienko = (pravdaže, stáva sa to aj tým najskúsenejším z nás), dostaneme chybu PHP a hneď ju uvidíme, pretože kód nebude fungovať. Ak by ale bola konštrukcia opačná - $the_force = true , tak by bola podmienka vždy splnená a nevideli by sme žiadnu chybu a mohli by sme prehliadnuť takú závažnú chybu, ktorú je tiež niekedy ťažké zachytiť!

Musíte si len zvyknúť na tento pravopis „hore nohami“.

To platí aj pre == , != , === a !== . "Yodove podmienky" pre< , > , <= или >= oveľa ťažšie čitateľné a je lepšie ich tu nepoužívať.

Inteligentný kód

Čitateľnosť kódu by skrátka mala byť v popredí, je dôležitejšia ako stručnosť alebo nejaké nie samozrejmé, ale pohodlné skratky.

Isset($var) || $var = nejaka_funkcia(); // alebo! isset($var) && $var = nejaka_funkcia();

Áno, toto je skvelá nahrávka, je jasné, že ju vytvoril skúsený programátor. Ale každý iný vývojár a často aj autor, aby porozumel takémuto záznamu, potrebuje trochu zahĺbiť a stráviť ďalšie sekundy alebo minúty. Toto nie je jasné alebo jasné heslo a malo by sa mu vyhnúť a je lepšie ho napísať dlhšie, ale jasnejšie:

If (! isset($var)) ( $var = some_function(); )

Operátor potlačenia chýb @

PHP podporuje jeden operátor kontroly chýb: znak @. V prípade, že predchádza akémukoľvek výrazu v kóde PHP, všetky chybové hlásenia generované týmto výrazom budú ignorované.

Aj keď tento operátor v jadre existuje, často sa používa, pretože je príliš lenivý na správne spracovanie premennej. Jeho využitie je silné Neodporúčané pretože aj dokumentácia PHP uvádza:

Pozor: Operátor „@“ dnes potláča výstup správ aj o kritických chybách, ktoré prerušujú skript. Okrem iného to znamená, že ak ste pomocou „@“ potlačili chyby, ktoré sa vyskytnú pri spustení funkcie, ak nie je dostupná alebo je napísaná nesprávne, ďalšie vykonávanie skriptu sa zastaví bez akéhokoľvek upozornenia.

Jedného dňa ste sa rozhodli vytvoriť si vlastnú webovú stránku alebo blog a pre systém správy ste si vybrali WordPress... Postupom času sa vaša stránka stávala čitateľnejšou a potom ste si uvedomili, že pre ešte väčšiu popularitu je potrebné pridať trochu funkcionality na stránku alebo jednoducho zautomatizujte nejakú akciu.

Idete do „skladu“ pluginov wordpress a zistíte, že plugin, ktorý potrebujete, tam nie je. Čo robiť? Čo mám robiť? Ak sa aspoň trochu orientujete v základoch programovania v PHP, layoute, tak to pre vás nebude ťažké Napíšte si plugin pre WordPress sami.

Teraz poďme do „kuchyne“, aby sme pripravili náš doplnok.

P.s. Ak sa nevyznáte v php a rozložení... nebojte sa, požiadajte niekoho, aby vám napísal potrebnú funkcionalitu :)

Než začnete písať plugin, musíte si prečítať dokumentáciu WordPress, ktorá popisuje základné princípy písania pluginov a niektoré príklady kódu.

Nebudem duplikovať tieto informácie, ale prejdem priamo k písaniu kódu.

Poďme si napísať jednoduchý plugin, ktorý vám umožní ukladať a zobrazovať recenzie o vašej stránke. Samozrejme, že takéto doplnky už existujú, ale ako príklad to postačí.

Prvá vec, ktorú urobíme, je prísť s jedinečným názvom pre náš doplnok – “ AdvUserReviews«.

Ďalej vytvoríme nový adresár „advuserreviews“ v adresári vašej stránky „/wp-content/plugins/“. A v ňom vytvoríme súbor “advuserreviews.php”. Toto bude hlavný súbor, ktorý bude zodpovedný za všeobecnú inicializáciu. (Pre súbory je vhodné použiť kódovanie UTF-8).

Na samom začiatku súboru musíte zadať základné informácie o doplnku

Ak teraz prejdete na ovládací panel, môžete vidieť, že systém našiel nový doplnok a ponúka jeho aktiváciu. Na to je však ešte priskoro.

Náš nový plugin napíšeme v štýle OOP a všetko spracovanie dát bude umiestnené v jednom súbore. Vytvorme hlavnú kostru súboru.

// Zastavenie priameho volania if(preg_match("#" . basename(__FILE__) . "#", $_SERVER["PHP_SELF"])) ( die("Nemôžete volať túto stránku priamo."); ) ak (!class_exists("AdvUserReviews")) ( class AdvUserReviews ( // Verejné ukladanie interných údajov $data = array(); // Konštruktor objektu // Inicializácia funkcie hlavných premenných AdvUserReviews() ( ) ) ) global $price; $cena = new AdvUserReviews();

Teraz pridajte nasledujúci kód do konštruktora objektu:

Funkcia AdvUserReviews() ( global $wpdb; // Deklarujte inicializačnú konštantu nášho pluginu DEFINE("AdvUserReviews", true); // Názov súboru nášho pluginu $this->plugin_name = plugin_basename(__FILE__); // URL adresa pre náš plugin $ this->plugin_url = trailingslashit(WP_PLUGIN_URL."/".dirname(plugin_basename(__FILE__))); // Tabuľka na ukladanie našich recenzií // premenná $wpdb musí byť deklarovaná globálne $this->tbl_adv_reviews = $wpdb ->prefix . "adv_reviews"; // Funkcia, ktorá sa vykoná pri aktivácii doplnku register_activation_hook($this->názov_pluginu, pole(&$this, "activate")); // Funkcia, ktorá sa vykoná, keď je doplnok deaktivovaný register_deactivation_hook($this->plugin_name, array (&$this, "deactivate")); // Funkcia, ktorá sa vykoná pri odinštalovaní pluginu register_uninstall_hook($this->plugin_name, array(&$this, "uninstall")); )

V konštruktore objektov používame 3 „háky“ alebo „háky“ (čo sú to?): register_activation_hook, register_deactivation_hook A register_uninstall_hook- to sú funkcie, ktoré sa vykonávajú pri aktivácii, deaktivácii a vymazaní pluginu.

Teraz poďme priamo implementovať tieto funkcie.

/** * Aktivácia doplnku */ function activate() ( global $wpdb; require_once(ABSPATH . "wp-admin/upgrade-functions.php"); $table = $this->tbl_adv_reviews; // Určenie verzie mysql if ( version_compare(mysql_get_server_info(), "4.1.0", ">=")) ( if (! empty($wpdb->charset)) $charset_collate = "PREDVOLENÁ MADA ZNAKOV $wpdb->charset"; if (! empty( $wpdb->collate)) $charset_collate .= "COLLATE $wpdb->collate"; ) // Štruktúra našej tabuľky pre recenzie $sql_table_adv_reviews = "CREATE TABLE `.$wpdb->prefix."adv_reviews` (`ID` INT(10) UNSIGNED NULL AUTO_INCREMENT, `review_title` VARCHAR(255) NOT NULL DEFAULT "0", `review_text` TEXT NOT NULL, `review_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `LL`review_user_name , `review_user_email` VARCHAR(200) NULL, PRIMARY KEY (`ID`))".$charset_collate.";"; // Kontrola existencie tabuľky, ak ($wpdb->get_var("zobraziť tabuľky ako "".$table .""" ) != $table) ( dbDelta($sql_table_adv_reviews); ) ) /** * Deaktivácia pluginu */ funkcia deactivate() ( return true; ) /** * Odstránenie doplnku */ function uninstall() ( global $wpdb; $wpdb->query("DROP TABLE IF EXISTS ($wpdb->prefix)adv_reviews"); )

Variabilné $wpdb Zodpovedá za otázky do databázy. Funkcia dbDelta analyzuje aktuálnu štruktúru tabuľky, porovnáva ju s požadovanou štruktúrou tabuľky a podľa potreby tabuľku buď pridá alebo upraví.

Podľa toho sa pri aktivácii doplnku vytvorí tabuľková štruktúra na ukladanie recenzií. Keď je doplnok deaktivovaný, nevykoná sa žiadna akcia, ale keď sa odstráni, vymažeme našu tabuľku. Akcie sa dajú podrobnejšie pochopiť zo zdrojového kódu.

Základná štruktúra nového pluginu je hotová. Teraz musíme začať písať funkčnú časť. Aby sme to dosiahli, musíme do konštruktora triedy pridať nasledujúce riadky kódu:

// Ak sme v admin. interface if (is_admin()) ( // Pridať štýly a skripty add_action("wp_print_scripts", array(&$this, "admin_load_scripts")); add_action("wp_print_styles", array(&$this, "admin_load_styles")); // Pridať ponuku pre doplnok add_action("admin_menu", array(&$this, "admin_generate_menu")); ) else ( // Pridať štýly a skripty add_action("wp_print_scripts", array(&$this, "site_load_scripts" )) ; add_action("wp_print_styles", array(&$this, "site_load_styles")); add_shortcode("show_reviews", array (&$this, "site_show_reviews")); )

Pozrime sa na túto časť kódu podrobnejšie. Začnime s administračným panelom.
Funkcia " is_admin» skontroluje, v akom režime práve pracujeme – na webovej stránke alebo v ovládacom paneli.
Ďalej sa pre funkcie používa niekoľko háčikov:

  • wp_print_scripts- Pridajte potrebné súbory javascript
  • wp_print_styles- Pridajte potrebné štýly
  • admin_menu- Pridanie nového menu na ovládací panel

Každý háčik zodpovedá metóde implementovanej v našej triede. V ktorej sa vykonávajú potrebné operácie.
Pozrime sa na kód na prepojenie štýlov a skriptov

/** * Načítanie potrebných skriptov pre stránku správy * v administračnom paneli */ funkcia admin_load_scripts() ( // Registrácia skriptov wp_register_script("advReviewsAdminJs", $this->plugin_url . "js/admin-scripts.js") ; wp_register_script( "jquery", $this->plugin_url . "js/jquery-1.4.2.min.js"); // Pridanie skriptov na stránku wp_enqueue_script("advReviewsAdminJs"); wp_enqueue_script("jquery"); ) /** * Načítanie potrebných štýlov pre riadiacu stránku * v administračnom paneli */ funkcia admin_load_styles() ( // Registrácia štýlov wp_register_style("advReviewsAdminCss", $this->plugin_url . "css/admin-style.css") ; // Pridať štýly wp_enqueue_style( "advReviewsAdminCss"); )

Používajú sa tu nasledujúce funkcie.

Každá akcia závisí od odovzdaného parametra „action“, respektíve „edit“ – úprava recenzie, „submit“ – uloženie upravenej recenzie a „delete“ – vymazanie recenzie.

Výmena údajov so zobrazovanými stránkami prebieha prostredníctvom vlastnosti objektu „data“. Zdrojový kód týchto stránok bude zverejnený v archíve s týmto modulom na konci článku. Nebudem ich sem vkladať, keďže téma je už dosť rozsiahla.

Tu končíme s administračným panelom a prechádzame k zobrazovaniu a pridávaniu recenzií od používateľov.

Aby sme WordPressu povedali, kedy má zavolať náš doplnok, musíme zaregistrovať „shortcode“, čo bolo urobené v konštruktore našej triedy. Prečítajte si o tom viac.

Add_shortcode("show_reviews", pole (&$this, "site_show_reviews"));

Teraz môžete umiestniť nasledujúci kód na ľubovoľnú stránku webu a vynúti si vykonanie funkcie, ktorú sme zadali (odovzdali ako druhý parameter). Nižšie je uvedený zdrojový kód tejto funkcie.

/** * Zoznam recenzií na stránke */ verejná funkcia site_show_reviews($atts, $content=null) (globálne $wpdb; if (isset($_POST["action")]) && $_POST["action"] = = " add-review") ( $this->add_user_review(); ) // Vybrať všetky recenzie z databázy $this->data["reviews"] = $wpdb->get_results("SELECT * FROM `" . $ this- >tbl_adv_reviews . "`", ARRAY_A); ## Povoliť ukladanie do vyrovnávacej pamäte ob_start (); include_once("site_reviews.php"); ## Prijímať údaje $output = ob_get_contents (); ## Zakázať ukladanie do vyrovnávacej pamäte ob_end_clean (); return $output ; ) súkromná funkcia add_user_review() ( globálne $wpdb; $inputData = array("review_title" => strip_tags($_POST["review_title"]), "review_text" => strip_tags($_POST["review_text"]) , " review_user_name" => strip_tags($_POST["review_user_name"]), "review_user_email" => strip_tags($_POST["review_user_email"]),); // Pridať novú recenziu na stránku $wpdb->insert( $this-> tbl_adv_reviews, $inputData); )

V zásade tu nie je nič zložité - na výber údajov sa vykoná dotaz SQL, ale ak sa odovzdá parameter „akcia“, najskôr sa pridá nová recenzia. Ale stojí za to venovať pozornosť výstupnej vyrovnávacej pamäti. Je to potrebné na získanie údajov vloženej stránky.

To je všetko. Teraz môžeme vidieť, čo sme dostali. A stiahnuť plugin a zdrojové kódy môžete tu.

Samozrejme, toto je len príklad vytvorenia pluginu, ale bude fungovať aj ako jednoduchá hosťovská aplikácia, ak ju trochu upravíte, napríklad pridáte ochranu pred robotmi a výstup po stránke. Šťastné kódovanie :)

Formulár na webovej stránke:

Ovládací panel pluginu:

Úprava recenzie:

Mohlo by vás tiež zaujímať:


Všetci začínajúci webmasteri sú vystrašení a odradení prácou s kódom – obávajú sa, že poškodia svoju stránku tým, že na ňu pridajú HTML alebo PHP, alebo ju vložia na nesprávne miesto. Samozrejme, ak vložíte kód do WordPressu na nesprávne miesto, môžete všetko pokaziť. Tento CMS je však tak dobre prispôsobený pre začiatočníkov, že bude ťažké urobiť chybu.

V tomto článku sa pozrieme na to, ako bezpečne vložiť HTML alebo PHP kód do WordPressu. Ale najprv, prečo by to mohlo byť užitočné.

Prečo vkladať kód do WordPress

Počas životnosti stránky môže byť potrebné, aby správca webu nainštaloval kód na WordPress, ktorý musí byť spustený na stránkach. Môže to byť potrebné z rôznych dôvodov: napríklad inštalácia počítadla premávky, nejaká nezvyčajná miniaplikácia alebo pridanie osobitosti do šablóny.

WordPress ponúka dva spôsoby inštalácie kódu. Pozrime sa na ne.

Inštalácia pomocou miniaplikácie Text

Ak chcete nainštalovať kód na WordPress pomocou miniaplikácie, musíte prejsť na položku ponuky v konzole „Vzhľad“ a podpoložku „Widgety“. Medzi nimi by ste mali nájsť „Text“ a presunúť ho myšou do požadovanej oblasti.

Widget sa otvorí a vy môžete vyplniť jeho názov, ako aj vložiť požadovaný kód do príslušného poľa. Po kliknutí na tlačidlo „Uložiť“ sa operácia vykoná na stránkach lokality.

Tento spôsob inštalácie kódu na WordPress je vhodný na vykonávanie operácií v HTML, PHP a dokonca aj JavaScript. Táto metóda sa často používa, pretože je jednoduchá a funguje dobre pre začiatočníkov.

Inštalácia do súboru

Inštalácia kódu na WordPress pomocou úpravy súborov sa neodporúča začiatočníkom, no skôr či neskôr to bude musieť zvládnuť každý. Táto metóda je vhodná, pretože HTML alebo PHP je možné umiestniť do ľubovoľnej časti, nielen do oblasti widgetov, ako je popísané v prvej metóde. Nevýhodou tohto spôsobu inštalácie je, že môže byť nebezpečný a ak sa vyskytnú chyby, môže to viesť k nefunkčnosti stránky. Preto pred použitím tejto metódy musíte vytvoriť záložnú kópiu súborov a databázy.

Ak chcete nainštalovať kód priamo do súboru na WordPress, musíte vedieť, za ktorú oblasť webu je konkrétny súbor zodpovedný. Nie je možné poskytnúť presné odporúčania, pretože v rôznych šablónach rôzne súbory vykonávajú určité funkcie. Môžete sa však dozvedieť niečo o súboroch tém. Okrem inštalácie kódu do súboru šablóny na WordPress to možno vykonať aj do súborov samotného CMS.

Čitateľnosť kódu je veľmi citlivá téma a treba jej venovať náležitú pozornosť. V tomto článku sa dozviete 16 techník, ktoré vám pomôžu napredovať v tejto téme.

1. Komentáre a dokumentácia

IDE sú vo svete vývojárov čoraz populárnejšie, pretože... poskytujú pohodlné nástroje na komentovanie a dokumentovanie kódu.

Tu je príklad:

Tu je ďalší príklad volania vlastnej metódy:

V tomto príklade je štýl komentárov založený na PHPDoc a IDE, ktoré používam, je Aptana.

2. Zarážky

Predpokladám, že už poznáte dôležitosť odsadenia vo vašom kóde. Vo všeobecnosti existuje niekoľko štýlov formátovania kódu.

Funkcia foo() ( if ($možno) ( do_it_teraz(); znovu(); ) else ( abort_mission(); ) finalize(); )

Funkcia foo() ( if ($možno) ( do_it_teraz(); znovu(); ) else ( abort_mission(); ) finalize(); )

Funkcia foo() ( if ($možno) ( do_it_teraz(); znovu(); ) else ( abort_mission(); ) finalize(); )

Osobne najčastejšie používam štýl #2, no niekedy prejdem na #1. Ale to všetko je, samozrejme, vec vkusu. S najväčšou pravdepodobnosťou neexistuje žiadny „najlepší“ štýl, ktorý by vyhovoval úplne každému. Tieto pravidlá musia v prvom rade dodržiavať tí, ktorí pracujú v tíme alebo sa podieľajú na písaní open-source projektov.

Existujú aj štýly, ktoré kombinujú určité vlastnosti. Napríklad štandardy písania kódu PEAR, kde zložená zátvorka "(" v podmienených príkazoch zostáva na rovnakom riadku, ale je presunutá vo funkciách.

Štýl HRUŠKA:

Funkcia foo() ( // na novom riadku if ($možno) ( // na rovnakom riadku do_it_now(); again(); ) else ( abort_mission(); ) finalize(); )

Treba tiež poznamenať, že tento štýl používa 4 medzery namiesto tabulátorov.

Môžete sa dozvedieť viac o rôznych štýloch.

3. Vyhnite sa zbytočným komentárom

Áno, komentárový kód je dobrý; netreba to však preháňať. Tu je príklad:

// získajte kód krajiny $country_code = get_country_code($_SERVER["REMOTE_ADDR"]); // ak je krajina USA if ($country_code == "US") ( // zobrazenie tvaru echo form_input_state(); )

Ak je práca kódu zrejmá, pravdepodobne by ste nemali písať zbytočné komentáre.

Ak ich nemáte, môžete ich trochu skrátiť:

// zobrazenie formulára, ak je krajina US $country_code = get_country_code($_SERVER["REMOTE_ADDR"]); if ($country_code == "US") ( echo form_input_state(); )

4. Zoskupovanie kódov

Niektoré úlohy si najčastejšie vyžadujú napísanie niekoľkých riadkov kódu. Preto je najlepšie kombinovať takéto úlohy do samostatných blokov oddelených medzerami.

Tu je jednoduchý príklad:

// získajte zoznam fór $forums = array(); $r = mysql_query("VYBRAŤ ID, názov, popis FROM fór"); while ($d = mysql_fetch_assoc($r)) ( $forums = $d; ) // načítanie šablóny load_template("header"); load_template("zoznam_forem",$forum); load_template("päta");

Ak pridáte komentár pred začiatkom každého bloku, ďalej to zlepší čitateľnosť vášho kódu.

5. Schéma pomenovania

Niekedy aj v jazyku PHP nájdete nezrovnalosti v pomenovaní funkcií. A tu je množstvo príkladov:

  • strpos() vs str_split()
  • imagetypes() vs image_type_to_extension()

Existuje niekoľko populárnych štýlov:

  • camelCase: veľké začiatočné písmeno každého nového slova.
  • podčiarkovníky: podčiarknutie medzi slovami: mysql_real_escape_string().

Ak tieto techniky zmiešate, skôr či neskôr sa môžete dostať do nepríjemnej situácie. Ak pracujete na projekte, ktorý používa jednu z týchto techník, budete chcieť nasledovať. To môže stále závisieť od programovacieho jazyka. Napríklad väčšina vývojárov Java používa camelCase, zatiaľ čo vývojári PHP uprednostňujú podčiarkovníky.

Ale aj tu bol hybrid. Niektorí vývojári používajú podčiarkovníky pri pomenovaní tried a metód (mimo tried) a v iných prípadoch používajú camelCase:

Trieda Foo_Bar ( verejná funkcia someDummyMethod() ( ) ) funkcia procedural_function_name() ( )

Ešte raz poviem, že neexistuje najlepší štýl. Len sa musíte niečoho držať.

6. DRY princíp

DRY (Don’t Repeat Yourself) – neopakujte sa. Tiež známy ako DIE: Duplication is Evil.

Hlavnou úlohou každého systému, či už ide o webovú aplikáciu alebo niečo iné, je automatizácia opakujúcich sa úloh. Táto zásada by sa mala dodržiavať vždy a všade, najmä ak ste vývojár. Ten istý kód by sa nemal opakovať znova a znova.

Napríklad väčšina webových aplikácií pozostáva z jednej alebo viacerých stránok. Je jasné, že tieto stránky budú obsahovať rovnaké prvky. Hlavička a päta sú najvýraznejšími príkladmi. Boli by ste prekvapení, koľko ľudí stále duplikuje tieto prvky na každej stránke.

$this->load->view("includes/header"); $this->load->view($main_content); $this->load->view("includes/footer");

7. Vyhnite sa hlbokému hniezdeniu

Čitateľnosť kódu prudko klesá, ak máte hlboké vnorenie.

Funkcia do_stuff() ( // ... if (is_writable($folder)) ( if ($fp = fopen($file_path,"w")) ( if ($stuff = get_some_stuff()) ( if (fwrite($ fp,$stuff)) ( // ... ) else ( return false; ) ) else ( return false; ) ) else ( return false; ) ) else ( return false; ) )

Ak chcete situáciu napraviť, mali by ste prehodnotiť, ako váš kód funguje, a optimalizovať ho:

Funkcia do_stuff() ( // ... if (!is_writable($folder)) ( return false; ) if (!$fp = fopen($file_path,"w")) ( return false; ) if (!$stuff = get_some_stuff()) ( return false; ) if (fwrite($fp,$stuff)) ( // ... ) else ( return false; ) )

8. Obmedzenie dĺžky vedenia

Každý vie, že proces čítania sa stáva oveľa príjemnejším, keď je text rozdelený do stĺpcov. Toto je hlavný dôvod, prečo naše noviny vyzerajú takto:

Podobnú techniku ​​možno použiť aj na náš kód:

// zlý $my_email->set_from(" [chránený e-mailom]")->add_to(" [chránený e-mailom]")->set_subject("Methods Chained")->set_body("Niektorá dlhá správa")->send(); // dobrý $my_email ->set_from(" [chránený e-mailom]") ->add_to(" [chránený e-mailom]") ->set_subject("Methods Chained") ->set_body("Nejaká dlhá správa") ->send(); // zlý $query = "VYBRAŤ id, užívateľské meno, meno, priezvisko, stav FROM užívateľov LEFT JOIN user_posts POUŽITÍM (users.id, user_posts.user_id) WHERE post_id = "123""; // zlý $query = "SELECT id, username, first_name, last_name, status FROM users LEFT JOIN user_posts USING(users.id, user_posts.user_id) WHERE post_id = "123"";

Väčšina vývojárov sa drží limitov 80 a 120 znakov.

9. Organizovanie súborov a priečinkov

Technicky môžete celý kód svojej aplikácie vložiť do jedného súboru :) Ale čo narobíte, keď budete potrebovať niečo zmeniť alebo pridať.

Pamätám si svoje prvé projekty, v ktorých som pripájal súbory. Moja organizácia však bola veľmi chudobná. Vytvoril som priečinok „inc“, do ktorého som umiestnil niekoľko súborov: db.php a functions.php. Počas procesu písania žiadosti sa tento priečinok zväčšoval a zväčšoval a nakoniec bolo ťažké zistiť, čo kde je.

Na vyriešenie tohto problému je lepšie použiť rôzne druhy rámcov alebo aspoň dodržiavať ich štruktúru. Takto vyzerá projekt na CodeIgniter:

10. Názvy premenných

Vo všeobecnosti by názvy premenných mali byť úplne zmysluplné – to je ideálne. Výnimku možno urobiť pre dočasné premenné.

Pozrime sa na niekoľko príkladov:

// $i pre cykly for ($i = 0; $i< 100; $i++) { // $j для вложенных циклов for ($j = 0; $j < 100; $j++) { } } // $ret для возвращаемых переменных function foo() { $ret["bar"] = get_bar(); $ret["stuff"] = get_stuff(); return $ret; } // $k и $v для foreach foreach ($some_array as $k =>$v) ( ) // $q, $r a $d pre mysql $q = "SELECT * FROM table"; $r = mysql_query($q); while ($d = mysql_fetch_assocr($r)) ( ) // $fp pre prácu so súbormi $fp = fopen("file.txt","w");

11 - Kľúčové slová v SQL píšte veľkými písmenami

Väčšina webových aplikácií spolupracuje s databázami. Ak si píšete SQL dotazy sami, potom ich treba aj podľa toho naformátovať... Nie je tu nič zložité. Stačí napísať kľúčové slová veľkými písmenami.

12. Oddeľte kód a údaje

Toto je ďalší princíp, ktorý vám pomôže písať zrozumiteľnejšie programy. Zahŕňa prípravu údajov na jednom mieste (napríklad modely) a interakciu s nimi na inom mieste.

Keď sa PHP prvýkrát začalo vyvíjať, bolo to skôr ako systém šablón. Projekty v tomto jazyku obsahovali zmiešaný kód HTML a PHP. Teraz sa všetko zmenilo a každý by mal prejsť na ďalšiu úroveň písania aplikácií.

Môžete si vyvinúť špeciálny štýl pre seba, alebo môžete použiť dnes najpopulárnejšie prostriedky.

Populárne rámce PHP:

Systémy šablón:

Populárny CMS

13. Špeciálna syntax pre šablóny

Ak nechcete používať šablónový systém, potom si s najväčšou pravdepodobnosťou budete musieť vyvinúť vlastný štýl vkladania PHP kódu do HTML.

A tu je príklad:

Ahoj, užívateľské meno; ?>
|

Moja nástenka

titul; ?>

Fóra ako $forum): ?>

id, $forum->title) ?> (Vlákna->pocet(); ?> vlákna)

popis; ?>

Táto technika vám umožní vyhnúť sa zbytočným zátvorkám. Takýto kód tiež dobre zapadá do kontextu HTML.

14. Procedurálne a objektovo orientované prístupy

Objektovo orientované programovanie vám pomôže držať sa viac-menej jasnej štruktúry, ale to neznamená, že by ste sa mali odkloniť od procedurálnych princípov písania aplikácií.

Objekty sú skvelé na reprezentáciu údajov. Príklad:

Class User ( public $username; public $first_name; public $last_name; public $email; public function __construct() ( // ... ) public function create() ( // ... ) public function save() ( / / ... ) public function delete() ( // ... ) )

Procedurálne metódy majú svoje špecifické výhody.

Funkcia capitalize($string) ( $ret = strtoupper($string); $ret .= strtolower(substr($string,1)); return $ret; )

15. Prečítajte si otvorený zdrojový kód

Projekty Open Source zvyčajne píše veľké množstvo vývojárov. Z tohto hľadiska vám štúdium písaného kódu v podobných projektoch môže pomôcť získať skúsenosti. Tak na to nestrácajte čas.

16. Refaktoring

Refaktoring je zmena kódu bez straty funkčnosti. Dá sa použiť aj na zlepšenie čitateľnosti.Neexistuje priestor na opravu chýb alebo pridávanie funkcií. Stačí trochu zmeniť štruktúru kódu.

Dúfam, že vám tento článok pomohol! Uniká mi niečo? Podeľte sa o svoje skúsenosti!

Dovolím si predpokladať, že sa vo vašom živote vyskytli chvíle, keď ste chceli pridať (opraviť) niečo do témy vašej WP stránky, alebo do funkčnosti nejakého pluginu. Navyše vývojári túto funkciu nezahrnuli do štandardných ovládacích prvkov. A vaša duša nepozná žiadne obmedzenia a vyžaduje úlety fantázie :) Ako ste pochopili, z každej situácie existuje východisko, v tomto prípade budeme musieť opraviť kód pluginu, tému...

Hlavným problémom pri úprave kódu je, že zmeny, ktoré vykonáte, sa, žiaľ, neuložia dlho a s najväčšou pravdepodobnosťou budú zrušené počas ďalšej aktualizácie. Ak je riešením, ktoré vidíte, vyhýbať sa aktualizáciám, dovolím si vás od tohto nebezpečného hanebného rozhodnutia odradiť, pretože aktualizácie obsahujú dôležité zmeny z hľadiska bezpečnosti a opráv chýb a často pridávajú aj nové funkcie.

Preto je vhodnejšie používať metódy, ktoré obstoja v našom dynamicky sa meniacom svete a zároveň ušetria váš drahocenný čas.

Upozornenia!

Na internete často nájdete rady, ktoré navrhujú vykonať zmeny v súbore funkcie.php- ak existuje nejaká príležitosť urobiť to bez toho, je lepšie sa tohto súboru nedotýkať. V nižšie uvedených metódach uvidíte spôsob, ako to implementovať. A v každom prípade musíte vytvoriť podradenú tému a nedotýkať sa tej nadradenej.

Pri pridávaní predpôn k funkcii vždy použite vlastný kód v tvare: _predpona(na názov funkcie, ktorá sa mení). Táto akcia vás ochráni pred konfliktmi s inými funkciami témy alebo doplnku.

Ako teda pridáte kód na stránku WP?

1) Vlastný doplnok

Takto môžete vkladať útržky kódu, ktoré sa pri aktualizácii nevymažú, a tiež ich môžete v budúcnosti upravovať, aktivovať alebo naopak - deaktivovať podľa potreby.

Je to jednoduché: najprv musíte vytvoriť adresár pre váš plugin a podľa toho ho pomenovať, napríklad moy-plugin (použite iba pomlčky, nie podlomky)

Ďalej vytvoríme hlavný súbor doplnku. Ako viete, mal by obsahovať názov, popis a základné informácie, ako aj kód, ktorý pomôže zabezpečiť doplnok pred votrelcami. A tento súbor nazývame, povedzme moy-plugin.php. Prípona .php oznámi WP, v akom jazyku bol súbor vytvorený.

Súbor môžete vytvoriť pomocou metódy opísanej vyššie v ľubovoľnom textovom editore, napríklad NotePad, ktorý je už starostlivo nainštalovaný v operačnom systéme Windows (TextEdit na Macu). Je lepšie nepoužívať editor Microsoft Word, pretože formátuje text a v tejto situácii ho absolútne nepotrebujeme.

Takže tu je kód na pridanie:

A pod týmto kódom vykonajte zmeny tak, ako to vyžaduje vaša kreatívna duša. Na koniec nie je potrebné pridávať uzatváracie značky PHP. V tomto prípade sa názov, popis a adresa URL zobrazia na paneli správcu. A, samozrejme, môžete nahradiť informácie „ClubWP“ svojimi vlastnými informáciami

Potom už zostáva len zabaliť to, čo ste vytvorili, do archívu zip a odoslať ho na ftp vášho webu. V budúcnosti týmto spôsobom môžete vykonať akékoľvek zmeny vo vašom doplnku.

Týmto jednoduchým spôsobom si vytvoríte jednoduchý plugin pre vaše potreby.

2) Doplnok Code Snippets

Ak je pre vás vyššie opísaná metóda náročná alebo ste veľmi praktický človek a ste zvyknutí na rýchlejšie dosahovanie výsledkov, úryvky kódu boli vytvorené špeciálne pre vás. Rovnako ako funkcia opísaná vyššie, doplnok pridá váš kód s možnosťou jeho ďalšej úpravy bez použitia vašej témy.

Po inštalácii doplnku sa na paneli správcu zobrazí nové okno „Úryvky“, do ktorého môžete pridávať nové úryvky. Pre ktorý môžete zadať kód a informácie o jeho účele.

Máte teda možnosť povoliť alebo zakázať vlastný kód vo forme doplnkov. Veľmi pohodlné a praktické, pretože... Niekedy môže dôjsť ku konfliktom s témami a doplnkami a vy to ľahko pochopíte a vygenerovaný kód deaktivujete.

3) Úprava súboru Functions.php podradenej témy

Ak vám používanie pluginov nevyhovuje a potrebujete vykonať zmeny priamo v téme vašej stránky, potom je táto metóda pre vás. Dovoľte mi pripomenúť, že to môžete urobiť iba s detskými témami.

Ak chcete použiť túto metódu, ponúkam svoju šablónu funkcie.php detská téma. Rozbaľte a upravte súbor style.css(názov šablóny a adresa URL importu)

P.S. Pokúste sa urobiť všetko pre to, aby ste si v budúcnosti zjednodušili život, vrátane vášho tvrdého podielu na odstraňovaní chýb a úprave vlastného kódu podľa potreby.