Как создать страницу настроек для темы в WordPress?

Решено

Мне нужно что бы в админке темы WordPress появилась страница настроек.
Где пользователь будет вводить скажем свой e-mail и он выводился в определенном
месте страниц блога.

Добавить Комментарий
Ответ

В файле functions.php или в отдельном php файле (который должен быть подключен  к functions.php «include(‘functions/settings.php’);») нужно вставить следующий код:

 class ControlPanel { // Устанавливаем значения по умолчанию
 var $default_settings = array( 'email' => 'info@site.ru' ); 
var $options; function ControlPanel() { 
add_action('admin_menu', array(&$this, 'add_menu'));
 if (!is_array(get_option('themadmin'))) 
add_option('themadmin', $this->default_settings); 
$this->options = get_option('themadmin');
 } 
function add_menu() { 
add_theme_page('WP Theme Options', 'Опции темы', 8, "themadmin", array(&$this, 'optionsmenu')); 
} // Сохраняем значения формы с настройками
 function optionsmenu() { 
if ($_POST['ss_action'] == 'save') {
 $this->options["phone"] = $_POST['cp_phone'];
 $this->options["email"] = $_POST['cp_email'];
 $this->options["metrika"] = $_POST['cp_metrika'];
 update_option('themadmin', $this->options);
 echo '<div class="updated fade" id="message" style="background-color: rgb(255, 251, 204); 
width: 400px; margin-left: 17px; margin-top: 17px;">
<p>Ваши изменения <strong>сохранены</strong>.</p></div>'; 
} // Создаем форму для настроек 
echo '<form action="" method="post" class="themeform">';
 echo '<input type="hidden" id="ss_action" name="ss_action" value="save">'; 
print '<div class="cptab">
<br />
 <b>Настройки темы</b>
 <br /> 
<h3>Контакты</h3> 
<p><input placeholder="Телефон" style="width:300px;" name="cp_phone" id="cp_phone" value="'.$this->options["phone"].'">
<label> - телефон</label></p> 
<p><input placeholder="Email" style="width:300px;" name="cp_email" id="cp_email" value="'.$this->options["email"].'">
<label> - email</label></p> <h3>Код в footer.php</h3> 
<p><textarea placeholder="Здесь можно прописать коды счетчиков или дополнительных скриптов" style="width:300px;" name="cp_metrika" id="cp_metrika">'.stripslashes($this->options["metrika"]).'</textarea><label> - здесь можно прописать коды счетчиков или дополнительных скриптов</label></p> </div><br />';
 echo '<input type="submit" value="Сохранить" name="cp_save" class="dochanges" />'; 
echo '</form>'; 
} 
} 
$cpanel = new ControlPanel(); 
$myoptions = get_option('themadmin');

В этот код вы можете добавлять свои поля по аналогии, можете красиво оформить страницу настроек и т.д. Страницу настроек вы увидите в админке на вкладке «Внешний вид», называется она «Опции темы».
Для того что бы выводить введенные данные в «Опции темы» вам нужно на странице блога объявить глобальную переменную  <?php global $mytheme; ?> (проще всего объявить её в header.php и забыть про неё).  И затем в том месте где нужно вывести введенные данные вставляете переменную, например <?php echo $mytheme[‘phone’]; ?> или <?php echo $mytheme[’email’]; ?>

Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.