From e85566ecb0ceef974cbcd33d7ee2b441641fd9e4 Mon Sep 17 00:00:00 2001 From: Dion Hulse Date: Fri, 27 Mar 2026 18:26:31 +1000 Subject: [PATCH 1/3] Sync FAQ content from production and style list elements Replace placeholder FAQ content in local environment with the full production FAQ, and add CSS for ul/li/a elements inside definition list answers. Co-Authored-By: Claude Opus 4.6 (1M context) --- environments/jobs/bin/after-start.sh | 69 ++++++++++++++++++- .../wp-content/themes/jobswp/style.css | 38 ++++++++++ 2 files changed, 106 insertions(+), 1 deletion(-) diff --git a/environments/jobs/bin/after-start.sh b/environments/jobs/bin/after-start.sh index 5aa6bc9bfc..2c9df45fe9 100755 --- a/environments/jobs/bin/after-start.sh +++ b/environments/jobs/bin/after-start.sh @@ -40,7 +40,74 @@ create_page_if_missing() { create_page_if_missing 'post-a-job' 'Post a Job' create_page_if_missing 'remove-a-job' 'Remove a Job' create_page_if_missing 'feedback' 'Feedback' '

We are sorry, but we do not have any additional information about job postings other than what was posted to the site.

If you are writing about your already-submitted job posting, please be sure to provide the email address you specified when you filled out the job form.

' -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.
' +FAQ_CONTENT='

Frequently asked questions for job posters and job seekers.

+ +

Posting a job?

+ +
+
What types of jobs can be posted on this site?
+
Only WordPress-related jobs will be published, provided they meet the criteria below.
+ +
How much does it cost to post a job listing?
+
There is no fee for posting a job listing.
+ +
How long will it take for my job posting to appear on the site?
+
All job postings are moderated prior to appearing on the site. Moderation is performed by a team of volunteers. As such, it may take as long as 24-36 hours before a job posting is approved depending on various factors.
+ +
How long will my job posting be displayed?
+
Your job posting will be displayed for a period of 21 days, unless you remove it yourself using the job token you are provided or you contact us to have it removed earlier than that.
+ +
Who can I contact?
+
Contact us via our feedback form.
+ +
Can I post my advertisement, site, or cool new product?
+
No, this site is only for posting available jobs.
+ +
How do I remove a job posting?
+
Your job will automatically be removed from the site after 21 days. Upon successful submission of a job to the site, a unique job token is provided to the job poster. We emphatically implore job posters (multiple times) to make note of the job token. The token can be used on our Remove Job page to immediately close the job. If you do not have the job token, you can contact us to request closure of the job. You must submit your request from an email address you provided via the job submission form. It would also be helpful if you reference the job by link and/or title, especially if you have more than one job in the system. Note: Requests made via the contact page could take as much as 72 hours or longer to fulfill.
+ +
Why is X feature not available?
+
It could be. Just leave us feedback.
+ +
Why was my job posting not approved?
+
We moderate job posts on a few criteria, including: +
    +
  • At this time, all job postings must be in English.
  • +
  • Only actual jobs can be posted to the job board.
  • +
  • The job board is for WordPress jobs only.
  • +
  • Jobs must offer monetary compensation in exchange for work. Non-monetary compensation (exposure, trade, charity, etc) are not acceptable except in the case of verifiable non-profit organizations who clearly state their non-profit status and the fact that their job or project is not offering compensation.
  • +
  • Your job posting must have adequate information about the listing, including contact information. One or two sentences are not sufficient to explain the job or project. +
      +
    • For full and part time jobs, please include as many details about the position, including what exactly the applicant will be doing, what salary/hourly range you are expecting to pay, and what skills you require from applicants.
    • +
    • For projects, please be as specific as possible about the nature of your project as well as your budget. Pro bono projects for non-profits are allowed, but be up front about this in your job posting.
    • +
    +
  • +
  • Products and businesses listed on this job board must not infringe on the WordPress trademark. (See the WordPress trademark policy.)
  • +
  • Job posting will not be published for sites which: +
      +
    • Promote discrimination of any kind or hate speech
    • +
    • Promote illegal activity as defined by the laws of the United States
    • +
    • Primarily host adult content or merchandise (e.g. pornography)
    • +
    +
  • +
  • If your job posting involves a project that will be released publicly, it must embrace the same license as WordPress. If distributing WordPress-derivative works (themes, plugins, WP distros), any person or business should give their users the same freedoms that WordPress itself provides. Projects must be 100% GPL or compatibly licensed.
  • +
+
+
+ +

Seeking a job?

+ +
+
Can I post my resume?
+
Not at this time.
+ +
How do I contact an employer?
+
Employers are expected to leave their contact information on each post.
+ +
Why does an employer not respond?
+
It is completely up to the employer to choose to respond or ignore a request for communication.
+
' +create_page_if_missing 'faq' 'FAQ' "$FAQ_CONTENT" # Create job categories. echo "Creating job categories..." diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/style.css b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/style.css index d2c837cd43..bf5802596f 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/style.css +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/style.css @@ -1287,6 +1287,44 @@ input[type="submit"].submit-job { color: var(--color-charcoal-4); } +.page-faq .entry-content dd ul { + margin: var(--space-10) 0 0; + padding-left: var(--space-20); + list-style: disc; +} + +.page-faq .entry-content dd ul ul { + margin-top: 4px; + list-style: circle; +} + +.page-faq .entry-content dd li { + margin-bottom: 6px; + line-height: 1.6; +} + +.page-faq .entry-content dd a { + color: var(--color-blueberry-1); + text-decoration: underline; + text-decoration-thickness: 1px; + text-underline-offset: 2px; +} + +.page-faq .entry-content dd a:hover { + color: var(--color-deep-blueberry); +} + +.page-faq .entry-content > p:first-child { + font-size: var(--font-size-base); + color: var(--color-charcoal-4); + margin-bottom: var(--space-30); +} + +.page-faq .entry-content > p:first-child a { + color: var(--color-blueberry-1); + text-decoration: underline; +} + /* ============================================ Category & Search Archive Pages From 2f05bc761c4bcec4fc1c16558ec099b92a6aee95 Mon Sep 17 00:00:00 2001 From: Dion Hulse Date: Fri, 27 Mar 2026 18:56:59 +1000 Subject: [PATCH 2/3] Simplify the posted_on logic. --- .../themes/jobswp/inc/template-tags.php | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/inc/template-tags.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/inc/template-tags.php index 92c3c3b155..e530249af3 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/inc/template-tags.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/inc/template-tags.php @@ -172,22 +172,12 @@ function jobswp_the_attached_image() { * Prints HTML with meta information for the current post-date/time and author. */ function jobswp_posted_on() { - $time_string = ''; - if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) - $time_string .= ''; - - $time_string = sprintf( $time_string, - esc_attr( get_the_date( 'c' ) ), - esc_html( get_the_date() ), - esc_attr( get_the_modified_date( 'c' ) ), - esc_html( get_the_modified_date() ) - ); - - printf( __( 'Posted %1$s', 'jobswp' ), - sprintf( '%3$s', + printf( + __( 'Posted %1$s', 'jobswp' ), + sprintf( '', esc_url( get_permalink() ), - esc_attr( get_the_time() ), - $time_string + esc_attr( get_the_date( 'c' ) ), + esc_html( get_the_date() ) ) ); } From 9781fa7f00300870323d7fa56838ff1438dad71c Mon Sep 17 00:00:00 2001 From: Dion Hulse Date: Tue, 14 Apr 2026 12:37:29 +1000 Subject: [PATCH 3/3] Jobs: Fix PHPCS errors in posted_on template tag. Wrap __() output in wp_kses_post() for safe HTML output, and ignore the pre-existing indentation style used throughout the file. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../wp-content/themes/jobswp/inc/template-tags.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/inc/template-tags.php b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/inc/template-tags.php index e530249af3..481cec991f 100644 --- a/jobs.wordpress.net/public_html/wp-content/themes/jobswp/inc/template-tags.php +++ b/jobs.wordpress.net/public_html/wp-content/themes/jobswp/inc/template-tags.php @@ -172,8 +172,8 @@ function jobswp_the_attached_image() { * Prints HTML with meta information for the current post-date/time and author. */ function jobswp_posted_on() { - printf( - __( 'Posted %1$s', 'jobswp' ), + printf( // phpcs:ignore Generic.WhiteSpace.ScopeIndent.Incorrect -- Whole file uses this indentation. + wp_kses_post( __( 'Posted %1$s', 'jobswp' ) ), sprintf( '', esc_url( get_permalink() ), esc_attr( get_the_date( 'c' ) ),