Как я могу динамически установить основной шрифт темы в WordPress

Я создал тему, в которой у меня уже есть страница настраиваемых параметров, где я позволяю пользователю устанавливать текст для нижнего колонтитула, пользователя Twitter и некоторых других вещей, и это работает хорошо. Теперь я хотел бы добавить функциональность, позволяющую пользователю, установившему тему, выбирать, какой шрифт следует использовать для контента на сайте. Как я могу это сделать? Вероятно, я могу создать файл php, который выводит что-то вроде:

<style type="text/css">
body{
    font-family: <?php echo get_option('my-font');?>;
}
</style>

и включить этот файл в header.php, но это означает, что я должен нажимать php для каждого запроса для этого css, и я хочу избежать этого, если это возможно.


person windyjonas    schedule 01.05.2010    source источник
comment
@windyjonas, я удалил свой ответ, так как явно неправильно понял, кого вы называли «пользователем» (владельцем сайта, а не посетителем сайта).   -  person David says reinstate Monica    schedule 02.05.2010


Ответы (2)


На самом деле, я бы рекомендовал поместить этот код прямо в ваш файл header.php. Вы уже будете анализировать PHP-код, поэтому нет никаких причин, по которым вы не можете одновременно анализировать этот get_option() запрос. Я использовал аналогичную систему для создания случайного изображения заголовка при каждой загрузке страницы на основе параметров WordPress и раньше.

person EAMann    schedule 02.05.2010
comment
Да, наверное, ты прав. Проблема в том, что если я захочу расширить это с помощью большего количества пользовательских css, отображаемый html может стать немного подробным. Но пока это хорошее решение, спасибо. - person windyjonas; 02.05.2010

Для одной темы, которую я создал, было множество параметров CSS, поэтому я решил генерировать статические файлы CSS, когда пользователь вносил изменения. Чтобы обойти кеширование, я бы сохранил временную метку последнего обновления и вывел ее как параметр в URL-адресе CSS;

<link rel="stylesheet" type="text/css" href="/path/to/generated/css.css?ver=<?php form_option('theme_name_css_timestamp'); ?>" />
person TheDeadMedic    schedule 02.05.2010