WordPress — отличная платформа для создания сайтов разными эффективными способами. Вся "магия" WordPress уложена в 11 таблицах БД. wp_options — одна из таблиц, и работает она как "мозг" любого сайта, созданного на основе WordPress. В этой таблице хранится вся информация, относящаяся к вашему сайту, такая как: имя сайта, описание и слоган, URL сайта и много другой информации.

Все эти данные можно легко извлечь при помощи функции get_option(). Вам просто понадобится перейти к имени того поля, данные из которого вы хотите получить. К примеру: get_option('home') — чтобы получить адрес домашней страницы вашего сайта.

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

Что мы получим по идее?

Если вы хотите сохранить, например, ваш Twitter ID в таблице, то просто следуйте по данному руководству, и вы получите описание в настройках вашего Twitter ID при помощи get_option(‘twitterid’) в активной установленной теме для WordPress.

Как выглядит код

Вот блок с кодом, который я разберу вместе с вами. Этот блок надо просто добавить в ваш файл functions.php для вашей активной темы — и на этом все.

Шаг 1. Добавляем меню администратора

Этот шаг позволит вам просто добавить новое меню для управления страницами и их просмотра.

add_action('admin_menu', 'add_global_custom_options');

Шаг 2. Назначение функции, которая анализирует форму администратора

Вот этим кодом задается парсинг и создается форма:

	function add_global_custom_options()
	{
		add_options_page('Global Custom Options', 'Global Custom Options', 'manage_options', 'functions','global_custom_options');
	}

Шаг 3. Создаем функцию, которая генерирует форму

<?php
function global_custom_options()
{
?>
	<div class="wrap">
		<h2>Global Custom Options</h2>
		<form method="post" action="options.php">
			<?php wp_nonce_field('update-options') ?>
			<p><strong>Twitter ID:</strong><br />
				<input type="text" name="twitterid" size="45" value="<?php echo get_option('twitterid'); ?>" />
			</p>
			<p><input type="submit" name="Submit" value="Store Options" /></p>
			<input type="hidden" name="action" value="update" />
			<input type="hidden" name="page_options" value="twitterid" />
		</form>
	</div>
<?php
}
?>

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

1 — Разместите новую текстовую форму с уникальным именем. Например, если вы хотите сохранять ссылку на страницу в Facebook, тогда код будет примерно таким:

<p><strong>Facebook Page Links:</strong><br />
	<input type="text" name="fb_link" size="45" value="<?php echo get_option('fb_link'); ?>" />
</p>

2 — Вам надо обновить значение для скрытого поля при помощи параметра "page_options", который в данном случае надо обновить значением из строчки кода, приведенной ниже:

<input type="hidden" name="page_options" value="twitterid,fb_link" />

Как вы можете видеть, все имена для параметров добавляются здесь по отдельности и разделены запятой (,). Без выполнения этого шага ничего работать не будет так, как ожидается.

Как этим пользоваться?

После того, как вы поместите новый код в файл functions.php, посмотрите на вашу страницу администратора. Вы увидите здесь новую ссылку в меню администратора, которая будет называться "Global Custom Options". Просто введите значения в этой форме — и вы сожете использовать эти значения в файлах темы при помощи опций вроде "get_option(‘twitterid’)".

Дальнейшее усовершенствование

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

Источник: WP.tutsplus.com

Вам понравился материал?

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

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

8 комментариев

сначала новые
по рейтингу сначала новые по хронологии
иван чайкин

а не проще напрямую через например phpMyAdmin залезть в таблицу wp_options и там ручками прописать все что надо?

Подскажите, как указать значение по умолчанию для переменной например той же «twitterid».

Чтоб после чистой установки темы она уже была заполнена.

Эти значения хранятся в базе данных, а не в файлах темы оформления. Так что вам придется поместить это значение в БД наперед, если вы хотите.

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

Решил следующим образом, в месте в котором необходим вывод переменной подставил значение с указанием умолчания выглядит это так: get_option (‘twitterid’,'Mo_45'), в данном случае второе значение (Mo_45) и есть дефолтом.

А вот и огромное спасибо - ну наконец-то я поняла как сделать в админке меню для настроек

Не работает в 3.3.1
В админке выдает ошибку

Зачем? Я не понял, что даст эта страница глобальных настроек? Можете показать скриншоты того, что получится?

Зачем, например, твиттер ID в таблице?

Это может быть полезно, если вы дорабатываете готовую тему или создаете свою собственную, и вам нужно определить наперед какие-то параметры, переменные т.д., а потом обращаться к ним в коде с помощью get_option ('blablabla').

Если кто-то не хочет лезть в таблицы БД, к примеру, ему будет полезна эта инструкция.