Compare commits

..

2 Commits

Author SHA1 Message Date
Cooper Dalrymple
37572b5a8a Improve identification of tax query term 2026-03-03 17:16:00 -06:00
Cooper Dalrymple
681e2ed152 Prevent modifying query if term not found 2026-03-03 17:11:33 -06:00

View File

@@ -300,17 +300,18 @@ final class Sort {
foreach ($wp_query->query['tax_query'] as $tax) { foreach ($wp_query->query['tax_query'] as $tax) {
if (!isset($tax['taxonomy'])) continue; if (!isset($tax['taxonomy'])) continue;
if ($current_relationship['taxonomy'] != $tax['taxonomy']) continue; if ($current_relationship['taxonomy'] != $tax['taxonomy']) continue;
$term_by = $tax['field']; $term_by = $tax['field'] ?? 'term_id';
$term_id = $tax['terms']; $term_id = $tax['terms'];
break; break;
} }
} else if ($current_relationship['taxonomy'] === 'category' && isset($wp_query->query['category_name'])) { } else if ($current_relationship['taxonomy'] === 'category' && isset($wp_query->query['category_name'])) {
$term_id = $wp_query->query['category_name']; $term_id = $wp_query->query['category_name'];
} }
if (empty($term_id)) break; if (is_array($term_id)) $term_id = array_values($term_id)[0];
if (empty($term_id)) return;
$term = get_term_by($term_by, $term_id, $current_relationship['taxonomy']); $term = get_term_by($term_by, $term_id, $current_relationship['taxonomy']);
if (!is_a($term, 'WP_Term')) break; if (!is_a($term, 'WP_Term')) return;
$wp_query->set('meta_key', "ogre-sort_{$current_relationship['taxonomy']}_{$term->term_id}"); $wp_query->set('meta_key', "ogre-sort_{$current_relationship['taxonomy']}_{$term->term_id}");
$wp_query->set('orderby', 'meta_value_num'); $wp_query->set('orderby', 'meta_value_num');