15 Užitočné funkcie WordPress Všetci vývojári by mali vedieť
WordPress je plný skvelých funkcií, ktoré nám môžu vývojári používať. Môžeme vytiahnuť príspevky z tenkého vzduchu, manipulovať takmer všetko o nich, chytiť každého užívateľa, ktorého si želáme a zobraziť ich sociálne médiá pripojenia v jiffy.
Existuje však niekoľko funkcií, ktoré sa z neznámych dôvodov zdajú byť prehliadnuté. Bol som kódovanie s WordPress už asi 8 rokov a občas stále nájdem niečo nové! Poďme sa pozrieť na niektoré z mojich obľúbené prehliadané funkcie a naučiť sa ich používať pozdĺž cesty.
antispambot ()
Zvyčajne vzbudím niekoľko obočí s touto, zdá sa, že je to jedna z najzachovalejších funkcií v kódovej báze.
nahrádza znaky s entitami HTML, čo je jeden spôsob maskovať e-mailové adresy od zlých škrabiek.antispambot ()
$ email = '[email protected]'; echo 'Môžete ma kontaktovať'. antispambot ($ email). "kedykoľvek".
Aj keď je to užitočný tidbit, je to aj príklad toho, prečo niektorí ľudia kritizujú WordPress - to je hrozne pomenovaná funkcia. Od čítania názvu funkcie nemáte tušenie, čo robí.
human_time_diff ()
Keď som sa o tejto funkcii prvýkrát dozvedel asi pred rokom, myslel som si, že to musel byť nedávny prírastok, ktorý som prehliadol v changelogu. Nie úplne…
Táto funkcia - ktorá prináša rozdiel medzi dvoma časovými značkami - bola od verzie 1.5 (to je 17. február 2018!).
Nasledujúci veľký úryvok, ktorý som si z kodexu požičal, ukazuje, ako dlho sa uverejnil aktuálny príspevok. Používa zverejní dátum príspevku ako prvý argument a aktuálny dátum ako druhý.
echo 'Tento príspevok bol zverejnený'. human_time_diff (get_the_time ('U'), current_time ('timestamp')). "pred";
get_post_meta ()
Majte so mnou tu, viem, že je to dobre používaná funkcia, ale ako funguje nie je tak všeobecné vedomosti. Po prvé, vynechaním druhého a tretieho parametra môžete vytiahnite všetky metadáta pre príspevok.
$ all_meta = get_post_meta (14);
Dokonca aj keď vyberáte údaje iba pre jeden kľúč, všetky postmety sú rovnako vytiahnuté.
Dôvod je vlastne celkom logický. Metadáta sa používajú na viacerých miestach. ak
dotazuje databázu pri každom použití, skončíme príliš veľa otázok. Namiesto toho, ak vytiahnete metadáta, ukladá to všetko a použije hodnoty uložené vo vyrovnávacej pamäti na všetky nasledujúce vyhľadávania metaúdajov.get_post_meta ()
wp_upload_bits ()
Táto funkcia je rovná funkcia nahrávania súborov. Zatiaľ čo nepohybuje súbor do priečinka na nahrávanie a pridáva ho do sekcie médií WordPress, je to mimoriadne pohodlné a zvyšok môžete vždy robiť s
funkcie.wp_insert_attachment ()
$ Odovzdanie = wp_upload_bits ($ file [ 'name'], null, file_get_contents ($ file [ 'tmp_name']));
Niektoré vysvetlenie je k dispozícii pre toto: prvý parameter je názov súboru. Druhý je znehodnotený, takže by mal byť nastavený na hodnotu null (eyeroll v konzistencii WordPress). Tretím parametrom je skutočný obsah súboru.
get_post_field ()
V minulosti som videl niekoľko príkladov, v ktorých niekto napísal slučku, aby získal počítanie komentárov pre príspevok, alebo napísal na to špeciálny databázový dopyt. Nepotrebujete ich, čo potrebujete
. Táto funkcia získava hodnotu jedného poľa pre jeden príspevok v databáze. Poďme zachytiť počítanie komentárov!get_post_field ()
Tento príspevok má komentáre.
wpautop ()
Táto funkcia vyšla trochu do reflektora, ale je stále relatívne neznáma. Je to podobne ako PHP natívne nl2br
ale namiesto vytvárania nových línií preberá váš obsah v odsekoch.
To je užitočné, ak máte textové pole a chcete sa uistiť, že keď používatelia vytvárajú odseky s dvojitými riadkami, zostanú viditeľné aj na front-end.
Čo hovoria naši používatelia
wp_is_mobile ()
Táto vhodne pomenovaná funkcia zisťuje, kedy je používateľ na mobilnom zariadení a umožňuje zobrazovať obsah podľa toho. Keďže ide o podmienenú značku, v závislosti od scenára sa vráti pravda alebo falošná.
Navštívte našu webovú stránku na pracovnej ploche pre bohatší zážitok používateľa
wp_redirect ()
Posledný príklad zobrazuje ďalšiu funkciu:
. Toto by malo byť použité namiesto natívneho PHP wp_redirect ()
hlavičky ()
Funkcie. Funkcia presmerovania WordPress vám umožňuje nastavte adresu URL, na ktorú chcete presmerovať, a tiež nastavte stavový kód, skvelé pre manipuláciu s trvalými presmerovaniami.
// Pre adresu URL, ktorá sa už nepoužíva wp_redirect ('http://website.com/new-url/', 301);
paginate_links ()
Vsadím sa, že táto funkcia čiastočne vďačí za popularitu doplnku WP-PageNavi. Štandardne je WordPress zobrazuje predchádzajúce / nasledujúce odkazy na konci zoznamu príspevkov. WP-PageNavi nahradí to číslami stránok.
To sa dá urobiť s malou prácou s použitím
funkcie. Má veľmi málo parametrov, preto odporúčam, aby ste si pozreli dokumentáciu.paginate_links ()
Nasledujúci príklad z kódexu ukazuje, ako ho môžete pridať do predvolenej slučky, ale pridanie do vlastných slučiek nie je príliš roztiahnuté.
globálne $ wp_query; $ big = 999999999; // potrebujú nepravdepodobné celočíselné echo paginate_links (array ( 'base' => str_replace ($ veľký, '% #%', esc_url (get_pagenum_link ($ big))), 'formát' => '? Stránková =% #%' , 'prúdu' => max (1, get_query_var ( 'stranová')), 'Celkom' => $ wp_query-> max_num_pages));
wp_die ()
Táto funkcia dopĺňa PHP die ()
Funkcie. Rozdiel je v tom, že táto funkcia zobrazí HTML štýl WordPress namiesto jednoduchého textu. Túto funkciu môžete použiť na zastavenie PHP. Môžete pridať správu, názov a ďalšie argumenty, ktoré sa majú zobraziť, napríklad:
wp_die ("Hops, nemáte prístup k", "Povolenie bolo odmietnuté");
has_block ()
Vo verzii 5.0 WordPress predstavil blokový editor s kódovým označením Gutenberg. Táto funkcia určuje, či obsah obsahuje Gutenberg, úplne to isté s has_shortcode ()
Funkcie. Bude sa vrátiť pravdivý
ak obsah obsahuje blok, alebo nepravdivý
ak nie.
wp_set_script_translations ()
Keďže veľa užívateľského rozhrania WordPress sa presunie do jazyka JavaScript, potrebuje pohodlný spôsob registrácie preložiteľných textov v jazyku JavaScript, ktorý by mohol WordPress analyzovať a pochopiť. Použite túto funkciu na nastavenie preložených reťazcov pre vaše skripty. Nižšie je uvedený príklad:
wp_enqueue_script ('my-script', plugins_url ('js / my-script.js', __FILE__)); wp_set_script_translations ('my-script', 'mu-text-domain');
register_block_type ()
Ďalšou významnou funkciou v programe WordPress 5.0. Táto funkcia umožňuje zaregistrovať nový blok v novom editore WordPress. Váš blok sa objaví v novom editore a vloží ho .
register_block_type ( 'moje-plugin / new-block', array ( 'title' => 'New Block', 'icon' => 'megafón', 'kategórie' => 'widget', 'render_callback' => 'render_function_callback' ,));
rest_do_request ()
Táto funkcia vám umožňuje uskutočniť volanie na koncové body aplikácie WordPress REST API prostredníctvom PHP. Veľmi užitočné, keď potrebujete získať výstup z rozhrania API REST, aby ste spracovali proces, ktorý budete ďalej spracovávať na strane PHP namiesto toho, aby ste na strane prehliadača (front-end).
$ request = nové WP_REST_Request ("GET", "/ wp / v2 / posts"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); $ response = rest_do_request (požiadavka $); $ dáta = 200 === $ reakcia-> get_status ()? $ response-> get_data (): [];
rest_preload_api_request ()
Pri vytváraní používateľského rozhrania JavaScript s ťažkou silou v aplikácii WordPress je zvyčajne potrebná sada počiatočných údajov načítaných v rámci stránky. Toto je funkcia, ktorá vám to umožní. Táto funkcia je určená na použitie v spojení s array_reduce
, napríklad.
Predbežné načítanie bežných údajov. $ Preload_paths = array ( '/', '/ wp / v2 / druhy? Context = editovať' '/ wp / v2 / taxonómie? Per_page = -1 context = editovať' '/ wp / v2 / themes? Status = aktívne' ,); preload_data = array_reduce ($ preload_paths, 'rest_preload_api_request', array ()); wp_add_inline_script ( 'WP-api-načítanie', sprintf ( 'wp.apiFetch.use (wp.apiFetch.createPreloadingMiddleware (% s));', wp_json_encode ($ preload_data)), 'po');
záver
To sú len niektoré funkcie, ktoré sa zdajú byť menej známe ako zvyšok. Objavujem novú skvelú funkciu asi každé dva mesiace a som si istý, že moji kamaráti na vývojárstve by nás mohli prekvapiť ešte viac.
Ak máte obľúbenú nejasnú funkciu alebo funkciu, ktorá by bola užitočná, ale nie je k dispozícii, dajte nám vedieť v komentároch!