WP 短代码忽略传递的值

WP shortcode is ignoring passed value

WP_Query 在简码中忽略传递的值

几个小时以来一直在努力让它工作。无论我做什么,WP 都使用默认值并忽略传递给函数的值。

// Add Shortcode
function ima_featured_member( $atts ) {

    // Attributes
    $attributes = shortcode_atts(
        array(
            'numb' => '1',
        ),
        $atts,
        'featured'
    );

    $dirloop = new WP_Query( array( 
            'post_type' => 'member', 
            'post_status' => 'publish',
            'posts_per_page' => $attributes['numb'],
            'orderby' => 'title',
            'order' => 'ASC',
            'meta_query' => array (
                'relation' => 'AND',
               array (
                    'key'   => 'elc_member_featured',   
                    'value'  => '1',
                    'compare' => '=='
                )
            )
        ));

        if ($dirloop->have_posts())
        {
            $output = "\n";
            while ( $dirloop->have_posts() ) : $dirloop->the_post(); 

                    $output .= ''.get_the_title().'';

             endwhile;
            $output .= "\n";
        } 
        else
        { 
            $output = "nothing";
        }
        wp_reset_postdata();

        return $output;

}
add_shortcode( 'featured', 'ima_featured_member' );

[featured = '2'] 没有通过。没有错误,没有警告,只是不起作用。非常感谢任何帮助或现场。

为了工作,您需要对此进行一些更改。

更改以下代码:

$attributes = shortcode_atts(
    array(
        'numb' => '1',
    ),
    $atts,
    'featured'
);

$attributes = shortcode_atts(
    array(
        'numb' => '1',
    ),
    $attributes,
    'featured'
);

另外,对于获取 2 个帖子的简码,您应该编写如下简码:

[featured numb='2']

这应该适合你。

函数的 shortcode_atts 部分似乎没问题。

但是调用参数 numb2 的简码的正确方法是:

[featured numb='2']

而不是

[featured = '2']