Вопрос или проблема
Я хочу отображать только закрепленные записи на своей главной странице. В настоящее время есть настройка, где закрепленные записи отображаются вверху, за которыми следуют остальные записи. Я не хочу, чтобы остальные записи отображались, так как мне сделать так, чтобы отображались только закрепленные записи?
Спасибо!
WordPress сохраняет закрепленные записи в параметре с именем sticky_posts
. Вы можете получить их с помощью get_option('sticky_posts')
.
С этим знанием возможно изменить запрос так, чтобы запрашивались только закрепленные записи, обычно это делается с помощью хука pre_get_posts
.
add_action('pre_get_posts', 'WPSE_home_only_stickies');
function WPSE_home_only_stickies($query) {
// выполняется только для главной страницы и основного запроса
if ($query->is_home() && $query->is_main_query()) {
$sticky_posts = get_option('sticky_posts');
$query->set('post__in', $sticky_posts);
}
}
Попробуйте выполнить следующие шаги
- Войдите в панель администрирования WordPress.
- Посмотрите на меню слева и нажмите на опцию Настройки.
- В развернувшемся меню нажмите на опцию Чтение.
- Вы попадете на страницу Настройки чтения. Отсюда найдите раздел Отображение главной страницы и выберите радио-кнопку для Статическая страница (выберите ниже).
- Затем выберите страницу, которую вы хотите использовать в качестве главной страницы, из выпадающего списка Главная страница.
- Наконец, установите выпадающий список Страница записей на –Выбрать–. Это эффективно удаляет ее из отображения на вашем сайте.
- Нажмите на кнопку Сохранить изменения, чтобы активировать новую настройку.
Надеюсь, это поможет.
Ответ или решение
Чтобы отобразить только "липкие" записи (sticky posts) на вашей автоматически сгенерированной главной странице WordPress, вам потребуется внести некоторые изменения в код вашего сайта. Ниже приведены подробные шаги, которые помогут вам достичь этого:
Шаги по отображению только липких записей на главной странице WordPress
-
Вход в админ-панель WordPress:
- Зайдите в свою административную панель WordPress.
-
Переход к редакторам темы:
- В левой части меню выберите раздел "Внешний вид", затем нажмите "Редактор тем" (или "Theme Editor", в зависимости от языка интерфейса).
-
Добавление кода в файл функций:
- Найдите файл
functions.php
вашей активной темы. Это можно сделать в разделе "Темы" или "Редактор тем". - Вставьте следующий код в конец файла
functions.php
:
- Найдите файл
add_action('pre_get_posts', 'WPSE_home_only_stickies');
function WPSE_home_only_stickies($query) {
// Запуск только для главной страницы и основного запроса
if ($query->is_home() && $query->is_main_query()) {
$sticky_posts = get_option('sticky_posts');
$query->set('post__in', $sticky_posts);
$query->set('orderby', 'post__in'); // Сортировка по порядку липких записей
}
}
Этот код использует хук pre_get_posts
, который позволяет изменить параметры основного запроса, выполняющегося на главной странице. Он получает массив липких записей и настраивает запрос так, чтобы он возвращал только эти записи.
-
Сохраните изменения:
- После добавления кода не забудьте сохранить изменения в файле
functions.php
.
- После добавления кода не забудьте сохранить изменения в файле
-
Настройка отображения страницы:
- Перейдите в "Настройки" -> "Чтение" в админ-панели.
- Убедитесь, что секция "Отображение главной страницы" настроена на статическую страницу, если вы хотите использовать статическую страницу в качестве главной.
- Убедитесь, что страница с записями (если она у вас есть) установлена в "–Не выбрано–", чтобы избежать случайного вывода других записей.
Проверка результатов
После выполнения этих шагов ваша главная страница WordPress будет отображать только липкие записи. Убедитесь, что у вас действительно есть липкие записи, помеченные как таковые, для их отображения на главной странице.
Заключение
Эти шаги позволят вам настроить ваш сайт так, чтобы на главной странице отображались только липкие записи. Если у вас возникнут какие-либо вопросы или потребуются дополнительные настройки, не стесняйтесь обращаться за помощью!