From 7a9054bb3f033c98067b3196378311dae54c5fbf Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 20 Jan 2026 01:31:53 +0000
Subject: [PATCH] =OperationQueue refactor to the JVBase/managers/queue namespace
---
inc/rest/routes/FeedRoutes.php | 47 +++++++++++++++++++++++++++++++++--------------
1 files changed, 33 insertions(+), 14 deletions(-)
diff --git a/inc/rest/routes/FeedRoutes.php b/inc/rest/routes/FeedRoutes.php
index 098441e..05a97a7 100644
--- a/inc/rest/routes/FeedRoutes.php
+++ b/inc/rest/routes/FeedRoutes.php
@@ -40,7 +40,7 @@
$this->cache->clear();
$this->checker = Checker::getInstance();
- if (jvbSiteUsesUmami()) {
+ if (Features::hasIntegration('umami')) {
$this->tracker = JVB()->connect('umami');
}
$this->setupCacheConnections();
@@ -249,6 +249,9 @@
$item['taxonomies'] = array_merge($item['taxonomies'], $this->extractTaxonomies($f, $postID, jvbNoBase($post->post_type)));
$images[$f['post_thumbnail']] = jvbImageData((int) $f['post_thumbnail']);
}
+ $item['fields']['number'] = count($children);
+ $item['fields']['before'] = get_post_thumbnail_id($children[0]);
+ $item['fields']['after'] = get_post_thumbnail_id($children[array_key_last($children)]);
$item['fields']['timeline'] = $subFields;
$item['images'] = $item['images'] + $images;
@@ -258,13 +261,27 @@
protected function extractTaxonomies(array $fields, int $postID, string $content):array {
$taxonomies = [];
foreach ($fields as $key => $value) {
- if (array_key_exists($key, JVB_TAXONOMY)) {
- $terms = array_map('absint', explode(',',$value));
- foreach($terms as $termID) {
- $term = get_term($termID, jvbCheckBase($key));
- if ($term && !is_wp_error($term)) {
- $taxonomies[$key][$termID] = $this->formatTaxonomy($term, $postID, $content);
- }
+ if (empty($value)) {
+ continue;
+ }
+ if (!array_key_exists($key, JVB_TAXONOMY)) {
+ continue;
+ }
+
+ $taxConfig = JVB_TAXONOMY[$key];
+ if (isset($taxConfig['public']) && $taxConfig['public'] === false) {
+ continue;
+ }
+ $terms = array_map('absint', explode(',', $value));
+ $terms = array_filter($terms); // Remove 0 values
+
+ if (empty($terms)) {
+ continue;
+ }
+ foreach($terms as $termID) {
+ $term = get_term($termID, jvbCheckBase($key));
+ if ($term && !is_wp_error($term)) {
+ $taxonomies[$key][$termID] = $this->formatTaxonomy($term, $postID, $content);
}
}
}
@@ -277,14 +294,17 @@
return $cache->remember(
'feed_link_'.$term->term_id,
function () use ($term, $postID, $type) {
- return [
+ $base = [
'ID' => $term->term_id,
'title' => htmlspecialchars_decode($term->name),
'url' => get_term_link($term->term_id, $term->taxonomy),
- 'umami_click' => $this->tracker->trackTaxonomyClick($term->term_id, $term->taxonomy, [
- 'from' => $type . '_' . $postID
- ])
];
+ if ($this->tracker) {
+ $base['umami_click'] =$this->tracker->trackTaxonomyClick($term->term_id, $term->taxonomy, [
+ 'from' => $type . '_' . $postID
+ ]);
+ }
+ return $base;
}
);
}
@@ -361,8 +381,7 @@
$args = $this->applyOrderFilters($args, $data);
$args = $this->applyDateFilters($args, $data);
- $args = $this->applyFavouritesFilter($args, $data);
- return $args;
+ return $this->applyFavouritesFilter($args, $data);
}
protected function applyTaxonomyFilters(array $args, array $data): array
--
Gitblit v1.10.0