все что связано с моей работой
Главная » Програмирование » Оформление поста в зависимости от категории.

Оформление поста в зависимости от категории.

Возникла необходимость сделать так, чтобы, посты имели вменяемый вид. Чтобы, к примеру, приказ можно было просмотреть на сайте, а если нужны приложения тогда скачать полный архив. Такое оформление очень ускоряет поиск документов.

Учитывая специфику постов на сайте решено было делать оформление в зависимости от категории. Ведь оформление у всех приказов одно, а к примеру, у постановлений — другое, но одинаковое для всех документов внутри категорий.

В WordPress у всех рубрик(категорий) есть такой параметр — ярлык, в терминологии WP — slug. Он создается, обычно, транслитерацией из названия рубрики и состоит из латинских символов. Вот его и будем использовать — поместим содержимое поста в контейнер с классом, имя которому и будет «ярлык» из свойств рубрики.

В файлах шаблона ищем single.php, где-то в середине файла ищем вывод теста поста:


Добавляем нашу обертку:


Функция get_the_category — возвращает массив описаний(объектов) рубрик в которые включен пост. Мы используем первый элемент, первую категорию в которую включен пост. Это значит что, если есть рубрика «Законодательство», которая содержит под рубрику «Приказы», — то пост должен принадлежать только к одной из этих рубрик. Иначе могут возникать разные казусы: например для поста с текстом приказа, обертка может получится с классом рубрики «Законодательство» и иметь совершенно другое форматирование.

Еще одна ссылка на список полей в объекте $post

Теперь осталось добавить в таблицу стилей шаблона класс с именем «ярлыка», например так:

.prikazy {font-family: 'Times New Roman';}

Еще раз об использовании шорткодов. Для оформления приказов сделал несколько шоркодов: для подписей и шапки приказа.

function Prikaz_Header($atts, $content = null) {
  extract (shortcode_atts(array("number" => '', "data" => ''), $atts));
  $content=trim($content);
  $note='';
  if (!empty($content)) {
    $note='

‘.$content.’

';}
  return '

Герб Аксайского района

ФИНАНСОВОЕ УПРАВЛЕНИЕ
АДМИНИСТРАЦИИ
АКСАЙСКОГО РАЙОНА

ПРИКАЗ №’.$number.’

‘.$data.’г. Аксай

‘.$note.’

';
}  

function Prikaz_Footer($atts, $content = null) {
  extract (shortcode_atts(array("job" => '', "fio" => ''), $atts));
  return '
';
}  
add_shortcode("prikaz", "Prikaz_Header");
add_shortcode("sign", "Prikaz_Footer");

С ними оформление приказов стало очень-очень простым. Правила оформления приказов можно почитать тут.

Комментариев нет

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.