Я работаю в WordPress. Я использую плагин, чтобы получить параметры администратора. Плагин принимает аргумент в качестве идентификатора, чтобы получить значение из базы данных следующим образом.
$option = ot_get_option('email_address');
Выше приведенная строка кода вернется
[email protected]
Я хочу написать вспомогательную функцию, которая бы получала несколько значений одновременно. Обычно я получаю такие варианты.
$option_1 = ot_get_option('option1');
$option_2 = ot_get_option('option2');
$option_3 = ot_get_option('option3');
Я подумал, что мог бы быть лучший способ, который выглядел бы немного лучше. Я собрал эту маленькую функцию, которая работает
function ritual_get_options($arg_list = array())
{
$options = array();
foreach( $arg_list as $key => $value){
$options[] = ot_get_option($value, array());
}
return $options;
}
используя функцию выше, теперь я могу передать идентификаторы опций, как так
ritual_get_options('option1','option2','option3');
Моя проблема в том, что выше будет возвращать массив с числовыми ключами. 0,1,2. Вот точный массив, который возвращается, когда я делаю var_dump на переднем конце
[0]=>
string(16) "100 Main Street,"[1]=>
string(18) "Hamilton, Ontario."[2]=>
string(15) "+1 800 999 9898"[3]=>
string(19) "[email protected]"
Я хочу вернуть ключи массива со значением, чтобы я мог легко определить, какое значение в каком ключе. Вот строка, которую я использовал, чтобы получить вышеуказанный массив
$options = ritual_get_options(array('number' => 'streetnumber','street' => 'street','phone' => 'phone_number','email' => 'email'));
Когда я иду использовать возвращенные значения, я хочу иметь возможность использовать ключ, чтобы я мог сделать
echo $options['number'];
вместо того, чтобы делать
echo $options[0];
Я не смог выяснить, как вернуть ключи, переданные функции, и сохранить их при возврате.
Установите имя опции в качестве ключа при построении массива:
foreach( $arg_list as $option ){
$options[$option] = ot_get_option( $option );
}
Кстати, используя extract()
на $options
массив позволит вам использовать, например, $phone_number
вместо $options['phone_number']
Других решений пока нет …