Как в wordpress вывести категорию в определенный блок?
Привет. На сайте был реализован вывод записей с определенной категорией в отдельный блок на главной странице.
Категория - "топ" выводилась в контейнер вверху страницы. После обновы на последний wp вывод перестал работать.
Вот код который нашел по этой категории.
файл home-page.php
Класс PostService, который у вас получает посты - это нечто не относящееся к WordPress, что-то самопальное.
Найдите, где этот класс объявляется - и там в методе getPostsForTag уже можно смотреть, что сломалось.
а как можно решить дальше? файл я нашел, где об этом речь идет тоже вроде. но как понять почему не работает не знаю.
Может тут проблема?
public static function getPostsForTag($tag_slug, $limit = 10, $params = [])
{
$posts = get_posts([
'posts_per_page' => $limit,
'tag' => $tag_slug,
'post_status' => 'publish',
]);
Как это часто бывает в такого рода классах, всё там взаимосвязано.
Конкретно в этом методе я проблем не вижу, при условии того что раньше работало. Но он возвращает другой метод... Выложите весь класс куда-то целиком, можно будет смотреть.
Евгений, да уж, долго мы так перебрасываться будем :)
Давайте я вам попробую алгоритм поиска ошибки описать, иначе это затянется надолго или в целом попадёт под категорию "это задание, а не вопрос".
Вот смотрите, изначально посты у вас получаются с помощью PostService::getPostsForTag() (1)
Там идёт запрос постов с помощью стандартной функции get_posts().
Давайте выведем его результат просто на страницу с помощью var_dump() (2)
Если посты выводятся - значит, ошибка где-то дальше по этому водопаду. Если не выводятся - значит уже здесь.
Дальше метод возвращает результат работы другого метода, который можно определить по (3) и (4), где (3) - название класса (self - текущий класс, может быть $this-> в случае нестатических классов), (4) - название метода. То есть здесь нам надо найти в текущем классе метод transform().
Нашли (5), смотрим. Он возвращает $results, но $results собираются с помощью другого класса ForPost (6).
Вывели $results (7) - судя по всему, должен быть пустой. Значит ищем класс ForPost, начинаем там искать (метод __construct) отвечает за вот это "new ForPost()"...
Таким образом доходим до того места, которое возвращает что-то не то, и там смотрим.