Yielder – Stuurlui site extensions
Plugin for Wordpress to provide integration with yielder-generic-apps.
Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/swbase/yga-wordpress-plugin/releases/download/v0.2.1/yga-wordpress-plugin.zipYielder's own WordPress plugin for yielder.com, a site built and maintained by Stuurlui
on their stuurlui theme. It adds what Yielder needs without touching Stuurlui's code.
WAT HET DOET
A Knowledge Hub article (knowledge_hub) keeps its body and summary in ACF fields the
theme registers in PHP, without show_in_rest, and the post type has no editor. The REST
API can create one but not fill it: content, excerpt and acf are dropped silently.
The plugin adds one REST field, yga, to the knowledge_hub endpoint:
// POST /wp-json/wp/v2/knowledge_hub
{
"title": "...",
"status": "draft",
"knowledge_hub_category": [11], // Types: Blog, Nieuws, ...
"knowledge_hub_cat": [84], // Categorieën
"yga": {
"content": "<p>html</p>", // ACF knowledge_hub_content ("Artikel content")
"excerpt": "...", // ACF settings-group → post-excerpt-content ("Samenvatting")
},
}
- Edit context only. The create response carries
yga, so a client can check its write landed. Anonymous readers never see it. - The rest of the group stays put. The summary shares an ACF group with the page's breadcrumbs, menu colour and CTA buttons; writing it leaves those alone.
- kses for everyone without
unfiltered_html, as WordPress does forpost_content. - Fails loudly. If the theme stops registering one of the field keys, writes answer
500
yielder_acf_fields_missinginstead of dropping the article.
The field keys are in includes/knowledge-hub-rest.php, taken from the live edit screen.
geo is the field's old name. Until 0.3.0 it is an alias: it reads and writes the
same, and a request with both writes yga and ignores geo. Release 0.3.0 once
geo-contentmotor sends yga and checks it in the response.
GEBRUIK
just test # tests against a throwaway WordPress in Docker
just build # dist/yga-wordpress-plugin.zip and dist/manifest.json
just release # tag and push the Version in yga-wordpress-plugin.php
up and down start and remove the test WordPress (127.0.0.1:8089, WP_PORT to move
it) for poking at by hand. It runs WordPress 7.1, as yielder.com does, with free ACF
instead of PRO. tests/fixtures/ holds mu-plugins that stand in for the theme and for
GitHub; they are never part of the zip.
UPDATES
The plugin updates itself from the releases of the public repository
swbase/yga-wordpress-plugin, and turns
on auto-updates for itself (includes/updates.php):
Update URI: https://github.com/swbase/yga-wordpress-pluginkeeps WordPress from asking wordpress.org; it calls theupdate_plugins_github.comfilter instead.- That filter reads
releases/latest/download/manifest.json: a plain download, so it counts against no GitHub API rate limit. The result is cached for six hours. - The zip URL is built from the manifest's version
(
releases/download/v<version>/yga-wordpress-plugin.zip), never taken from it. - WordPress's auto-updater (WP-cron, twice a day) installs a newer version, and rolls it back if it causes a fatal error.
The first install is by hand: upload the zip from the latest release through Plugins →
Nieuwe plugin → Plugin uploaden. Remove 0.1.0 (stuurlui-wp-plugin) first.
RELEASES
- Raise
Version:inyga-wordpress-plugin.phpandStable tag:inreadme.txt, and add a changelog entry toreadme.txt. Commit. just releasetagsv<version>and pushes it to GHE; the mirror takes it on..github/workflows/release.ymlruns on github.com only. It checks that tag, Version and Stable tag agree, runs the tests, builds withbin/build.shand publishes the zip andmanifest.jsonas a GitHub release.
REPOSITORIES
The source of truth is yielder.ghe.com/yielder-platforms/yga-wordpress-plugin; push
only there. .github/workflows/mirror.yml pushes main and every v* tag on to the
public repository swbase/yga-wordpress-plugin,
where releases are built. Other branches stay on GHE.
- Never change the github.com repository directly: the mirror pushes without force, so a commit made there stops it until removed.
- The mirror authenticates with a deploy key with write access on the github.com
repository; its private half is the GHE secret
MIRROR_SSH_KEY. To rotate it, replace both.
Everything that reaches main is public. Keep secrets, customer data and internal
hostnames out of it.
LICENTIE
Copyright (C) 2026 Yielder Group B.V. Free software under the
GNU General Public License v3 or later, as WordPress requires of a plugin
(GPL-compatible) and as the plugin header and readme.txt declare. Every source file
carries SPDX-License-Identifier: GPL-3.0-or-later; the release zip contains
LICENSE. Code from elsewhere may only be added if its licence is GPLv3-compatible.
Releases
2 releases. Each count is every asset in that release; expand a row for the breakdown.