updated query results
This commit is contained in:
@@ -74,10 +74,11 @@ class Partnerexpo_Core_Public {
|
|||||||
|
|
||||||
foreach ($query->posts as $post) {
|
foreach ($query->posts as $post) {
|
||||||
$posts[] = [
|
$posts[] = [
|
||||||
'id' => $post->ID,
|
'id' => $post->ID,
|
||||||
'title' => $post->post_title,
|
'title' => $post->post_title,
|
||||||
'slug' => $post->post_name,
|
'image' => get_the_post_thumbnail_url($post->ID),
|
||||||
'url' => get_permalink($post),
|
'excerpt' => $post->post_excerpt,
|
||||||
|
'url' => get_permalink($post),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -89,25 +89,12 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
masonry.style.opacity = "0.5";
|
masonry.style.opacity = "0.5";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// REPLACE THIS URL with your actual endpoint
|
const response = await fetch(`/wp-json/pexpo/v1/query?q=${encodeURIComponent(query)}&limit=${filters.maxResults}`);
|
||||||
const response = await fetch(`/pexpo/v1/query?q=${encodeURIComponent(query)}&limit=${filters.maxResults}`);
|
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|
||||||
// --- SIMULATED FETCH FOR DEMO (Remove this block in production) ---
|
|
||||||
// await new Promise(r => setTimeout(r, 600)); // Fake network delay
|
|
||||||
// const data = simulateBackendResponse(query);
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
|
|
||||||
console.log(data);
|
|
||||||
|
|
||||||
results = data;
|
results = data;
|
||||||
|
|
||||||
// 2. Compute local relevance if the API doesn't return it
|
|
||||||
// If your API returns a 'relevance' score, skip this.
|
|
||||||
computeLocalRelevance(query);
|
|
||||||
|
|
||||||
// 3. Render
|
requestLayout();
|
||||||
requestLayout();
|
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Search failed:", error);
|
console.error("Search failed:", error);
|
||||||
@@ -117,20 +104,20 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Simple client-side scorer if API doesn't rank them
|
// FOR TESTING ONLY REMOVE IN PROD
|
||||||
function computeLocalRelevance(query) {
|
// function computeLocalRelevance(query) {
|
||||||
if (!query) {
|
// if (!query) {
|
||||||
results.forEach(r => r.relevance = r.score);
|
// results.forEach(r => r.relevance = r.score);
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
const q = query.toLowerCase();
|
// const q = query.toLowerCase();
|
||||||
results.forEach(r => {
|
// results.forEach(r => {
|
||||||
let hits = 0;
|
// let hits = 0;
|
||||||
if (r.title.toLowerCase().includes(q)) hits += 50;
|
// if (r.title.toLowerCase().includes(q)) hits += 50;
|
||||||
if (r.desc.toLowerCase().includes(q)) hits += 20;
|
// if (r.desc.toLowerCase().includes(q)) hits += 20;
|
||||||
r.relevance = hits + r.score;
|
// r.relevance = hits + r.score;
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
|
|
||||||
// ---------- Layout & Masonry Logic ----------
|
// ---------- Layout & Masonry Logic ----------
|
||||||
const minCard = () => Number(getComputedStyle(document.documentElement).getPropertyValue("--cardMin")) || 240;
|
const minCard = () => Number(getComputedStyle(document.documentElement).getPropertyValue("--cardMin")) || 240;
|
||||||
@@ -215,12 +202,10 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
colEls.push(col);
|
colEls.push(col);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort
|
const sliced = results.slice();
|
||||||
const sorter = SORTS[activeSortKey] || SORTS.relevance;
|
|
||||||
const ranked = results.slice().sort(sorter.compare);
|
|
||||||
|
|
||||||
// Measure & Pack
|
// Measure & Pack
|
||||||
const { measured } = measureCardHeights(cols, ranked);
|
const { measured } = measureCardHeights(cols, sliced);
|
||||||
const placements = packRankAware(measured, cols, 6);
|
const placements = packRankAware(measured, cols, 6);
|
||||||
|
|
||||||
// Render
|
// Render
|
||||||
|
|||||||
Reference in New Issue
Block a user