Changelog — JPKCom ACF Jobs

Versionsverlauf des WordPress-Plugins JPKCom ACF Jobs.

Versionsverlauf von jpkcom-acf-jobs. Die Einträge stammen unverändert aus der README des Projekts. Eine ausführliche Anleitung mit Tipps findest du im Projekt-Guide.

1.3.11

  • Fixed: the debug schema template printed an untranslated German sentence after the translated parse-error message; it now prints the translated message alone, escaped with esc_html__()
  • Changed: the update manifest generator now defaults a missing Network: header to false instead of true, matching WordPress' own default. No change for this plugin, which declares Network: true explicitly
  • CI: the lint and guard workflow now also runs on pushes to main. It only covered pull requests, so a direct push with bypass rights skipped every check
  • Changed: comments, workflow step names and CI output across the repository are now English throughout, and the developer notes in CLAUDE.md were translated and trimmed. No effect on the shipped plugin

1.3.10

  • Changed: Tested up to raised to WordPress 7.1
  • Changed: the bundled updater's runtime floor now matches the plugin's own minimum. It bailed out below WordPress 6.8 while the plugin header has required 6.9 for several releases, so the check could never fire on a supported installation
  • Docs: the remaining "WordPress 6.8" requirement statements now say 6.9, matching the plugin header
  • CI: the release manifest's fallback values for requires and tested now say 6.9 and 7.1. They only apply when the README metadata cannot be read, but a stale fallback would have published a minimum the plugin no longer supports

1.3.9

  • Changed: the plugin banners (assets/banner-1544x500.avif, assets/banner-772x250.avif) are now a plain #3c4955 surface with no lettering

1.3.8

  • Fixed: the attributes partial looked terms up under job_attribute, the field name, instead of job-attribute, the registered taxonomy. get_term_by() returned false for every string value and the attribute was dropped from the output with no error anywhere. Not reached with the shipped return_format => 'id', but immediate the moment anything hands that partial strings
  • Fixed: tools/check-term-sync.php could not run at all — a declare(strict_types=1) halfway down the file made the documented wp eval-file invocation a fatal error
  • Fixed: the same script reported every translated post as drifted, because it compared raw meta against wp_get_object_terms(), which WPML rewrites to the current language
  • Added: tests/test-conventions.php compares every literal taxonomy argument against the slugs actually passed to register_taxonomy()
  • Docs: corrected the section on tax_query. None of the three fields the list shortcode filters is taxonomy-backed, so the switch made in jpkcom-acf-references does not apply here

1.3.7

  • Fixed: job expiry was compared against the UTC date. WordPress sets the PHP timezone to UTC, so date( 'Y-m-d' ) returns the UTC day and expired listings stayed visible for the length of the site's UTC offset after local midnight (1–2 hours for Europe/Berlin). shortcodes.php, archive.php and redirects.php now use current_time( 'Y-m-d' ). The date() call in schema.php is deliberately unchanged — it round-trips a stored date string and never refers to "now"
  • Fixed: the single-job redirect checked current_user_can( 'administrator' ), passing a role name where a capability belongs. That works only because the role is a key in the capability array, bypassing map_meta_cap and missing differently named roles with the same rights. Now checks manage_options
  • Added: tools/check-term-sync.php — a read-only checker reporting whether the serialised job_attribute meta values and the real job-attribute term assignments agree. Groundwork for moving the shortcode filters from unindexed meta_query + LIKE to indexed tax_query
  • Added: tests/test-conventions.php — regression guards for both fixes above, precise enough to leave the legitimate schema.php date call alone. Run in CI on every pull request
  • Docs: CLAUDE.md gained the Security & Correctness section it was missing — the only JPKCom plugin without one

1.3.6

  • Security: update packages are now verified before installation — the verified file is handed to WordPress instead of being downloaded a second time, so the bytes that were checked are the bytes that get installed
  • Security: a missing or unfetchable SHA-256 checksum now aborts the update instead of installing unverified code (previously it silently skipped verification)
  • Security: pinned every GitHub Action to a full commit SHA and added Dependabot with a 7-day cooldown, so a moved tag can no longer change the release build
  • Security: tightened which download the updater claims, so sibling plugins cannot match each other's package
  • Fixed: sprintf() calls in the updater bound named arguments to a variadic parameter, which raises ArgumentCountError on PHP 8.3
  • Fixed: the "View Details" modal could fail with a TypeError when the manifest omitted requires_plugins
  • Performance: a failed manifest fetch is now cached for an hour instead of being retried on every admin request
  • Added: CI workflow on every pull request (PHP lint, named-argument check, YAML validation, action-pinning guard)

1.3.5

  • Fixed broken <main> element in the single job template: it was closed immediately after opening, leaving the entire job content outside of it and producing an unmatched closing tag at the end of the template
  • Fixed a leftover duplicate logo call in the job company partial that passed the ACF field array where an attachment ID is expected, which could render an unrelated image before every company logo

1.3.4

  • Raised the minimum WordPress version to 6.9 and "Tested up to" to WordPress 7.0
  • Switched license metadata to the SPDX identifier GPL-2.0-or-later with the HTTPS license URI

1.3.3

  • Security: prevent JSON-LD script-tag breakout (stored XSS) in JobPosting schema output (JSON_HEX_TAG | JSON_HEX_AMP, plus output-point hardening in single-job.php)
  • Security: updater prefers exact match against manifest download_url over the slug heuristic, so a tampered manifest can no longer bypass the checksum gate
  • Security: updater checksum comparison is now timing-safe (hash_equals()) with an is_string() guard against hash_file() failures
  • Security: manifest fetch uses wp_safe_remote_get() (SSRF defense-in-depth)
  • Fixed PHP warning + missing contributor names in the plugin detail popup (display_name now provided)
  • Fixed PHP warning/deprecation on wp plugin list by completing the no_update transient entry (new_version, package, tested, requires_php)

1.3.2

  • Fixed missing output escaping across all templates and debug templates (esc_html__(), esc_html(), esc_url(), esc_attr())
  • Fixed pagination template: added flex-wrap with row-gap-2 for responsive wrapping on small screens
  • Fixed pagination template: empty <li> elements no longer rendered when no previous/next post exists
  • Fixed pagination template: previous/next links now use proper page-link class for consistent Bootstrap styling
  • Fixed pagination template: archive URL now escaped with esc_url()

1.3.1

  • Fixed updater checksum verification failing on manual ZIP uploads (local file path instead of URL)
  • Fixed release ZIP missing top-level directory, causing WordPress to not recognize the update

1.3.0

  • Added archiv redirect options

1.2.5

  • Added translation for "job_type"

1.2.4

  • Added translations for ES, FR, HU, IT and PL

1.2.3

  • Added check for "SitePress" class

1.2.2

  • Fix for incorrect database content caused by WPML

1.2.1

  • Fix for incorrect database content caused by WPML

1.2.0

  • Security enhancement
  • AI support

1.1.12

  • Added WPML support

1.1.11

  • Improvements to jpkcom_acfjobs_textdomain()

1.1.10

  • Updater bugfix

1.1.9

  • "display_name" for update-core.php

1.1.8

  • "display_name" for plugin-install.php

1.1.7

  • New namespace for updater

1.1.6

  • Updater bugfix

1.1.5

  • Plugin icon support

1.1.4

  • Plugin details

1.1.3

  • Updater bugfix

1.1.2

  • Improvements for GitHub workflow

1.1.1

  • Improvements for GitHub workflow

1.1.0

  • Improvements for GitHub workflow

1.0.9

  • Removed plugin dependency

1.0.8

  • Improvements for GitHub workflow
  • Improvements to plugin JSON
  • Updater improvements

1.0.7

  • Improvements for GitHub workflow
  • Bugfix plugin JSON
  • Updater improvements

1.0.6

  • Bugfix for GitHub workflow

1.0.5

  • Bugfix plugin JSON

1.0.4

  • Bugfix for GitHub workflow

1.0.3

  • Updater improvements

1.0.2

  • Bugfix for GitHub workflow

1.0.1

  • GitHub workflow

1.0.0

  • Initial Release