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

Опубликовано: 24.10.2017

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

Мы полагаем, что вы уже обладаете достаточными знаниями и умеете работать с файлами WordPress шаблона. Если вы начинающий WordPress пользователь, то для начала ознакомьтесь с разделом WordPress для чайников .

Создаем собственную страницу настроек в админке WordPress

Для начала создайте в папке вашего шаблона новую папку и назовите ее functions. В этой папке будут храниться все файлы, которые будут подключаться к файлу functions.php. Затем создайте файл settings.php, наполните его следующим кодом и положите в папку functions.

<?php class ControlPanel { // Устанавливаем значения по умолчанию var $default_settings = array( 'phone' => '495 122-12-12', 'email' => '[email protected]' ); 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["facebook"] = $_POST['cp_facebook']; $this->options["vkontakte"] = $_POST['cp_vkontakte']; $this->options["twitter"] = $_POST['cp_twitter']; $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>Социальные сети</h3> <p><input placeholder="Ссылка на страницу facebook" style="width:300px;" name="cp_facebook" id="cp_facebook" value="'.$this->options["facebook"].'"><label> - facebook</label></p> <p><input placeholder="Ссылка на страницу vkontakte" style="width:300px;" name="cp_vkontakte" id="cp_vkontakte" value="'.$this->options["vkontakte"].'"><label> - vkontakte</label></p> <p><input placeholder="Ссылка на страницу twitter" style="width:300px;" name="cp_twitter" id="cp_twitter" value="'.$this->options["twitter"].'"><label> - twitter</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(); $mytheme = get_option('themadmin'); ?>

Этот файл вы можете отредактировать по своему желанию, добавив или удали некоторые поля из формы. Мы добавили комментарии к коду, чтобы вам было понятнее, как это все работает.

3D стерео фильмы для 5D
    Зарплата ру
    Еженедельный журнал работа и зарплата вакансии в Москве выходит крупным тиражом в 100 тыс. экземпляров, имеет большую аудиторию читателей, среди которых люди с различным образованием, доходом и социальным

    Уголок покупателя
    По закону продавец обязан предоставить Книгу жалоб по требованию покупателя, или же покупатель может самостоятельно сделать в ней запись. На жалобу в Книге магазин должен письменно отреагировать в течение

    Лицевую дугу
    Приспособление создается из медицинской стали и состоит из двух металлических дуг: внутренней, которая крепится на зубах и располагается вдоль зубных рядов, а также внешней. Благодаря наличию ремешков

    Шкафы купе
    Еще несколько десятилетий назад мы и понятия не имели о таком удобном и эстетичном виде мебели, как шкаф-купе. Сегодня же большинство из нас просто не представляют себе: как можно было без него обходиться?

    I
    В последние годы доставка цветов на дом пользуется все большей популярностью. С одной стороны, у современных мужчин порой просто не хватает времени, чтобы сделать любимой женщине, матери или подруге достойный

    Вечерние платья на выпускной
    В преддверии сезона выпускных вечеров многие девушки озабочены поиском красивой и модной одежды, которая выгодно подчеркнет достоинства фигуры и поможет выглядеть на этом знаковом мероприятии настоящей

    Автобус в Крым из Харькова
    Собираясь путешествовать, задумываясь о поездке к родным и близким или направляясь в командировку, многие задумываются, какой выбрать маршрут и способ передвижения? Доехать до места назначения удобно,

    Качественные услуги печати рекламы
    Очевидно, что рекламу делают не для того, чтобы показать друзьям или выставить на конкурс. Реклама, в отличие от художественных произведений, не является самоцелью, она не объект любования – это вполне

    Сервіс кейс case
    Что такое кейсы? Этот вопрос задают, как правило, студенты, впервые столкнувшиеся с этим термином. Однако это понятие становится популярным в бизнес-сообществах. Перед тем, как ответить на вопрос о том,

    Дистанционное обучение по канадской системе
    Каждому родителю хочется, чтобы его ребёнок был самым счастливым, разносторонне развитым и успешным. А каждый подросток желает путешествовать. Сейчас открываются невероятные возможности объединить и

rss