Шорткод. Блок записів у контенті сторінки. Урок 1

17

Від автора: У цьому уроці ми вирішимо одну цікаву задачу, використовуючи можливості шорткода. Суть завдання полягає в тому, щоб дати можливість адміністратору сайту на WordPress додавати в будь-яке місце контенту сторінок або записів блок посилань на запису певної рубрики (або рубрик). При цьому все має відбуватися максимально просто і швидко адміністратора сайту.

Шорткод. Блок записів у контенті сторінки. Урок 1

Автор: Андрій Кудлай

Звуть мене Андрій Кудлай. Родом я з України, живу в Дніпропетровську. Веб-програмування вчився сам. Непогано знаю HTML, CSS, PHP, JavaScript.

Шорткод. Блок записів у контенті сторінки. Урок 1Шорткод. Блок записів у контенті сторінки. Урок 1

Отже, для вирішення завдання ми будемо використовувати шорткод. Шорткод – це т. зв. короткий код, який нагадує BB-теги. Якщо шорткод зареєстрований на сайті, то WordPress виконає прив’язану до нього функцію, замінивши сам шорткод результатом роботи прив’язаною функції.

Наш шорткод буде виглядати приблизно так: [wfm-cats id=»2,3″ count=»3″].

Як бачимо, шорткод підтримує 2 атрибута, перший з яких — id – припускає номер рубрики (номери рубрик), з якої потрібно отримати запису. Другий атрибут (count) відповідає за кількість записів, які необхідно отримати.

У відео версії уроку ви знайдете докладний коментування коду, тут же я просто викладу його лістинг, який необхідно помістити в файл functions.php активної теми:

add_shortcode( ‘wfm-cats’, ‘wfm_add_category_posts’ );
function wfm_add_category_posts($atts){
if( empty($atts[‘id’]) ) return;
$per_page = !empty($atts[‘count’]) ? (int)$atts[‘count’] : 3;
if( $per_page $cats_id,
‘posts_per_page’ => $per_page
)
);
$content = «;
if( $get_posts->have_posts() ){
$content .= ‘

‘;
while( $get_posts->have_posts() ){
$get_posts->the_post();
$content .= ‘

‘. get_the_title() . ‘

‘;
}
$content .= ‘

‘;
}
return $content;
}

У наступному уроці ми доопрацюємо наш шорткод, реалізувавши висновок мініатюр виведених записів.

На цьому наш урок закінчено. Удачі і до нових зустрічей!