shortcode_atts не анализирует пользовательские значения вместо загруженных по умолчанию - PullRequest
0 голосов
/ 10 июля 2019

Я делаю свою собственную функцию шорткода, и пока работает вызов шорткода, и мой запрос страницы возвращает результаты - он никогда не использует никаких настроек, кроме значений по умолчанию, как если бы $ att равнялся нулю.


    function test_shortcode( $atts ) {
       $filter = shortcode_atts(
            array(
                'type' => 'major',
                'sort' => 'name',
                'size' => 'large',
                'links' => 'yes',
            ),
            $atts,
            'customshortcode'
        );

      echo 'ATTS:';
      print_r($atts);

      echo'FILTER';
      print_r($filter);

    //code to query posts removed

    }

    add_shortcode( 'customshortcode', 'test_shortcode' );

В сообщении я могу затем добавить ..


    [customshortcode type:"other" size:"small" sort:"rand" links:"no"]

Чтобы увидеть результат

ATTS
Array
(
    [0] => type:"other"
    [1] => size:"small"
    [2] => sort:"rand"
    [3] => links:"no"
)
FILTER
Array
(
    [type] => major
    [sort] => name
    [size] => large
    [links] => yes
)

и я вижу, что значения $ atts получены в функции, но фильтр $ isне обновляется.Я ожидаю, что оба массива будут одинаковыми в момент их распечатки.Насколько я могу судить, я следую зашифрованным форматированием здесь https://codex.wordpress.org/Function_Reference/shortcode_atts

1 Ответ

1 голос
/ 11 июля 2019

Вы передаете атрибуты неправильно.

Следует использовать = вместо :.

Пожалуйста, пройдите https://developer.wordpress.org/plugins/shortcodes/shortcodes-with-parameters/, чтобы узнать больше о шорткоде с параметрами.

Попробуйте с [customshortcode type="other" size="small" sort="rand" links="no"]

...