web-dev-qa-db-fra.com

Shortcode personnalisé, fonctions PHP WP_Query loop

J'ai le code suivant dans mon fichier functions.php: -

function featured_properties_func( $atts ) {

    $args = array(
        'posts_per_page'=> -1,
        'post_type'     => 'properties',

    );
    $featured_query = new WP_Query( $args );

        if( $featured_query->have_posts() ):

            while( $featured_query->have_posts() ) : $featured_query->the_post();

                $featured_properties = get_the_title();

                return $featured_properties;

            endwhile;

        endif; wp_reset_query();

    }
add_shortcode( 'featured_properties', 'featured_properties_func' );

Lorsque je produis le shortcode, je n’obtiens qu’une seule valeur, alors qu’elle devrait renvoyer 6.

Ce que je veux faire est de boucler toutes les propriétés et de renvoyer le titre de chacune d’elles, des idées sur ce que je fais mal?

1
nsilva

Vous revenez dans votre boucle - elle revient donc à la première itération, vous donnant un seul résultat.

Vous devez plutôt créer une chaîne dans votre boucle et ne la renvoyer que lorsque la boucle est terminée.

Quelque chose comme

$featured_properties = '';

      if( $featured_query->have_posts() ):

            while( $featured_query->have_posts() ) : $featured_query->the_post();

                $featured_properties .= get_the_title() . '<br />';

            endwhile;

        endif; wp_reset_query();

 return $featured_properties;
5
vancoder