Получить последнее сообщение о каждой категории Magento Fishpig

У меня успешная интеграция Fishpig с magento 2.

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

Пример: Если у меня есть 5 категорий (без отображения категории без категории), мне нужно отобразить самый последний пост из каждой категории.

Как я могу сделать это с рыбой свиньей?

Я пытался изменить list.phtml файл,
от FishPig / WordPress / просмотр / интерфейс / шаблоны / запись. Пока что я могу получать только самые последние сообщения из любой категории (если у меня есть самые последние сообщения в одной категории, я получаю их. Не самые последние сообщения из каждой категории).

Это код, который я получил до сих пор ..

<?php $objectManager = \Magento\Framework\App\ObjectManager::getInstance() ?>
<?php $posts = $objectManager->create('FishPig\WordPress\Model\ResourceModel\Post\Collection')
->addPostTypeFilter('post')
->setOrderByPostDate()
->addIsViewableFilter()
->setPageSize(5)
->load();
?>

<?php if (count($posts) > 0): ?>
<ul>
<?php foreach($posts as $post): ?>
<li>
<a href="<?php echo $post->getUrl() ?>"><?php echo $this->escapeHtml($post->getPostTitle()) ?></a>
<?php if ($image = $post->getFeaturedImage()): ?>
<a href="<?php echo $post->getUrl() ?>">
<img src="<?php echo $image->getAvailableImage() ?>" src="<?php echo $this->escapeHtml($post->getPostTitle()) ?>" />
</a>
<?php endif; ?>
<p><?php echo $post->getPostExcerpt(40) ?></p></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>

Как мне изменить это, чтобы добиться того, что мне нужно? Пожалуйста помоги

0

Решение

Что вы хотите? Модуль по умолчанию покажет вам каждую страницу категории и перечислит все сообщения в этой категории в порядке убывания даты. Вы пытаетесь повторить это?

Если это так, взгляните на модель Term. Вы можете загрузить коллекцию категорий и затем вызвать для нее функцию getPostCollection (), чтобы получить сообщения из этого термина / категории.

<?php $terms = $objectManager->get('FishPig\WordPress\Model\ResourceModel\Term\CollectionFactory')->create() ?>
<?php $terms->addTaxonomyFilter('category')->load() ?>
<?php   if (count($terms) > 0): ?>
<ul>
<?php foreach($terms as $term): ?>
<?php if ((int)$term->getId() === 1): ?><?php /* This is the uncategorized category, so skip */ continue; ?><?php endif; ?>
<?php $posts = $term->getPostCollection()->setPageSize(5)->setOrderByPostDate()->addIsViewableFilter()->load() ?>
<?php if (count($posts) > 0): ?>
<li>
<h2><a href="<?php echo $term->getUrl() ?>"><?php echo $term->getName() ?></a></h2>
<ul>
<?php foreach($posts as $post): ?>
<li>
<?php /* Standard post code here */
</li>
<?php endforeach; ?>
</ul>
</li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
<?php endif; ?>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]