WK_posts

Класс WK_posts предназначен для вывода постов, статических страниц и вообще любых типов записей – короче все, что позволяет WP_Query. Кроме этого имеет дополнительный функционал и набор вводных.
Входит в состав плагина Whale-Kit.
Скачать плагин whale-kit.zip.
Основной функционал от WordPress класса WP_Query.
Вывод, отображение данных реализовано в виде: виджета (для ваших сайдбаров) и другой вариант – через шоткод ( [wk_posts …/]) для страниц или записей.

Так же как и WR_terms класс WK_posts, при обработке древовидных структур (страницы), использует собственный алгоритм построения многомерной структуры из двухмерного массива.

Другая особенность класса – это использование микро-шаблонов. Приведу пример: мы хотим выводить какие-то записи и добавить информацию о количестве комментариев.
для этого нужно задать

c_tmpl = ' комментариев: <b>$count</b>'

при обработке вместо $count будет подставлена нужная цифра, далее c_tmpl – нужно подставить в шаблоне элемента :

<div class="$class">$title$c_tmpl</div>

если комментариев у записи нет то шаблон c_tmpl вообще не будет создан и после $title ничего не подставится.

Дополнительные вводные:

  • collapse - скрывать неактивные ветки дерева, позволяет существенно сократить список (для статических страниц)(false)
  • hierarchical - отображать иерархию (false)
  • show_count - выводить кол-во комментариев(false)
  • size_of_count - рассчитать размер шрифта в зав. от кол-ва комментариев
  • smallest,largest – установка размеров шрифта от маленького до большого, каждому элементу в ссылку будет установлен шрифт <a href="" style='font-size:8pt'> в зависимости от кол-ва комментов, которое содержит данная запись\страница
  • unit - указывает единиц измерения шрифта (pt)
  • css_prefix - используется при формировании css классов элемента
  • truncate_title - обрезать заголовок до размера
  • truncate_content - обрезать основной текст
  • date_format - формат даты для функции date()
  • show_author - вычислить автора, в шаблонах станет доступна переменная $author

МИКРО ШАБЛОНЫ

  • hint_none - – текст титла страницы у которой нет коментов
  • hint_single - текст титла страницы у которой 1 комент
  • hint_fiw - текст титла страницы у которой 2-4 комента
  • hint - текст титла страницы у которой 5 и более коментов, если первые 2 не заданы используется hint

пример:

  • hint_none = 'нет комментариев «$name» id:$id'
  • hint_single = '1 комментарий «$name» id:$id'
  • hint_few='$count комментария «$name» id:$id'
  • hint='$count комментариев «$name» id:$id'

для подстановки в группу hint доступные переменные: ($count, $name, $id)

  • lv_tmpl - микро шаблон уровня ($elements, $lv_tag, $taxonomy, $css_prefix, $el_count, $ind, $class, $depth)  
    '\n$ind<$lv_tag class="$class">\n$elements\n$ind</$lv_tag>'
  • с_tmpl - микро шаблон кол-ва записей  ( $count_tag, $id, $count )
    '<$count_tag>$count</$count_tag>'
  • a_tmpl - шаблон вывода автора (author, a_url)
    'автор: <a href="$a_url">$author</a>'

    – по  умолчанию этот шаблон не задан

  • cnt_tmpl – шаблон для форматирования контента(основной текст) – не задан ($content, $excerpt, $title, $post_type, $name, $ind, $id, $date)
  • el_tmpl - микро шаблон элемента ( $id, $num, $ind, $name, $unit, $href, $date, $count, $title, $el_tag, $excerpt, $content, $post_type, $font_size, $count_tag, $css_prefix, $childs, $с_tmpl, $style, $cnt_tmpl, $hint, $a_tmpl, $class )
    '<$el_tag title="$hint"><a href="$href" style="$style"><b>$title</b></a>$с_tmpl$childs</$el_tag>'

Переменные для подстановки

  • $id – ID записи\страницы
  • $num - порядковый номер элемента в списке
  • $ind – отступ, для форматирования кода, рассчитывается в зависимости от уровня
  • $name – post_name – url название записи
  • $unit – единицы измерения шрифта
  • $href – ссылка на запись
  • $date – дата (уже отформатированная)
  • $count – кол-во комментариев
  • $title – заголовок
  • $el_tag – тег для оформления элемента
  • $excerpt – post_excerpt – анонс записи
  • $content – основной текст записи
  • $post_type – тип записи
  • $font_size – размер шрифта – расcчитанный в зависимости от количества комментариев
  • $count_tag – тег для оформления кол-ва комментариев (sup)
  • $css_prefix - префикс – для генерации css классов, если не задан то будет взят post_type
  • $class – список классов для текущего элемента
  • $style – стиль рассчитан в зависимости от кол-ва комментариев
  • $a_tmpl – готовый шаблон с автором записи
  • $hint – всплывающая подсказка
  • $c_tmpl – готовый шаблон с количеством комментариев
  • $cnt_tmpl – готовый шаблон с контентом (основной текст)
  • $childs – потомки для данного элемента

Примеры:

Шоткод выводит посты простой таблицей. Распечатаем 10 постов из категории WordPress(id:3)

[wk_posts 
post_type = 'post' 
cat = 3
date_format = 'd-m-Y'
posts_per_page = 10
truncate_title = 50
lv_tmpl = '
<h2>Таблица</h2>
<table border=1 class="$class">
<tr><th>№<th>ID<th>Заголовок<th>автор<th>Дата<th>post_type<th>ссылка</tr>
$elements
</table>

a_tmpl = 'author: <a href="$a_url">$author</a>'
el_tmpl = '$ind<tr><td>$num<td>$id<td>$title<td>$a_tmpl<td>$date<td>$post_type<td><a href="$href">перейти</a></tr>\n' 
/]

Таблица

ID Заголовок автор Дата post_type ссылка
1 1801 Проблема дальнейшего развитя author: admin 02-11-2015 post перейти
2 1719 Небольшой плагин-дополнение для ads-wordpress author: admin 02-03-2015 post перейти
3 1652 Обновление 4.2.0 author: admin 29-11-2014 post перейти
4 1523 Модуль Антиспам author: admin 21-06-2014 post перейти
5 1491 Установка Доски Объявлений author: admin 19-06-2014 post перейти
6 1464 Бесплатная Доска Объявлений для Вашего города author: admin 15-06-2014 post перейти
7 1452 [AdsAll] author: admin 05-05-2014 post перейти
8 1272 WK_posts author: admin 15-04-2014 post перейти
9 1271 WK_terms author: admin 15-04-2014 post перейти
10 1261 While-kit author: admin 15-04-2014 post перейти

Сложный запрос к WP_Query

Найдем посты отмеченные меткой test_tag И НЕ из категории Гостевая Книга id:18

[wk_posts
tax_query='array(
    "relation"=>"AND", 
     array(
       "taxonomy" => "category",
       "field" => "id",
       "terms" => array(18),
       "operator" => "NOT IN"
     ),
     array(
        "taxonomy" => "post_tag",
        "field" => "slug",
        "terms" => array("test_tag")      
     ) 
)'
/]

Можете убедится сами метка test_tag включает 4 записи из Гостевой Книги, которые мы успешно исключили. Напомню – документацию по таким сложным запросам смотрите WP_Query.

Если понадобится такое же условие сделать в виджете – придется весь массив вытянуть в одну строку и удалить одинарные кавычки:

tax_query=array( "relation"=>"AND", array( "taxonomy"=>"category", "field"=>"id", "terms"=>array(18), "operator"=>"NOT IN" ), array( "taxonomy"=>"post_tag", "field"=>"slug", "terms"=>array("test_tag") ) )

Добавить комментарий

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url=""> [php]…[/php] [html]…[/html] [css]…[/css] [text]…[/text] [code]…[/code]