*/ class Simple_Job_Board_Widgets_Recent_Jobs extends WP_Widget { /** * Register widget with WordPress * * @since 2.4.3 * * @param void * @param return void */ public function __construct() { $widget_opts = array( 'classname' => 'sjb-recent-jobs-widget', 'description' => __('Your site\'s most recent Jobs.', 'simple-job-board') ); parent::__construct('Simple_Job_Board_Widgets_Recent_Jobs', __('SJB Recent Jobs', 'simple-job-board'), $widget_opts); } /** * @SJB Core: Widgets Recent Jobs form Back-end. * * @since 2.4.3 * * @param array $instance Previously saved values from database. * return void */ public function form($instance) { $instance = wp_parse_args((array) $instance, array('title' => '')); // Widgets Form Default Parameters $title = $instance['title']; $showcount = isset($instance['showcount']) ? esc_attr($instance['showcount']) : '5'; $job_category = isset($instance['job_category']) ? $instance['job_category'] : '0'; // Job Categories $cat_arg = array( 'type' => 'jobpost', 'child_of' => 0, 'taxonomy' => 'jobpost_category', 'hide_empty' => FALSE, ); $categories = get_categories($cat_arg); ?>
$showcount, 'post_type' => 'jobpost', ); if (isset($jobpost_category) && $jobpost_category != '0') { $arguments['jobpost_category'] = $jobpost_category; } // Job Query $wp_recent_jobs = new WP_Query($arguments); // List Jobs if ($wp_recent_jobs->have_posts()) { // Display Widget Before HTML echo $before_widget; // Widget Title if (!empty($title) && $title != ' ') { echo $before_title . $title . $after_title; } /** * Template -> Widget Start Wrapper * * @since 2.4.3 */ get_simple_job_board_template('widget/job-widget-start.php'); while ( $wp_recent_jobs->have_posts() ) { $wp_recent_jobs->the_post(); /** * Template -> Recent Job Widget Content * * @since 2.4.3 */ get_simple_job_board_template('widget/content-recent-jobs-widget.php'); } /** * Template -> Widget End Wrapper * * @since 2.4.3 */ get_simple_job_board_template('widget/job-widget-end.php'); wp_reset_query(); // Display Widget After HTML echo $after_widget; } } }