Как иметь возможность использовать пустой параметр шорткода для отображения всех значений метабокса, а не ни одного - PullRequest
0 голосов
/ 07 мая 2020

Я использую собственный шорткод Wordpress, который я разработал, запрос ниже:

 $atts = shortcode_atts( array( 'teamtype' => '' ), $atts );

    $args = array(
        'post_type'      => 'team',
        'posts_per_page' => '10',
        'publish_status' => 'published',
            'meta_query'       => array(
        'relation'    => 'AND',
        array(
            'key'          => 'my_key',
            'value'        => $atts['teamtype'],
            'compare'      => '=',
        ),

        array(
            'key'          => 'meta-featured_checkbox',
            'value'        => 'yes',
            'compare'      => '=',
        )
    ),
    );

Он запрашивает настраиваемый мета-ключ под названием «my_key». И поэтому шорткод использует параметр следующим образом: [shortcodename teamtype = "type1"]

Я хотел бы оставить параметр пустым, чтобы отображались все значения мета-ключа my_key, например [shortcodename teamtype = ""]

Когда я использую аргументы, как показано ниже, без использования массива мета-запросов, я могу оставить параметр пустым, чтобы показать все:

$args = array(
                    'post_type'      => 'team',
                    'posts_per_page' => '10',
                    'publish_status' => 'published',
        'meta_key'       => 'my_key',
        'meta_value'     => $atts['teamtype']
                 );

Кто-нибудь знает, почему верхний один не позволяет мне это делать? А как заставить работать?

Спасибо

1 Ответ

0 голосов
/ 07 мая 2020

Мне удалось заставить его работать ..!

В массиве meta_query для параметра, установленного в шорткоде, я использовал: «meta_key» вместо «key» и «meta_value» вместо «value» "

например:

$args = array(
        'post_type'      => 'team',
        'posts_per_page' => '10',
        'publish_status' => 'published',
            'meta_query'       => array(
        'relation'    => 'AND',
        array(
            'meta_key'          => 'my_key',
            'meta_value'        => $atts['teamtype'],
            'compare'      => '=',
        ),

        array(
            'key'          => 'meta-featured_checkbox',
            'value'        => 'yes',
            'compare'      => '=',
        )
    ),
    );
...