Marketing Content

PHP: utilizza l'API di WordPress per creare uno shortcode per elencare le sottopagine

In questo momento stiamo lavorando a un'implementazione piuttosto complessa per un cliente aziendale. Il sito è stato creato in WordPress ma ha un sacco di campane e fischietti. Spesso, quando eseguo questo tipo di lavoro, mi piace salvare il codice personalizzato per riutilizzarlo in seguito su altri siti. In questo caso, ho pensato che fosse una funzione così utile, volevo condividerla con il mondo. Stiamo usando il Tema WordPress Avada con Fusion Page Builder come tema principale e distribuendo un po 'di codice personalizzato nel nostro tema figlio.

WordPress ha già un paio di funzioni nella sua API che possono essere utilizzate per elencare le sottopagine, come wp_list_pages e get_pages. Il problema è che non restituiscono informazioni sufficienti se speri di creare dinamicamente un elenco con un mucchio di informazioni.

Per questo cliente, desideravano pubblicare descrizioni delle offerte di lavoro e fare in modo che l'elenco delle offerte di lavoro venisse generato automaticamente in ordine decrescente in base alla data di pubblicazione. Volevano anche visualizzare un estratto della pagina.

Quindi, per prima cosa, abbiamo dovuto aggiungere il supporto di estratti al modello di pagina. In functions.php per il loro tema, abbiamo aggiunto:

add_post_type_support ('page', 'excerpt');

Quindi, dovevamo registrare uno shortcode personalizzato che generasse l'elenco delle sottopagine, i collegamenti ad esse e il relativo estratto. Fallo, dobbiamo usare il file WordPress loop. In functions.php, abbiamo aggiunto:

// Elenca le sottopagine in una funzione Elenco dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Nessun record', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'page', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'publish_date', 'order' => 'DESC' ,); $ genitore = nuovo WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ content. ' '; while ($ parent-> have_posts ()): $ parent-> the_post (); $ stringa. = ' ".get_the_title ()." '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ stringa. = ' '; endwhile; } altro {$ string = ' ". $ atts [" ifempty "]." '; } wp_reset_postdata (); restituire $ stringa; } add_shortcode ('list_subpages', 'dknm_list_child_pages');

Ora, lo shortcode può essere implementato in tutto il sito per mostrare le pagine figlie con un collegamento e un estratto. Utilizzo:

[list_subpages aclass = "button" ifempty = "Spiacenti, al momento non abbiamo opportunità di lavoro."] Elenco dei lavori [/ list_subpages]

Il risultato è un elenco piacevole e pulito e non ordinato dei lavori pubblicati, che sono pagine figlio sotto la loro pagina carriera.

Se non sono stati pubblicati lavori (nessuna pagina figlie), pubblicherà:

Spiacenti, al momento non abbiamo opportunità di lavoro.

Se sono stati pubblicati lavori (pagine figlie), pubblicherà:

Elenco dei lavori:

Douglas Karr

Douglas Karr è CMO di ApriINSIGHTS e il fondatore della Martech Zone. Douglas ha aiutato dozzine di startup MarTech di successo, ha assistito nella due diligence di oltre 5 miliardi di dollari in acquisizioni e investimenti Martech e continua ad assistere le aziende nell'implementazione e nell'automazione delle loro strategie di vendita e marketing. Douglas è un esperto e relatore di trasformazione digitale e MarTech riconosciuto a livello internazionale. Douglas è anche autore di una guida per manichini e di un libro sulla leadership aziendale.

Articoli Correlati

Torna a pulsante in alto
Chiudi

Blocco annunci rilevato

Martech Zone è in grado di fornirti questi contenuti gratuitamente perché monetizziamo il nostro sito attraverso entrate pubblicitarie, link di affiliazione e sponsorizzazioni. Ti saremmo grati se rimuovessi il blocco degli annunci mentre visiti il ​​nostro sito.