Afișarea unui tip de postare personalizat folosind shortcode
Am creat un tip de postare personalizat pentru tema mea WordPress și o pagină unde sunt afișate aceste tipuri de postări personalizate. Dar știe cineva cum să creez un shortcode care să afișeze postările unui tip de postare personalizat?

Cred că, în esență, întrebarea ta este cum să interoghezi postările unui tip de postare personalizat într-un shortcode. Ar trebui să arunci o privire în secțiunea WP_Query din WordPress: https://codex.wordpress.org/Class_Reference/WP_Query
În exemplul meu de cod, creez un shortcode care afișează titlul ultimelor postări publicate de tipul 'my-custom-post-type':
<?php
add_shortcode( 'shortcodename', 'display_custom_post_type' );
function display_custom_post_type(){
$args = array(
'post_type' => 'my-custom-post-type',
'post_status' => 'publish'
);
$string = '';
$query = new WP_Query( $args );
if( $query->have_posts() ){
$string .= '<ul>';
while( $query->have_posts() ){
$query->the_post();
$string .= '<li>' . get_the_title() . '</li>';
}
$string .= '</ul>';
}
wp_reset_postdata();
return $string;
}
?>
Deoarece un shortcode este executat în buclă, ar trebui să folosești wp_reset_postdata()
după ce ai terminat cu interogarea ta, astfel încât Bucla Principală să funcționeze din nou conform așteptărilor. Mai multe informații despre această funcție le găsești aici: https://codex.wordpress.org/Function_Reference/wp_reset_postdata
Sper că acest lucru îți oferă un punct de plecare.

ar trebui să folosești wp_reset_postdata
după o buclă secundară. wp_reset_query
este necesar doar pentru a restaura variabila globală $wp_query
, care nu a fost suprascrisă în acest caz. wp_reset_query
apelează intern și wp_reset_postdata
, motiv pentru care funcționează și aici, dar este inutil.
