Нужно создать большое количество шорткодов по одинаковому принципу.
Названия шорткодов [shortcode_first] и выводимый ими текст (т.е. "shortcode_first text") содержатся в массиве $arr.
У меня получилось это сделать, только создав несколько функций create_shortcode_1() - и т.д.
Но они, по сути, дублируются - в них меняются только значения, которые берутся из массива.
Пожалуйста, подскажите, как это дело можно оптимизировать - не писать кучу дублей create_shortcode_1(), и add_shortcode(...) а, допустим, как-то циклом повторять эту функцию, подставляя в зависимости от шага нужные значения из массива... Сам в PHP не шарю, не могу сообразить.
<?php
$arr = [
['shortcode_first', 'shortcode_first text'],
['shortcode_second', 'shortcode_second text'],
['shortcode_third', 'shortcode_third text']
];
function create_shortcode_1(){
global $arr;
echo 'Это шорткод ['.$arr[0][0].'], который выведет "'.$arr[0][1].'"<br />';
}
add_shortcode($arr[0][0], 'create_shortcode_1' );
function create_shortcode_2(){
global $arr;
echo 'Это шорткод ['.$arr[1][0].'], который выведет "'.$arr[1][1].'"<br />';
}
add_shortcode($arr[1][0], 'create_shortcode_2' );
function create_shortcode_3(){
global $arr;
echo 'Это шорткод ['.$arr[2][0].'], который выведет "'.$arr[2][1].'"<br />';
}
add_shortcode($arr[2][0], 'create_shortcode_3' );
?>
Созданные шорткоды:
[shortcode_first]
[shortcode_second]
[shortcode_third]