Come combinare post e tipi di post personalizzati nelle query di WordPress e nei feed RSS
Una delle caratteristiche più sorprendenti di WordPress è la capacità di creare Tipi personalizzati post. Questa flessibilità è fantastica... poiché i tipi di post personalizzati possono essere utilizzati per un'azienda per organizzare facilmente altri tipi di post come eventi, luoghi, domande frequenti, elementi del portfolio. Puoi creare tassonomie personalizzate, campi di metadati aggiuntivi e persino modelli personalizzati per visualizzarli.
Sul nostro sito a DK New Media, abbiamo impostato un tipo di post personalizzato per progetti oltre al nostro blog dove condividiamo notizie aziendali. Avendo un tipo di post personalizzato, siamo in grado di allineare i progetti sulle nostre pagine delle capacità... quindi se visualizzi il nostro Servizi WordPress, i progetti su cui abbiamo lavorato relativi a WordPress verranno visualizzati automaticamente. Sto lavorando sodo per documentare tutti i nostri progetti in modo che i visitatori del nostro sito possano vedere la gamma di lavori che svolgiamo per le aziende.
Unione di post e tipi di post personalizzati
La nostra home page è già abbastanza ampia, quindi non volevo creare una sezione per i nostri post sul blog E una sezione per i nostri ultimi progetti. Voglio unire sia i post che i progetti nello stesso output usando il nostro generatore di modelli, Elementor. Elementor non ha un'interfaccia per unire o combinare post e tipi di post personalizzati, ma è abbastanza semplice farlo da soli!
All'interno della pagina functions.php del tuo tema figlio, ecco un esempio di come combinare i due:
function add_query_news_projects( $query ) {
if ( is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'post', 'project' ) );
return $query;
}
add_filter( 'pre_get_posts', 'add_query_news_projects' );
Il filtro pre_get_posts ti consente di aggiornare la query e impostarla per ricevere sia il tuo post che progetto tipo di post personalizzato. Ovviamente, quando scrivi il tuo codice dovrai aggiornare i tipi di post personalizzati alla tua convenzione di denominazione effettiva.
Unione di post e tipi di post personalizzati nel tuo feed
Ho anche il sito che pubblica automaticamente sui social media tramite il suo feed... quindi volevo anche usare la stessa query per impostare il feed RSS. Per fare ciò, ho dovuto solo aggiungere un'istruzione OR e includerla è_feed.
function add_query_news_projects( $query ) {
if ( is_home() && $query->is_main_query() || is_feed() )
$query->set( 'post_type', array( 'post', 'project' ) );
return $query;
}
add_filter( 'pre_get_posts', 'add_query_news_projects' );
Unione di post e tipi di post personalizzati in Elementor
Ancora una nota... Elementor ha una funzione davvero eccezionale in cui puoi nominare e salvare una query all'interno del tuo sito. In questo caso, sto costruendo una query chiamata news-projects e quindi posso chiamarla dall'interfaccia utente di Elementor nella sezione Posts Query.
function my_query_news_projects( $query ) {
$query->set( 'post_type', array( 'post', 'project' ) );
}
add_action( 'elementor/query/news-projects', 'my_query_news_projects' );
Ecco come appare nell'interfaccia utente di Elementor:
Divulgazione: sto usando il mio Elementor link di affiliazione in questo articolo.