Domovská » WordPress » 15 Užitečné funkce WordPress Všichni vývojáři by měli vědět

    15 Užitečné funkce WordPress Všichni vývojáři by měli vědět

    WordPress je plný skvělých funkcí pro nás vývojáře používat. Můžeme vytáhnout poštovní seznamy ze vzduchu, manipulovat s nimi téměř vše, chytit každého uživatele, kterého si přejeme, a zobrazit jeho sociální připojení v síti..

    Existuje však několik málo funkcí, které jsou z neznámých důvodů přehlíženy. Byl jsem kódování s WordPress asi 8 let a občas jsem stále najít něco nového! Podívejme se na některé z mých oblíbené přehlížené funkce a naučit se je používat po cestě.

    antispambot ()

    Zpravidla jsem si s tímto povznesl několik obočí, zdá se, že je to jedna z nejvíce skrytých funkcí v codebase. antispambot () Nahradí znaky HTML entitami, což je jedna cesta maskovat e-mailové adresy od zlých škrabáků.

     $ email = '[email protected]'; echo 'Můžete mě kontaktovat na'. antispambot ($ email). „kdykoliv“. 

    I když je to užitečná pomůcka, je to také příklad, proč někteří lidé kritizují WordPress - to je hrozně pojmenovaná funkce. Z čtení názvu funkce nemáte ponětí, co to dělá.

    human_time_diff ()

    Když jsem se o této funkci poprvé dozvěděl asi před rokem, myslel jsem, že to musel být nedávný přírůstek, který jsem přehlédl v changelogu. Ne tak docela…

    Tato funkce - která produkuje rozdíl mezi dvěma časovými razítky - je v provozu od verze 1.5 (to je 17. únor 2018!).

    Následující velký úryvek, který jsem si vypůjčil z kodexu, ukazuje, jak dlouho byl publikován aktuální příspěvek. Používá jako první argument zveřejní datum postu a aktuální datum jako druhé.

     echo 'Tento příspěvek byl publikován'. human_time_diff (get_the_time ('U'), current_time ('časové razítko')). 'před'; 

    get_post_meta ()

    Mějte se mnou tady, vím, že je to dobře používaná funkce, ale jak to funguje, není-tak všeobecná znalost. Za prvé, vynecháním druhého a třetího parametru můžete vytáhněte všechna metadata pro příspěvek.

     $ all_meta = get_post_meta (14); 

    Dokonce i když jen chytíte data pro jeden klíč, všechny postmety jsou stejně vytáhnuty.

    Důvod je vlastně dost logický. Metadata se používají na více místech. Li get_post_meta () dotazuje databázi pokaždé, když bylo použito, skončili jsme s příliš mnoha dotazy. Pokud namísto toho vytáhnete metadata, která je uloží do mezipaměti, a použije hodnoty mezipaměti na všech následných načtených metadatech.

    wp_upload_bits ()

    Tato funkce je přímočará funkce nahrávání souborů. I když soubor nepřenáší do složky uploadů a přidává jej do sekce médií WordPress, je velmi pohodlný a zbytek můžete vždy udělat pomocí wp_insert_attachment () funkce.

     $ upload = wp_upload_bits ($ file ['name'], null, file_get_contents (soubor $ ['tmp_name'])); 

    Nějaké vysvětlení je po ruce pro toto: první parametr je název souboru. Druhý je odepisován, takže by měl být nastaven na null (eyeroll na konzistenci WordPress). Třetí parametr je skutečný obsah souboru.

    get_post_field ()

    V minulosti jsem viděl několik příkladů, kdy někdo napsal smyčku, aby získal komentář, nebo napsal vyhrazený databázový dotaz. Nepotřebujete je, co potřebujete get_post_field (). Tato funkce načte hodnotu jednoho pole pro jeden příspěvek v databázi. Pojďme chytit komentář počítat!

     Tento příspěvek má  připomínky. 

    wpautop ()

    Tato funkce se objevila v centru pozornosti, ale je stále relativně neznámá. Je to podobné nativní PHP nl2br ale místo vytváření nových linek Zabalí váš obsah do odstavců.

    To je užitečné, pokud máte textové pole a chcete se ujistit, že když uživatelé vytvoří odstavce s dvojitým přerušením řádků, zůstanou viditelné i na frontě..

     

    Co říkají naši uživatelé

    wp_is_mobile ()

    Tato výstižně pojmenovaná funkce zjistí, kdy je uživatel v mobilním zařízení, a umožňuje vám odpovídajícím způsobem zobrazit obsah. Vzhledem k tomu, že se jedná o podmíněné označení, vrátí hodnotu true nebo false v závislosti na scénáři.

      Navštivte naše webové stránky na ploše a získáte bohatší uživatelské prostředí  

    wp_redirect ()

    Poslední příklad ukazuje další čistou funkci: wp_redirect (). To by mělo být použito místo nativního PHP záhlaví () funkce. Funkce přesměrování WordPress umožňuje nastavit adresu URL pro přesměrování a také nastavit stavový kód, skvělé i pro trvalé přesměrování.

     // Pro URL, která se již nepoužívá wp_redirect ('http://website.com/new-url/', 301); 

    paginate_links ()

    Vsadím se, že tato funkce vděčí za svou neznámost částečně popularitě WP-PageNavi pluginu. Ve výchozím nastavení WordPress zobrazí předchozí / další odkazy na konci vašeho seznamu příspěvků. WP-PageNavi nahrazuje čísla stránek.

    To může být skutečně provedeno s trochou práce pomocí paginate_links () funkce. Má poměrně málo parametrů, takže doporučuji nahlédnout do dokumentace.

    Následující příklad z kodexu ukazuje, jak ji můžete přidat do výchozí smyčky, ale její přidání do vlastních smyček není příliš mnoho..

     globální $ wp_query; $ big = 999999999; // potřebovat nepravděpodobné celé číslo echo paginate_links (pole ('base' => str_replace ($ big, '% #%', esc_url (get_pagenum_link ($ big))), 'format' => '? paged =% #%' , 'aktuální' => max (1, get_query_var ('paged')), 'total' => $ wp_query-> max_num_pages));

    wp_die ()

    Tato funkce doplňuje PHP zemřít() funkce. Rozdíl je v tom, že tato funkce bude zobrazovat HTML ve stylu WordPress namísto pouhého textu. Tuto funkci můžete použít k zastavení provádění PHP. Můžete přidat zprávu, název a další argumenty, které se mají zobrazit, například:

     wp_die ("Jejda, nemáte přístup k", "Oprávnění odepřeno"); 

    has_block ()

    Ve verzi 5.0, WordPress představil blok založený editor, codenamed Gutenberg. Tato funkce identifikuje, zda obsah obsahuje Gutenberg, zcela shodně s has_shortcode () funkce. Vrátí se skutečný pokud obsah obsahuje blok nebo Nepravdivé pokud ne.

    wp_set_script_translations ()

    Vzhledem k tomu, mnoho částí uživatelského rozhraní WordPress se bude pohybovat na JavaScript, potřebuje pohodlný způsob, jak zaregistrovat překladatelných textů v JavaScriptu, že WordPress mohl analyzovat a pochopit. Tato funkce slouží k nastavení přeložených řetězců pro skripty. Níže je uveden pří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 ()

    Další prominentní funkce ve WordPress 5.0. Tato funkce umožňuje zaregistrovat nový blok v novém editoru WordPressu. Váš blok se objeví v novém editoru a vloží se .

    register_block_type ('my-plugin / new-block', array ('title' = '' Nový blok ',' icon '=>' megafon ',' category '=>' widgety ',' render_callback '=>' render_function_callback ' ,));

    rest_do_request ()

    Tato funkce vám umožňuje volat do koncových bodů API aplikace WordPress REST přes PHP. Velmi užitečné, když potřebujete načíst výstup z API REST, který zpracováváte dále v rámci PHP místo na straně prohlížeče (front-end).

    $ request = new WP_REST_Request ('GET', "/ wp / v2 / posts"); $ request-> set_header ('X-WP-Nonce', wp_create_nonce ('wp_rest')); $ response = rest_do_request ($ request); $ data = 200 === $ response-> get_status ()? $ response-> get_data (): [];

    rest_preload_api_request ()

    Při vytváření uživatelsky náročného uživatelského rozhraní JavaScriptu v aplikaci WordPress obvykle potřebujeme sadu počátečních dat nahraných v rámci stránky. To je funkce, která vám to umožní. Tato funkce má být použita ve spojení s array_reduce, například.

     // Přednastavení společných dat. $ preload_paths = array ('/', '/ wp / v2 / types? context = edit', '/ wp / v2 / taxonomies? per_page = -1 & context = edit', '/ wp / v2 / themes? status = active' ,); preload_data = array_reduce ($ preload_paths, 'rest_preload_api_request', array ()); wp_add_inline_script ('wp-api-fetch', sprintf ('wp.apiFetch.use (wp.apiFetch.createPreloadingMiddleware (% s));', wp_json_encode ($ preload_data)), 'after'); 

    Závěr

    To jsou jen některé funkce, které se zdají být méně známé, že zbytek. Objevuji novou skvělou funkci asi každé dva měsíce a jsem si jistý, že naši vývojoví přátelé nás mohou překvapit ještě více.

    Pokud máte oblíbenou funkci nebo funkci, která by byla užitečná, ale není k dispozici, dejte nám vědět v komentářích!