Страница настроек темы — это обычная страница в панели администратора, содержащая необходимую информацию или настройки для используемой темы. Создается данная страница при помощи файла functions.php.
Страницы настроек темы формируются на основе возможностей той или иной темы. Одни темы позволяют разработчику изменять размеры шрифтов, цветовую гамму и т.д., в то время как другие позволяют добавлять собственные хуки. Перед тем как применять страницы настроек, нужно удостовериться, что они вам действительно нужны.
Создание простой страницы администратора
Сформируем страничку настроек администратора, которая будет выводить какую-либо информацию. Первое, что нам потребуется — это добавить новый пункт меню в панели администратора:
add_action('admin_menu', 'nbcore_menu'); function nbcore_menu() { add_theme_page('Notes Blog Core', 'Notes Blog Core', 8, 'your-unique-identifier', 'nbcore_options'); }
В функции nbcore_menu() задается название страницы, заголовок страницы, категория пользователей, для которых доступна данная страница, уникальный идентификатор и название функции, ответственной за вывод содержания. Функция nbcore_options может выглядеть следующим образом:
function nbcore_options() { echo '<div>'; echo ' <h2>Notes Blog Core</h2> <p>This is a placeholder for upcoming admin options for the Notes Blog Core theme. These things aren\'t due yet, in fact, they are pretty far away, so just forget about this page for now huh?</p> <p>Get the latest Notes Blog and Notes Blog Core news from <a href="http://notesblog. com" title="Notes Blog">http://notesblog.com</a> - it\'s that sweet!</p> '; echo '</div>'; } ?>
Ничем особенным функция не отличается. В ней задается HTML-код, формирующий представление страницы.
Весь код целиком:
<?php add_action('admin_menu', 'nbcore_menu'); function nbcore_menu() { add_theme_page('Notes Blog Core', 'Notes Blog Core', 8, 'your-unique-identifi er', 'nbcore_ options'); } function nbcore_options() { echo '<div>'; echo ' <h2>Notes Blog Core</h2> <p>This is a placeholder for upcoming admin options for the Notes Blog Core theme. These things aren\'t due yet, in fact, they are pretty far away, so just forget about this page for now huh?</p> <p>Get the latest Notes Blog and Notes Blog Core news from <a href="http://notesblog.com" title="Notes Blog">http://notesblog.com</a> - it\'s that sweet!</p> '; echo '</div>'; } ?>
Существующие проблемы со страницами настроек
Помимо очевидных проблем, возникающих в результате присутствия каких-либо ошибок в коде файла functions.php, существуют и другие отрицательные стороны применения страниц настроек. Одна из них — снижение скорости загрузки сайта. В том случае, если файл functions.php переполнен различными функциями, потребуется довольно длительное время на его открытие, и, следовательно, сайт начнет тормозить. Естественно, это отрицательно скажется на притоке посетителей, что крайне нежелательно.
Рациональное использование файла functions.php подразумевает под собой создание небольших страниц, содержащих в себе лишь несколько основных настроек. Функции, несущие какие-либо дополнительные возможности, разумно было бы представить в виде отдельного файла или плагина. Тем самым вы значительно увеличите производительность своего сайта.
Спасибо за статью. Но с самой страницей настроек все понятно, а вот с самими настройками как быть? Как создавать различные поля, выпадающие списки и т.п., чтобы была возможность вносить свои значения, а затем записывать все изменения в базу данных?
Возможно, у вас на блоге есть продолжение этой статьи, но я поискал в нескольких вроде бы подходящих рубриках и не нашел.
Да, и потом еще вытаскивать значения настроек из базы для использования в шаблоне темы :)
Недавно как раз с этой темой почти целый день разбирались с одним из пользователей. Вот, почитайте эту статью, авось поможет: https://oddstyle.ru/wordpress-2/stati-wordpress/sozdanie-stranicy-nastroek-dlya-wordpress-temy.html
Благодарю, это то, что надо!