Как добавить липкие посты в WordPress Custom Post Type Archives

Вы хотите добавить липкие посты на архивные страницы пользовательских типов постов? Размещение наиболее важных пользовательских постов в верхней части...

Вы хотите добавить липкие посты на архивные страницы пользовательских типов постов?

Размещение наиболее важных пользовательских постов в верхней части страницы поможет вашим посетителям легче их найти. Но по умолчанию WordPress делает функциональность «липкости» доступной для постов, но не для других типов постов.

В этой статье мы рассмотрим, как добавить липкие посты в архивы WordPress пользовательского типа поста.

Зачем делать пользовательские посты WordPress липкими?

Если вы создаете контент для своего сайта WordPress в формате, отличном от стандартного поста или страницы, то, скорее всего, вы уже используете пользовательский тип поста. Например, если у вас сайт книжных обзоров, то вы можете создать тип поста «Книжные обзоры».

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

Но хотя WordPress предлагает функцию липких постов, она недоступна для пользовательских типов постов.

Давайте рассмотрим, как добавить функцию прилипания к архивным страницам пользовательских типов постов.

Добавление липких постов в пользовательские типы постов

Сначала вам нужно установить и активировать плагин Sticky Posts — Switch. Для получения более подробной информации смотрите наше пошаговое руководство по установке плагина WordPress.

При активации необходимо зайти в Настройки » Sticky Posts — Switch чтобы настроить плагин. Просто установите флажок рядом с пользовательскими типами постов, которые вы хотите сделать липкими. В этом руководстве мы проверим тип поста ‘Book Reviews’.

Перейдите на страницу Настройки

После этого нужно нажать кнопку ‘Сохранить изменения’ в нижней части экрана.

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

Нажмите на звездочку рядом с постом, который вы хотите сделать липким

Теперь вы сделали пост липким. Проблема в том, что WordPress показывает липкие посты только на главной странице. Далее мы рассмотрим, как отображать липкие посты на страницах архива.

Отображение «липких» постов в архивах пользовательских типов постов

Чтобы отобразить липкие посты в верхней части страницы архива пользовательских постов, вам нужно создать новый шаблон.

Для этого вам нужно будет использовать FTP-клиент или файловый менеджер в панели управления хостингом WordPress. Если вы раньше не пользовались FTP, то вам стоит посмотреть наше руководство о том, как использовать FTP для загрузки файлов в WordPress.

Вам нужно получить доступ к вашему сайту с помощью FTP-клиента или файлового менеджера, а затем перейти в папку /wp-content/themes/YOURTHEME/. Например, если вы используете тему Twenty Twenty-One, то вам нужно перейти по адресу /wp-content/themes/twentytwentyone/ .

Далее вам нужно создать новый файл в этой папке с именем archive-POSTTYPE.php . Например, если slug вашего пользовательского типа поста — ‘bookreviews’, вам нужно создать новый файл под названием archive-bookreviews.php .

Зайдите в папку темы с помощью FTP-клиента

После этого вам нужно найти архив с файлами.php в той же папке. Просто скопируйте содержимое архива.php и вставьте его в новый файл, который вы создали.

На следующем этапе вам нужно добавить код в файлы вашей темы. Если вам нужна помощь в добавлении кода на ваш сайт, то обратитесь к нашему руководству о том, как добавить пользовательский код в WordPress.

Когда вы будете готовы, вам нужно добавить следующий код в функции вашей темы.php файл или плагин для конкретного сайта.

function wpb_cpt_sticky_at_top( $posts ) < // apply it on the archives only if ( is_main_query() && is_post_type_archive() ) < global $wp_query; $sticky_posts = get_option( 'sticky_posts' ); $num_posts = count( $posts ); $sticky_offset = 0; // Find the sticky posts for ($i = 0; $i < $num_posts; $i++) < // Put sticky posts at the top of the posts array if ( in_array( $posts[$i]->ID, $sticky_posts ) ) < $sticky_post = $posts[$i]; // Remove sticky from current position array_splice( $posts, $i, 1 ); // Move to front, after other stickies array_splice( $posts, $sticky_offset, 0, array($sticky_post) ); $sticky_offset++; // Remove post from sticky posts array $offset = array_search($sticky_post->ID, $sticky_posts); unset( $sticky_posts[$offset] ); > > // Ищем больше липких постов, если необходимо if ( !empty( $sticky_posts) ) < $stickies = get_posts( array( 'post__in' =>$sticky_posts, 'post_type' => $wp_query->query_vars['post_type'], 'post_status' => 'publish', 'nopaging' => true ) ); foreach ( $stickies as $sticky_post ) < array_splice( $posts, $sticky_offset, 0, array( $sticky_post ) ); $sticky_offset++; >> > return $posts; > add_filter( 'the_posts', 'wpb_cpt_sticky_at_top' ); // Добавьте класс sticky в заголовок статьи, чтобы стилизовать липкие посты по-разному function cpt_sticky_class($classes) < if ( is_sticky() ) : $classes[] = 'sticky'; return $classes; endif; return $classes; >add_filter('post_class', 'cpt_sticky_class');

Этот код переместит ваши липкие посты на самый верх. Если ваша тема использует функцию post_class(), то она также добавляет класс ‘sticky’, чтобы вы могли стилизовать ваши sticky-посты с помощью CSS.

Вот как выглядит архив пользовательского типа поста Book Reviews на нашем демонстрационном сайте. До добавления кода, липкий пост был вторым в списке.

Предварительный просмотр Sticky Post в архиве пользовательских типов постов

Теперь вы можете стилизовать свои липкие посты с помощью .липкий класс в стиле вашей темы.таблица стилей css. Вот пример.

.липкий < background-color:#ededed; background-image:url('http://example.com/wp-content/uploads/featured.png'); background-repeat:no-repeat; background-position:right top; >

Вот обновленный скриншот с нашего демонстрационного сайта.

Предварительный просмотр CSS-стилизации Sticky Post

Мы надеемся, что это руководство помогло вам узнать, как добавить липкие посты в архивы WordPress пользовательского типа поста. Вы также можете узнать, как ускорить работу сайта WordPress, или ознакомиться со списком из 27 советов по увеличению посещаемости вашего блога.

Источник: www.wpbeginner.com

Оцените статью
Добавить комментарий