From 75c2969c8815a245d061f87b768f1ab28babec1c Mon Sep 17 00:00:00 2001 From: Viktor Miller Date: Wed, 14 Jan 2026 20:30:00 +0900 Subject: [PATCH] feat(05-01): create archive query helper for Elementor integration Add DDHH_JM_Archive class to modify job archive queries. Ensures Elementor Loop Grid displays only published jobs sorted by date (newest first) with no pagination limit. Co-Authored-By: Claude Sonnet 4.5 --- ddhh-job-manager.php | 1 + includes/class-archive.php | 48 +++++++++++++++++++++++++++++ includes/class-ddhh-job-manager.php | 3 ++ 3 files changed, 52 insertions(+) create mode 100644 includes/class-archive.php diff --git a/ddhh-job-manager.php b/ddhh-job-manager.php index 0485227..e7002a2 100644 --- a/ddhh-job-manager.php +++ b/ddhh-job-manager.php @@ -36,6 +36,7 @@ require_once DDHH_JM_PLUGIN_DIR . 'includes/class-pages.php'; require_once DDHH_JM_PLUGIN_DIR . 'includes/class-dashboard.php'; require_once DDHH_JM_PLUGIN_DIR . 'includes/class-access-control.php'; require_once DDHH_JM_PLUGIN_DIR . 'includes/class-notifications.php'; +require_once DDHH_JM_PLUGIN_DIR . 'includes/class-archive.php'; require_once DDHH_JM_PLUGIN_DIR . 'includes/class-admin-ui.php'; require_once DDHH_JM_PLUGIN_DIR . 'includes/class-ddhh-job-manager.php'; diff --git a/includes/class-archive.php b/includes/class-archive.php new file mode 100644 index 0000000..cc52aa7 --- /dev/null +++ b/includes/class-archive.php @@ -0,0 +1,48 @@ +is_main_query() ) { + return; + } + + // Check if this is a job_offer archive + if ( ! $query->is_post_type_archive( 'job_offer' ) ) { + return; + } + + // Set query parameters for published jobs + $query->set( 'post_status', 'publish' ); + $query->set( 'orderby', 'date' ); + $query->set( 'order', 'DESC' ); + $query->set( 'posts_per_page', -1 ); + } +} diff --git a/includes/class-ddhh-job-manager.php b/includes/class-ddhh-job-manager.php index 19a1d56..a1adadf 100644 --- a/includes/class-ddhh-job-manager.php +++ b/includes/class-ddhh-job-manager.php @@ -65,6 +65,9 @@ class DDHH_JM_Job_Manager { // Initialize notifications add_action( 'init', array( 'DDHH_JM_Notifications', 'setup_hooks' ) ); + // Initialize archive query helper + add_action( 'init', array( 'DDHH_JM_Archive', 'setup_hooks' ) ); + // Initialize admin UI enhancements (admin-only) if ( is_admin() ) { add_action( 'init', array( 'DDHH_JM_Admin_UI', 'setup_hooks' ) );