web-dev-qa-db-fra.com

Afficher le type de message personnalisé avec un shortcode

J'ai créé un type de message personnalisé pour mon thème WordPress et une page contenant les types de message personnalisés. Mais est-ce que quelqu'un sait comment créer un shortcode qui affiche les messages d'un type de message personnalisé?

2
jorenwouters

Je pense que, fondamentalement, votre question est de savoir comment interroger les messages d'un type de message personnalisé dans un shortcode. Vous devriez jeter un coup d’oeil dans la section WP_Query de WordPress: https://codex.wordpress.org/Class_Reference/WP_Query

Dans mon exemple de code, je crée un shortcode qui affiche le titre des derniers articles publiés du type '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;
    }
?>

Puisqu'un shortcode est exécuté dans la boucle, vous devriez utiliser wp_reset_postdata() après avoir terminé votre requête, pour que la boucle principale fonctionne à nouveau comme prévu. Vous trouverez plus d'informations sur cette fonction ici: https://codex.wordpress.org/Function_Reference/wp_reset_postdata

J'espère que cela vous donne une longueur d'avance.

2
websupporter