Я делаю свою собственную функцию шорткода, и пока работает вызов шорткода, и мой запрос страницы возвращает результаты - он никогда не использует никаких настроек, кроме значений по умолчанию, как если бы $ 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