PHP: Käytä WordPress-sovellusliittymää lyhytkoodin luomiseen alasivujen luetteloimiseksi
Työskentelemme yritysasiakkaalle melko monimutkaisen toteutuksen parissa. Sivustoa rakennetaan WordPressissä, mutta siinä on paljon kelloja ja pilliä. Usein, kun teen tällaista työtä, haluan tallentaa mukautetun koodin myöhemmin uudelleen muille sivustoille. Tässä tapauksessa ajattelin, että se oli niin hyödyllinen toiminto, halusin jakaa sen maailman kanssa. Käytämme Avada WordPress -teema Fusion Page Builder -sovelluksella vanhempana teemana ja ottamalla käyttöön melko vähän mukautettua koodia lapsiteemassamme.
WordPressin sovellusliittymässä on jo muutama toiminto, joita voidaan käyttää alasivujen luettelointiin, kuten wp_list_pages ja get_pages. Ongelmana on, että he eivät palauta tarpeeksi tietoa, jos aiot luoda dynaamisesti luettelon, jossa on joukko tietoja.
Tälle asiakkaalle he halusivat lähettää virkanimitykset ja saada luettelon avoimista työpaikoista automaattisesti laskevassa järjestyksessä julkaisupäivänsä mukaan. He halusivat myös näyttää otteen sivusta.
Joten ensin meidän oli lisättävä ote sivumalliin. Teemansa funktiot.php: ssä lisättiin:
add_post_type_support ('sivu', 'ote');
Sitten meidän oli rekisteröitävä mukautettu lyhytkoodi, joka luo luettelon alasivuista, linkit niihin ja otteen niistä. Tee tämä, meidän on käytettävä WordPress-silmukka. Lisäsimme funktioihin.php:
// Luettelofunktion alisivut dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (taulukko ('ifempty' => 'Ei tietueita', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'sivu', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ parent = uusi WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ content. ' "; while ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' '.get_the_title ().' "; jos (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ merkkijono. = ' "; lopulta; } muu {$ string = ' '. $ atts [' ifempty '].' "; } wp_reset_postdata (); palauta $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');
Nyt lyhytkoodi voidaan toteuttaa kaikkialla sivustossa näyttämään lapsisivut linkin ja otteen kanssa. Käyttö:
[list_subpages aclass = "button" ifempty = "Valitettavasti meillä ei tällä hetkellä ole työpaikkoja."] Luettelo työpaikoista [/ list_subpages]
Tuloksena on mukava, puhdas järjestämätön luettelo julkaistuista työpaikoista, jotka ovat heidän urasivunsa alapuolella olevia lapsisivuja.
Jos työpaikkoja ei julkaistu (ei alisivuja), se julkaisee:
Valitettavasti meillä ei tällä hetkellä ole työpaikkoja.
Jos työpaikkoja on julkaistu (lapsisivut), se julkaisee:
Luettelo työpaikoista:
- Viimeisin lapsisivu - Ote lapsisivulta
- Seuraava lapsi -sivu - Ote lapsisivulta
- Seuraava lapsi -sivu - Ote lapsisivulta