Merge pull request 'Improve query args modification with term relationship' (#4) from query-block into main

Reviewed-on: #4
This commit is contained in:
2026-03-03 23:17:26 +00:00

View File

@@ -300,17 +300,18 @@ final class Sort {
foreach ($wp_query->query['tax_query'] as $tax) {
if (!isset($tax['taxonomy'])) continue;
if ($current_relationship['taxonomy'] != $tax['taxonomy']) continue;
$term_by = $tax['field'];
$term_by = $tax['field'] ?? 'term_id';
$term_id = $tax['terms'];
break;
}
} else if ($current_relationship['taxonomy'] === 'category' && isset($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']);
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('orderby', 'meta_value_num');