Вывод на экран информации, связанной с темой WordPress

Дата публикации:Декабрь 22, 2011

В 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

Поделиться

3 комментария

  1. Спасибо за перевод =)

  2. Я только осваиваю WP не подскажете есть ли такой плагин или может быть фильтр с помощью которого можно делать так:

    Анонс в категории содержит один текст и картинку, а полная запись совсем другой текст и картинку?

    Кто то советует мне для этого использовать "Цитату" но в ней нет TinyMCE, а без него как то не кашерно писать…

  3. Architect Of Ruin says:

    Хм, честно говоря, не слышал, посмотрю еще…

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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