0

I need to create a shortcode for display CPT posts. I want to add an atts that print the number of posts_per_page I need in the args for Wp_query.

But If I use

[short_events number=5]

it prints only one post. Where I'm Wrong?

function dis_short_events($atts, $content = null){

    ob_start();
    $numero = extract(shortcode_atts(array(
        'number' => '-1',
     ), $atts));

    $args =array(
        'post_type'=>'eventi',
        'posts_per_page' => $numero

    );
}

add_shortcode('short_events', 'dis_short_events');
1
  • 3
    The shortcode parameters are contained in the first parameter passed to the shortcode function ($atts), so you could use $atts['number'] to get the "number" parameter. But you extracted the parameters (see extract()), so you could also use $number. So you don't use $numero, but $number.
    – Sally CJ
    Mar 24 '20 at 0:53
0

It's typically best practice to not extract your shortcode atts.

function dis_short_events($atts, $content = null){

ob_start();
$numero = shortcode_atts(array(
    'number' => '-1',
 ), $atts);

$args =array(
    'post_type'=>'eventi',
    'posts_per_page' => $numero['number']

);

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.