Anchor CMS: включение идентификатора категории в список записей

У меня есть обычная страница сообщений в теме Anchor CMS. Рядом со списком сообщений есть список категорий, который я собираюсь использовать в качестве фильтров сортировки для сообщений в блоге. Список категорий был выведен следующим образом на основе документов привязки:

 <?php foreach(Category::dropdown() as $id => $category): ?>

<div class="filter" data-filter=".category-<?php echo $id; ?>"><?php echo $category; ?></div>

<?php endforeach; ?>

Затем я должен включить соответствующий класс в каждую статью или пост в этом списке, который будет выглядеть следующим образом:

 <?php if(has_posts()): ?>
<?php $i = 0; while(posts()): ?>

<article class="mix category-<?php echo category_id(); ?>">

<?php endwhile; ?>
<?php endif; ?>

Обратите внимание, что категория класса article- [num] соответствует фильтру данных в div «filter». Это то, что позволяет сортировать.

Однако, как бы я ни пытался это сделать, я получаю удвоенные сообщения или просто не работаю. Я пытался использовать оператор foreach, как показано в документах:

<?php foreach(Category::dropdown() as $id => $category): ?>

<article class="mix category-<?php echo category_id(); ?>">

<?php endforeach; ?>

но это заставляет посты удваиваться, я полагаю, потому что это в цикле while?

В базе данных категории и сообщения находятся в двух отдельных таблицах, однако идентификатор категории включен в таблицу сообщений. Я искал способ повторить это, например. article_category_id но пока безуспешно.

Как включить идентификатор категории в список сообщений?

0

Решение

Хорошо, нашел ответ на свой вопрос.

На самом деле это было простое решение, когда я об этом подумал. Различные ссылки на функции в Anchor CMS, такие как article_category и т. Д., Могут быть определены пользователем путем доступа якорь> функции> статьи.php.

В этом файле и на основе существующих функций, таких как

function article_category() {
if($category = Registry::prop('article', 'category')) {
$categories = Registry::get('all_categories');

return $categories[$category]->title;
}
}

Я создал новую функцию для идентификатора категории. Это выглядит так:

function article_category_id() {
if($category = Registry::prop('article', 'category')) {
$categories = Registry::get('all_categories');

return $categories[$category]->id;
}
}

и затем повторил это в циклах сообщений:

<?php echo article_category_id(); ?>

Просто как тот!

2

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector