From 2c1a7c61df8f4cf0beeffdf8cf78aa657477cc57 Mon Sep 17 00:00:00 2001 From: Dion Hulse Date: Thu, 26 Mar 2026 12:03:20 +1000 Subject: [PATCH 01/10] Redesign jobs.wordpress.net theme to match new visual design. Replaces the dated 996-grid layout with a modern CSS custom properties design system featuring a hero section with dynamic stats, category filter pills, card-based job grid, sticky header, and dark footer. Fixes PHP warnings: array_pop by-reference, deprecated wp_no_robots. Updates local environment setup to deduplicate pages, add FAQ page, clear default widgets, and set post_author. Co-Authored-By: Claude Opus 4.6 (1M context) --- environments/jobs/bin/after-start.sh | 24 +- .../plugins/jobswp/jobswp-template.php | 14 +- .../wp-content/themes/jobswp/404.php | 31 +- .../themes/jobswp/content-category.php | 2 +- .../wp-content/themes/jobswp/content-home.php | 165 +- .../wp-content/themes/jobswp/content-list.php | 21 +- .../wp-content/themes/jobswp/content-page.php | 2 +- .../themes/jobswp/content-post-job.php | 12 +- .../themes/jobswp/content-search.php | 2 +- .../themes/jobswp/content-single.php | 110 +- .../wp-content/themes/jobswp/footer.php | 64 +- .../wp-content/themes/jobswp/functions.php | 53 +- .../wp-content/themes/jobswp/header.php | 54 +- .../wp-content/themes/jobswp/index.php | 72 +- .../wp-content/themes/jobswp/js/main.js | 45 + .../themes/jobswp/page-remove-a-job.php | 12 +- .../wp-content/themes/jobswp/searchform.php | 3 +- .../wp-content/themes/jobswp/sidebar.php | 2 +- .../wp-content/themes/jobswp/style.css | 2522 ++++++++--------- 19 files changed, 1650 insertions(+), 1560 deletions(-) create mode 100644 jobs.wordpress.net/public_html/wp-content/themes/jobswp/js/main.js diff --git a/environments/jobs/bin/after-start.sh b/environments/jobs/bin/after-start.sh index 158104829e..832eac0891 100755 --- a/environments/jobs/bin/after-start.sh +++ b/environments/jobs/bin/after-start.sh @@ -16,10 +16,30 @@ $WP wp rewrite structure '/%postname%/' --hard # Activate the jobswp theme. $WP wp theme activate jobswp +# Remove default widgets to match production (sidebar only has the hardcoded Position Types list). +echo "Clearing default sidebar widgets..." +$WP wp widget reset sidebar-1 > /dev/null 2>&1 || true + # Create pages that exist on jobs.wordpress.net (if they don't already exist). echo "Creating pages..." -$WP wp post create --post_type=page --post_status=publish --post_title='Post a Job' --post_name='post-a-job' --porcelain > /dev/null 2>&1 && echo " Created page: /post-a-job/" || true -$WP wp post create --post_type=page --post_status=publish --post_title='Remove a Job' --post_name='remove-a-job' --porcelain > /dev/null 2>&1 && echo " Created page: /remove-a-job/" || true +create_page_if_missing() { + local slug="$1" + local title="$2" + local content="${3:-}" + EXISTING=$($WP wp post list --post_type=page --name="$slug" --format=count 2>/dev/null) + if [ "$EXISTING" -gt 0 ] 2>/dev/null; then + echo " Page /$slug/ already exists, skipping..." + else + if [ -n "$content" ]; then + $WP wp post create --post_type=page --post_status=publish --post_author=1 --post_title="$title" --post_name="$slug" --post_content="$content" --porcelain > /dev/null 2>&1 && echo " Created page: /$slug/" || true + else + $WP wp post create --post_type=page --post_status=publish --post_author=1 --post_title="$title" --post_name="$slug" --porcelain > /dev/null 2>&1 && echo " Created page: /$slug/" || true + fi + fi +} +create_page_if_missing 'post-a-job' 'Post a Job' +create_page_if_missing 'remove-a-job' 'Remove a Job' +create_page_if_missing 'faq' 'FAQ' '

General

What is this site?
This is a job board for WordPress-related jobs. Anyone can post a job opening or browse available positions.
How long do job postings stay up?
Job postings remain active for 21 days from the date of approval, after which they are automatically removed.
How much does it cost to post a job?
Posting a job is completely free.

For Employers

What kinds of jobs can I post?
Any job that is directly related to WordPress. This includes development, design, support, writing, translation, and more.
What is NOT acceptable for a job posting?
Jobs that are not related to WordPress, jobs that require payment from applicants, and jobs offering illegally low compensation are not acceptable.
How do I remove my job posting?
When you submit a job, you receive a job token. Use that token on the Remove a Job page to remove your listing at any time.
' # Create job categories. echo "Creating job categories..." diff --git a/jobs.wordpress.net/public_html/wp-content/plugins/jobswp/jobswp-template.php b/jobs.wordpress.net/public_html/wp-content/plugins/jobswp/jobswp-template.php index a84839bc19..0db4655395 100644 --- a/jobs.wordpress.net/public_html/wp-content/plugins/jobswp/jobswp-template.php +++ b/jobs.wordpress.net/public_html/wp-content/plugins/jobswp/jobswp-template.php @@ -100,17 +100,15 @@ function jobswp_archive_header( $before = '', $after = '', $jobscnt = 0, $catego $link .= " ($orig_jobscnt) $after"; $output .= $link; - $output .= '
'; + $output .= '
'; - $output .= '
' . $jobscnt . '
+ $output .= 'RSS ' . $jobscnt . '
-
-
Date Posted
-
Job Title
-
Job Type
-
Location
-
+
Date Posted
+
Job Title
+
Job Type
+
Location
'; echo $output; diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/404.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/404.php index ff3152a32c..5e93ee5d18 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/404.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/404.php @@ -7,22 +7,19 @@ get_header(); ?> - +
+
+ -
-
+
+

+
+ +
+
+
+
-
- - -
-

-
-
- - - - - \ No newline at end of file + diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-category.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-category.php index fe043fd60c..fd154d6ac4 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-category.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-category.php @@ -7,7 +7,7 @@ $category = get_term( $q->term_id, $q->taxonomy ); jobswp_archive_header( - '

', + '

', '

', $category->count, $category diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-home.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-home.php index 5265755f05..02f5a941cf 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-home.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-home.php @@ -1,44 +1,145 @@ category slug +$total_jobs = 0; +$remote_count = 0; +$categories_with_jobs = 0; -// Groups jobs according to job category. -foreach ( $job_categories as $i => $category ) { - $job_category_jobs[ $category->slug ] = Jobs_Dot_WP::get_jobs_for_category( $category ); - $latest_post = $job_category_jobs[ $category->slug ][0]; - // Add key for sorting. - $job_categories[ $i ]->latest_post_date = $latest_post ? $latest_post->post_date : '0'; -} - -// Sort job categories according to recency of latest post. -$job_categories = wp_list_sort( $job_categories, [ 'latest_post_date' => 'DESC', 'name' => 'ASC' ] ); - -// Display the categories and their jobs. -foreach ( $job_categories as $category ) { - $posts = $job_category_jobs[ $category->slug ]; +if ( $job_categories ) { + foreach ( $job_categories as $cat ) { + $jobs = Jobs_Dot_WP::get_jobs_for_category( $cat ); + if ( ! empty( $jobs ) ) { + $categories_with_jobs++; + foreach ( $jobs as $job ) { + if ( ! isset( $category_map[ $job->ID ] ) ) { + $all_jobs[] = $job; + $category_map[ $job->ID ] = $cat->slug; + $total_jobs++; - //Display the name of the category, whether there are jobs or not - echo '
'; + $location = get_post_meta( $job->ID, 'location', true ); + if ( empty( $location ) || 'N/A' === $location || stripos( $location, 'remote' ) !== false || stripos( $location, 'anywhere' ) !== false ) { + $remote_count++; + } + } + } + } + } +} - jobswp_archive_header( - '

', - '

', - $category->count, - $category - ); +$remote_pct = $total_jobs > 0 ? round( ( $remote_count / $total_jobs ) * 100 ) : 0; +?> - get_template_part( 'content', 'list' ); + +
+
+

' . esc_html__( 'Opportunity', 'jobswp' ) . '' + ); + ?>

+

+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
- echo "
\n"; -} + +
+

+
+ + + + + + +
+
-else : // Else no job categories defined. + +
+
+ + + ID ] ) ? $category_map[ $job->ID ] : ''; + $cat_term = get_term_by( 'slug', $cat_slug, 'job_category' ); + $cat_name = $cat_term ? $cat_term->name : ''; + $company = get_post_meta( $job->ID, 'company', true ); + $location = get_post_meta( $job->ID, 'location', true ); + $jobtype = jobswp_get_job_meta( $job->ID, 'jobtype' ); - echo '
'; - echo '

' . __( 'No job categories defined.', 'jobswp' ) . '

'; - echo "
\n"; + $is_remote = empty( $location ) || 'N/A' === $location || stripos( $location, 'remote' ) !== false || stripos( $location, 'anywhere' ) !== false; + $location_display = $is_remote ? __( 'Remote', 'jobswp' ) : esc_html( $location ); + $location_icon = $is_remote ? '🌎' : '📍'; -endif; + $type_icon = '💼'; + if ( 'Contract' === $jobtype || 'Project' === $jobtype ) { + $type_icon = '📄'; + } elseif ( 'Part Time' === $jobtype ) { + $type_icon = '⏱'; + } + ?> + + + + +

ID ) ); ?>

+ +

+ +
+ + + + +
+

ID ) ) + ); + ?>

+
+ + +
+

post a job?', 'jobswp' ), + esc_url( home_url( '/post-a-job/' ) ) + ); + ?>

+
+ +
+
diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-list.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-list.php index b200dadcf5..2b2db60138 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-list.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-list.php @@ -8,15 +8,15 @@ $evenodd = abs( $evenodd - 1 ); echo '
'; - echo '
' . get_the_date( 'M j' ) . '
'; - echo '
'; + echo '
' . get_the_date( 'M j' ) . '
'; + echo ''; - echo '
'; + echo '
'; echo jobswp_get_job_meta( get_the_ID(), 'jobtype' ); echo '
'; - echo '
'; + echo '
'; echo jobswp_get_job_meta( get_the_ID(), 'location' ); - echo '
'; + echo '
'; echo '
'; echo '
'; @@ -25,7 +25,7 @@ } // End if posts else { echo '
'; - echo "
"; + echo "
"; echo sprintf( __( 'There are no jobs in this category. If you\'re hiring, you can post a new job.', 'jobswp' ), '/post-a-job' @@ -34,14 +34,15 @@ echo '
'; } ?> - - '; - if ( ! $category ) - $category = array_pop( get_the_terms( get_the_ID(), 'job_category') ); + if ( ! $category ) { + $terms = get_the_terms( get_the_ID(), 'job_category' ); + $category = $terms ? array_pop( $terms ) : null; + } $link = ''; $link .= ' - ', '' ); ?> + ', '' ); ?>
diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-post-job.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-post-job.php index ee9bfcb675..7d0813921c 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-post-job.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-post-job.php @@ -24,7 +24,7 @@
-
+

@@ -35,7 +35,7 @@
-
+

@@ -68,7 +68,7 @@

-
+
@@ -76,7 +76,7 @@
-
+
@@ -101,7 +101,7 @@
-
+
@@ -141,7 +141,7 @@ - +
diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-search.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-search.php index 97aa085fe4..9262fe1d6f 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-search.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-search.php @@ -2,7 +2,7 @@

' . + '

' . sprintf( __( 'Search Results for: %s', 'jobswp' ), '' . get_search_query() . '' ), '

', $wp_query->found_posts diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-single.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-single.php index 20dcdad9e2..887bcbdefc 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-single.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-single.php @@ -1,82 +1,76 @@ __( 'Company', 'jobswp' ), + 'jobtype' => __( 'Job Type', 'jobswp' ), + 'location' => __( 'Location', 'jobswp' ), + 'budget' => __( 'Budget', 'jobswp' ), + 'howtoapply' => __( 'How to Apply', 'jobswp' ), +); ?> -
+ -
> -
-

+
+
+
+

-
- -
- -
+ ?> + +
+
-
- - '', - ) ); - ?> -
+
+ +
-
- + ', '' ); - ?> -
+ } + ?> +

-
- __( 'Company', 'jobswp' ), - 'jobtype' => __( 'Job Type', 'jobswp' ), - 'location' => __( 'Location', 'jobswp' ), - 'budget' => __( 'Budget', 'jobswp' ), - 'howtoapply' => __( 'How to Apply', 'jobswp' ), - ); - foreach ( $fields as $fname => $flabel ) : +
+
diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/footer.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/footer.php index 66ad91085a..dc5137a194 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/footer.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/footer.php @@ -2,24 +2,62 @@ /** * The template for displaying the footer. * - * Contains the closing of the #content div and all content after - * * @package jobswp */ ?> -
-
- -
-
- - - -
-
+
- \ No newline at end of file + diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/functions.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/functions.php index 3374e6d6ee..4ecd9dc1e4 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/functions.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/functions.php @@ -79,52 +79,14 @@ function jobswp_widgets_init() { } add_action( 'widgets_init', 'jobswp_widgets_init' ); -/** - * Registers the CSS stylesheet files. - */ -function jobswp_register_styles() { - wp_register_style( - 'open-sans', - '//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=latin-ext,latin', - false, - '20130605' - ); - - wp_register_style( - 'dashicons', - get_template_directory_uri() . '/css/dashicons.css', - false, - filemtime( get_template_directory() . '/css/dashicons.css' ) - ); -} -add_action( 'wp_enqueue_scripts', 'jobswp_register_styles', 1 ); - /** * Enqueue scripts and styles */ function jobswp_scripts() { - wp_enqueue_style( '996-normalize', get_template_directory_uri() . '/css/996/normalize.css' ); - wp_enqueue_style( '996-base', get_template_directory_uri() . '/css/996/base.css' ); - wp_enqueue_style( '996-grid', get_template_directory_uri() . '/css/996/grid.css' ); - wp_enqueue_style( '996-style', get_template_directory_uri() . '/css/996/style.css' ); - wp_enqueue_style( 'dashicons' ); - wp_enqueue_style( 'open-sans' ); - wp_enqueue_style( 'jobswp-style', get_stylesheet_uri(), array(), '20221207' ); - - wp_enqueue_script( 'jobswp-navigation', get_template_directory_uri() . '/js/navigation.js', array( 'jquery'), '20131107', true ); - wp_enqueue_script( 'jobswp-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20130115', true ); + wp_enqueue_style( 'jobswp-style', get_stylesheet_uri(), array(), '20260326' ); - if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { - wp_enqueue_script( 'comment-reply' ); - } - - if ( is_singular() && wp_attachment_is_image() ) { - wp_enqueue_script( 'jobswp-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20120202' ); - } - - /* Modernizr disbabled because it causes Safari to whitescreen */ -// wp_enqueue_script( 'modernizr', get_template_directory_uri() . '/996/modernizr-2.6.2.min.js' ); -// wp_enqueue_script( 'modernizr', get_template_directory_uri() . '/996/modernizr-2.6.2.js' ); + wp_enqueue_script( 'jobswp-main', get_template_directory_uri() . '/js/main.js', array(), '20260326', true ); + wp_enqueue_script( 'jobswp-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20130115', true ); } add_action( 'wp_enqueue_scripts', 'jobswp_scripts' ); @@ -147,7 +109,7 @@ function jobswp_author_archives_404() { * - empty job category archives * - search results */ -function jobswp_noindex() { +function jobswp_noindex( $robots ) { global $wp_query; if ( @@ -155,10 +117,13 @@ function jobswp_noindex() { || ( is_tax( 'job_category' ) && 0 === $wp_query->found_posts ) ) { - wp_no_robots(); + $robots['noindex'] = true; + $robots['nofollow'] = true; } + + return $robots; } -add_action( 'wp_head', 'jobswp_noindex', 9 ); +add_filter( 'wp_robots', 'jobswp_noindex' ); /** * Add a body class incorporating page slug. diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/header.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/header.php index 6328abc826..50b7c599ca 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/header.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/header.php @@ -2,7 +2,7 @@ /** * The Header for our theme. * - * Displays all of the section and everything up till
+ * Displays all of the section and everything up till
* * @package jobswp */ @@ -28,32 +28,34 @@ > -
- - + -
-
- -
- -
+ diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/index.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/index.php index e0d0cad29d..202eee459f 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/index.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/index.php @@ -2,63 +2,59 @@ /** * The main template file. * - * This is the most generic template file in a WordPress theme - * and one of the two required files for a theme (the other being style.css). - * It is used to display a page when nothing more specific matches a query. - * E.g., it puts together the home page when no home.php file exists. - * Learn more: https://developer.wordpress.org/themes/basics/template-hierarchy/ - * * @package jobswp */ get_header(); ?> - - -
-
+
- + - + - + - +
+ +
+ +
+
- + - +
+ +
+ +
+
- + - - + - + get_template_part( 'content', $content_type ); + ?> - + - + - + - + -
-
+
diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/js/main.js b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/js/main.js new file mode 100644 index 0000000000..93f5b8fbdc --- /dev/null +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/js/main.js @@ -0,0 +1,45 @@ +// WordPress Jobs — Main JavaScript +document.addEventListener('DOMContentLoaded', function () { + + // ---- Mobile Menu Toggle ---- + var menuToggle = document.querySelector('.mobile-menu-toggle'); + var nav = document.querySelector('.site-header__nav'); + + if (menuToggle && nav) { + menuToggle.addEventListener('click', function () { + nav.classList.toggle('is-open'); + }); + } + + // ---- Category Filter Pills ---- + var pills = document.querySelectorAll('.filter-pill'); + var cards = document.querySelectorAll('.job-card'); + + pills.forEach(function (pill) { + pill.addEventListener('click', function () { + var category = pill.dataset.category; + + pills.forEach(function (p) { + p.classList.remove('active'); + }); + pill.classList.add('active'); + + var visibleCount = 0; + cards.forEach(function (card) { + if (category === 'all' || card.dataset.category === category) { + card.style.display = ''; + visibleCount++; + } else { + card.style.display = 'none'; + } + }); + + // Show empty state if no cards match + var emptyState = document.querySelector('.jobs-empty'); + if (emptyState) { + emptyState.style.display = visibleCount === 0 ? '' : 'none'; + } + }); + }); + +}); diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/page-remove-a-job.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/page-remove-a-job.php index baf60b2c47..4d8858d6da 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/page-remove-a-job.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/page-remove-a-job.php @@ -7,10 +7,7 @@ get_header(); ?> - - -
-
+
@@ -57,12 +54,12 @@ - +
- ', '' ); ?> + ', '' ); ?>
@@ -76,7 +73,6 @@ - -
+ \ No newline at end of file diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/searchform.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/searchform.php index 70a09fea7c..6fa6caec95 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/searchform.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/searchform.php @@ -6,10 +6,9 @@ */ ?> diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/sidebar.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/sidebar.php index a0d4ed4559..b59b4c1798 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/sidebar.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/sidebar.php @@ -5,7 +5,7 @@ * @package jobswp */ ?> -

@@ -76,8 +78,8 @@
- - + +
@@ -96,8 +98,8 @@ $location = get_post_meta( $job->ID, 'location', true ); $jobtype = jobswp_get_job_meta( $job->ID, 'jobtype' ); - $is_remote = empty( $location ) || 'N/A' === $location || stripos( $location, 'remote' ) !== false || stripos( $location, 'anywhere' ) !== false; - $location_display = $is_remote ? __( 'Remote', 'jobswp' ) : esc_html( $location ); + $is_remote = empty( $location ) || 'N/A' === $location || stripos( $location, 'remote' ) !== false || stripos( $location, 'anywhere' ) !== false; + $location_display = $is_remote ? __( 'Remote', 'jobswp' ) : $location; $location_icon = $is_remote ? '🌎' : '📍'; $type_icon = '💼'; @@ -116,29 +118,33 @@

- + - +
-

+ ID ) ) ); - ?>

+ ?> +

-

+ post a job?', 'jobswp' ), + wp_kses_post( __( 'No jobs are currently posted. Would you like to post a job?', 'jobswp' ) ), esc_url( home_url( '/post-a-job/' ) ) ); - ?>

+ ?> +

diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-list.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-list.php index 2b2db60138..9b0cba6ba6 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-list.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-list.php @@ -40,9 +40,9 @@ global $category; echo '

'; if ( ! $category ) { - $terms = get_the_terms( get_the_ID(), 'job_category' ); - $category = $terms ? array_pop( $terms ) : null; - } + $terms = get_the_terms( get_the_ID(), 'job_category' ); + $category = $terms ? array_pop( $terms ) : null; + } $link = ''; $link .= ' - name ); ?> - + name ); ?> + @@ -59,15 +59,16 @@

diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-single.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-single.php index bee9793238..d324150200 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-single.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/content-single.php @@ -66,7 +66,7 @@ ?>
- + array( 'href' => array(), 'rel' => array() ) ) ); ?>
  • +
  • +
  • diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/functions.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/functions.php index fb9ab4e7c4..03a052de7c 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/functions.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/functions.php @@ -83,10 +83,10 @@ function jobswp_widgets_init() { * Enqueue scripts and styles */ function jobswp_scripts() { - wp_enqueue_style( 'jobswp-style', get_stylesheet_uri(), array(), '20260326' ); + wp_enqueue_style( 'jobswp-style', get_stylesheet_uri(), array(), filemtime( get_stylesheet_directory() . '/style.css' ) ); - wp_enqueue_script( 'jobswp-main', get_template_directory_uri() . '/js/main.js', array(), '20260326', true ); - wp_enqueue_script( 'jobswp-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20130115', true ); + wp_enqueue_script( 'jobswp-main', get_template_directory_uri() . '/js/main.js', array(), filemtime( get_template_directory() . '/js/main.js' ), true ); + wp_enqueue_script( 'jobswp-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), filemtime( get_template_directory() . '/js/skip-link-focus-fix.js' ), true ); } add_action( 'wp_enqueue_scripts', 'jobswp_scripts' ); diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/header.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/header.php index cd3fcd2374..103fd7e8b9 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/header.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/header.php @@ -34,21 +34,17 @@