Как создать страницу настроек для темы в 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’]; ?>

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

    Ваш ответ

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