diff --git a/includes/api.php b/includes/api.php index ca21817..216f6c3 100644 --- a/includes/api.php +++ b/includes/api.php @@ -37,7 +37,7 @@ add_action('rest_api_init', function () { /* ---------------- BUILDING ROUTES -----------------*/ - + // * BUILD ALL NEWS CARDS register_rest_route('homegrade-datas/v1/build', '/news', array( 'methods' => 'GET', 'callback' => 'build_news_posts_feed_all', @@ -56,27 +56,27 @@ add_action('rest_api_init', function () { -function build_card($request) -{ - $cardId = $request['cardId']; +// function build_card($request) +// { +// $cardId = $request['cardId']; - $test = get_template_part( - 'template-components/cards/card-news', - null, - array( - 'card_variant' => 'activite', - 'post_ID' => $cardId, - 'post_title' => get_the_title($cardId), - // 'post_thumbnail' => $post_thumbnail, - // 'news_type' => $news_type, - ) - ); - $response = new WP_REST_Response($test); - $response->set_status(200); +// $test = get_template_part( +// 'template-components/cards/card-news', +// null, +// array( +// 'card_variant' => 'activite', +// 'post_ID' => $cardId, +// 'post_title' => get_the_title($cardId), +// // 'post_thumbnail' => $post_thumbnail, +// // 'news_type' => $news_type, +// ) +// ); +// $response = new WP_REST_Response($test); +// $response->set_status(200); - return $response; -} +// return $response; +// } function get_news($request) @@ -127,11 +127,11 @@ function build_news_posts_feed_all($request) "post_type" => "post", "posts_per_page" => -1, ); - $newsPostsDatas = get_posts($args); + $newsPostsDatas = new WP_Query($args); ob_start(); - foreach ($newsPostsDatas as $key => $post) { + foreach ($newsPostsDatas->posts as $key => $post) { $post_thumbnail = get_the_post_thumbnail($post->ID, 'full', array('class' => 'card-news__thumbnail card-post__thumbnail')) ?? null; $news_type = get_the_terms($post->ID, "news_type") ?? null; // write_log($news_type); @@ -163,6 +163,7 @@ function build_news_posts_feed_per_type_id($request) $args = array( "post_type" => "post", "posts_per_page" => -1, + "tax_query" => array( array( 'taxonomy' => 'news_type', @@ -171,11 +172,11 @@ function build_news_posts_feed_per_type_id($request) ) ) ); - $newsPostsDatas = get_posts($args); + $newsPostsDatas = new WP_Query($args); ob_start(); - foreach ($newsPostsDatas as $key => $post) { + foreach ($newsPostsDatas->posts as $key => $post) { $post_thumbnail = get_the_post_thumbnail($post->ID, 'full', array('class' => 'card-news__thumbnail card-post__thumbnail')) ?? null; $news_type = get_the_terms($post->ID, "news_type") ?? null; get_template_part( diff --git a/resources/js/archive-template-news.js b/resources/js/archive-template-news.js index 97c6d8a..eba41d9 100644 --- a/resources/js/archive-template-news.js +++ b/resources/js/archive-template-news.js @@ -1,25 +1,16 @@ -function loadMoreNewsInit() { - const loadMoreButton = document.querySelector('#load-more-news'); - if (!loadMoreButton) return; +async function filterPosts(e) { + const filterID = + e.target.getAttribute('data-term-id') ?? + e.target.parentElement.getAttribute('data-term-id') ?? + null; - function loadMoreNews() { - console.log('loadMoreNews'); - } - - loadMoreButton.addEventListener('click', loadMoreNews); -} - -function filterNewsInit() { - const filterNewsToolbar = document.querySelector('.filters-toolbar--archive-news'); - if (!filterNewsToolbar) return; - - const filterButtons = filterNewsToolbar.querySelectorAll('.filters-toolbar__action-button'); - if (!filterButtons) return; + const filterButtons = document.querySelectorAll('.filters-toolbar__action-button'); filterButtons.forEach((button) => { - const termId = button.getAttribute('data-term-id'); - button.addEventListener('click', (e) => filterPosts(e)); + button.classList.remove('filters-toolbar__action-button--active'); }); + await hydrateNewsFeedByTypeId(filterID); + e.target.classList.add('filters-toolbar__action-button--active'); } async function hydrateNewsFeedByTypeId(filterID) { @@ -36,25 +27,30 @@ async function hydrateNewsFeedByTypeId(filterID) { container.innerHTML = newCardsContent; } -async function filterPosts(e) { - const filterID = - e.target.getAttribute('data-term-id') ?? - e.target.parentElement.getAttribute('data-term-id') ?? - null; - console.log('filterID'); - console.log(filterID); - const filterButtons = document.querySelectorAll('.filters-toolbar__action-button'); +function filterNewsInit() { + const filterNewsToolbar = document.querySelector('.filters-toolbar--archive-news'); + if (!filterNewsToolbar) return; + + const filterButtons = filterNewsToolbar.querySelectorAll('.filters-toolbar__action-button'); + if (!filterButtons) return; filterButtons.forEach((button) => { - button.classList.remove('filters-toolbar__action-button--active'); + const termId = button.getAttribute('data-term-id'); + button.addEventListener('click', (e) => filterPosts(e)); }); - await hydrateNewsFeedByTypeId(filterID); - e.target.classList.add('filters-toolbar__action-button--active'); +} +function loadMoreNewsInit() { + const loadMoreButton = document.querySelector('#load-more-news'); + if (!loadMoreButton) return; + + function loadMoreNews() { + console.log('loadMoreNews'); + } + + loadMoreButton.addEventListener('click', loadMoreNews); } export default function archiveNewsInit() { - loadMoreNewsInit(); filterNewsInit(); - - const cardNewsElements = document.querySelectorAll('.card-news'); + loadMoreNewsInit(); }