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

В 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

Блог про WordPress
Комментарии: 3
  1. Аноним

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

  2. Аноним

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

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

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

  3. Дмитрий (автор)

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

Добавить комментарий для Architect Of Ruin Отменить ответ

Получать новые комментарии по электронной почте.