В WordPress существует возможность вывода на экран информации, хранящейся непосредственно в стилевой таблице style.css используемой темы. Я использовал эту возможность на одном из сайтов, где необходимо было получить номер версии темы, чтобы сохранить вещи актуальными и последовательными.
get_theme_data()
Функция get_theme_data() возвращает массив с информацией о любом из ваших файлов темы. Ниже приведен пример, как можно использовать эту функцию в шаблоне темы:
<?php get_theme_data( $theme_filename ); ?>
Переменная $theme_filename является обязательной. Она должна содержать в себе путь к файлу style.css вашей темы. Эта переменная не имеет никакого значения по умолчанию, так что вы должны обязательно присвоить ей некоторые начальные данные.
Итак, какую информацию вы можете вывести на экран с помощью переменной get_theme_data()? Функция возвращает массив значений, которые по большей части являются различными meta-данными вашей стилевой таблицы. Ниже представлен список возможных возвращаемых значений (все строковые):
- Name — название темы
- Title — либо само название темы, либо связанное название темы
- URI — URI темы
- Description — wptexturized-версия названия темы
- AuthorURI — URI создателей темы
- Template — родительский шаблон темы, если существует
- Version — номер версии темы
- Status — статус темы (по умолчанию: publish)
- Tags — метки темы
- Author — имя автора или связанное имя автора
Примечание: все значения зависимы от регистра. Если ввести их с прописной буквы, то они не будут работать.
Пример
В Codex содержится интересный пример, иллюстрирующий вывод на экран данных Name и Author темы:
<?php /* * Assign theme folder name that you want to get information. * make sure theme exist in wp-content/themes/ folder. */ $theme_name = 'twentyeleven'; /* * Do not use get_stylesheet_uri() as $theme_filename, * it will result in PHP fopen error if allow_url_fopen is set to Off in php.ini, * which is what most shared hosting does. You can use get_stylesheet_directory() * or get_template_directory() though, because they return local paths. */ $theme_data = get_theme_data( get_theme_root() . '/' . $theme_name . '/style.css' ); echo $theme_data['Title']; echo $theme_data['Author']; ?>
Вы можете протестировать работоспособность кода на собственной локальной сборке. Скопируйте приведенный фрагмент кода в свой шаблон темы и укажите название темы в первой строке кода. Вывод на экран остальных данных является вопросом редактирования двух последних строк кода.
Когда вы поймете, как это работает, вы сможете придумать множество интересных реализаций данной техники. Я использую эту технику для того, чтобы добавить параметры версии к моим URL-адресам стилевых таблиц:
<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/style.css<?php if(function_exists('theme_version')) theme_version(); ?>">
Полученная разметка будет иметь следующий вид (обратите внимание на добавленный параметр ?v=1.3):
<link rel="stylesheet" href="http://example.com/wp-content/themes/xycss/style.css?v=1.3">
Поскольку я использую множественные стилевые таблицы, этот метод экономит довольно много времени, которое тратилось обычно на отслеживание всей информации. Ниже представлена функция, которая позволяет вывести на экран версию темы:
// display version number function theme_version() { $theme_name = 'xycss'; // customize with your theme name $theme_data = get_theme_data( get_theme_root() . '/' . $theme_name . '/style.css' ); echo '?v=' . $theme_data['Version']; }
С помощью нескольких дополнительных модификаций вы можете выводить информацию о своей теме в записях и страницах через шорткод:
// version number shortcode function theme_version_shortcode() { $theme_name = 'xycss'; // customize with your theme name $theme_data = get_theme_data( get_theme_root() . '/' . $theme_name . '/style.css' ); return $theme_data['Version']; } add_shortcode('theme_version', 'theme_version_shortcode');
Теперь вывести информацию в записях или на страницах можно через шорткод:
[theme_version]
Вывод будет иметь следующий вид:
1.3
С помощью этой функции можно получить различную информацию, связанную с темой, и вывести ее на экран.
http://digwp.com/2011/12/displaying-theme-data-with-wordpress
Спасибо за перевод =)
Я только осваиваю WP не подскажете есть ли такой плагин или может быть фильтр с помощью которого можно делать так:
Анонс в категории содержит один текст и картинку, а полная запись совсем другой текст и картинку?
Кто то советует мне для этого использовать "Цитату" но в ней нет TinyMCE, а без него как то не кашерно писать…
Хм, честно говоря, не слышал, посмотрю еще…