2013-11-26 5 views
1

Итак, я работаю над настраиваемой темой, у нее есть несколько параметров цвета темы. Поэтому у меня есть вызов параметров цвета темы через мою страницу администрирования wordpress. Все работает отлично, не столкнулось с проблемой SINGLE. Я давно отступил от веб-дизайна и недавно возвращаюсь к нему. Я хорошо осведомлен на PHP-языке (по крайней мере, по-старому), но код покажет, как я использовал &, в настоящее время выполняю инструкции «массивы» и «if/while/foreach». Я просто хочу знать, есть ли новый способ, чтобы это было сделано, поэтому мой код не станет устаревшим в ближайшее время и может быть изменен любым, кто хочет отредактировать эту тему.PHP WordPress Custom Array

Это моя функция, и вызывает безотказно:

function peridot_colour_styles() { 
    $colour_list = array('peridot', 'sapphire'); 
    foreach ($colour_list as $output_list) { 
     if (get_option('peridot_theme_colour') == $output_list) { $selected = 'selected="selected"'; } else { $selected = ''; } 
    echo '<option value="'. $output_list .'" '. $selected .'>'. ucfirst($output_list) .'</option>'; 
    } 
} 

Я действительно не хотел, чтобы создать 10 вариантов в базе опций WordPress, просто для цветов темы, так что я буду просто называя CSS файл 'peridot.css' и 'sapphire.css', поэтому сыворотка выбирает «Peridot». Я могу просто вызвать общее название стиля.

--Note--

Как я уже сказал, я просто хотел бы знать, если есть лучший способ сделать это; или более новый метод, используемый для этого. Я не хочу, чтобы этот код переписывался для меня, но я не против того, чтобы кто-то «менял» что-либо. Я также был бы в порядке с «вы могли бы сделать это, как этот бла-бла-бла, искать в Google для этого» :)

Я хорошо разбираюсь в PHP и могу очень легко обвести голову в учебники/руководства.

ответ

2

В целом, ваш код в порядке. Ваш подход также оптимален тем, что вы загружаете отдельную таблицу стилей на основе выбранной опции. Единственное, что я хотел бы сделать, это использовать вспомогательную функцию Wordpress Selected, чтобы немного уменьшить количество:

function peridot_colour_styles() { 
    $colour_list = array('peridot', 'sapphire'); 
    foreach ($colour_list as $output_list) { 
     $selected = selected(get_option('peridot_theme_colour'), $output_list, false); 
     printf('<option value="%s" %s>%s</option>', $output_list, $selected, ucfirst($output_list)); 
    } 
} 
+0

Код работал отлично! и я выкопал в выбранный wp и укрепился там. Похоже, мне нужно обновить себя на printf (sprintf) в php. Ваша помощь приветствуется! Большое спасибо. – MrJustin