0

短代码中的 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'] 没有通过。没有错误,没有警告,只是不起作用。非常感谢任何帮助或现场。

4

2 回答 2

1

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

更改以下代码:

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

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

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

[featured numb='2']

这应该适合你。

于 2019-06-07T22:20:32.097 回答
1

shortcode_atts功能的一部分似乎很好。

但是使用参数调用短代码的正确方法numb2

[featured numb='2']

并不是

[featured = '2']

于 2019-06-08T17:33:38.050 回答