Title: RTEO Connect
Author: rteo
Published: <strong>30 de junio de 2026</strong>
Last modified: 7 de agosto de 2026

---

Buscar plugins

![](https://ps.w.org/rteo-connect/assets/banner-772x250.png?rev=3629469)

![](https://ps.w.org/rteo-connect/assets/icon.svg?rev=3629469)

# RTEO Connect

 Por [rteo](https://profiles.wordpress.org/rteo/)

[Descargar](https://downloads.wordpress.org/plugin/rteo-connect.0.8.3.zip)

 * [Detalles](https://es-do.wordpress.org/plugins/rteo-connect/#description)
 * [Valoraciones](https://es-do.wordpress.org/plugins/rteo-connect/#reviews)
 *  [Instalación](https://es-do.wordpress.org/plugins/rteo-connect/#installation)
 * [Desarrollo](https://es-do.wordpress.org/plugins/rteo-connect/#developers)

 [Soporte](https://wordpress.org/support/plugin/rteo-connect/)

## Descripción

RTEO Connect links your WordPress site to your RTEO workspace. It pulls live, never-
stale schema.org Course structured data from RTEO and injects it server-side into
your course page , and it provides the [rteo_connect embed=table object=…] shortcode
to drop the live course instance table (dates, locations, prices, availability, 
enrol buttons) anywhere on your site.

For sites connected to RTEO, the plugin also exposes your course structure to your
authenticated RTEO workspace: the fields on your course pages (including Advanced
Custom Fields) and the taxonomies attached to your courses (learning categories,
course types, funding options, delivery modes and the like). This lets RTEO read
your course content, fields and taxonomies and, with your approval in RTEO, update
them. All content operations are driven from your own RTEO workspace; the plugin
never authors or stores content in WordPress on its own.

Embed a course page’s live instance table by pasting the shortcode from your RTEO
course page editor, e.g. [rteo_connect embed=table object=sch_xxxxx]. Optional attributes:
display (tabs|combined), rows (3|6|10|all), sort (date|spots|cost|location), dir(
asc|desc), theme (auto|light|dark). The table renders in an isolated Shadow DOM 
in your site’s brand colours and stays in sync with your live schedule.

The Course JSON-LD is injected server-side (in wp_head), not via client-side JavaScript,
so search engines and AI consumers index it reliably. The plugin transient-caches
the fetched JSON-LD so it adds no per-render network cost, and it fetches from RTEO’s
public, anonymous schema endpoint, storing no secrets.

### External services

This plugin relies on the RTEO application — a third-party SaaS platform operated
by RTEO — to generate and serve the schema.org Course structured data and the live
course instance table for your courses. The plugin only reads and renders content
that RTEO produces; it never authors or stores content in WordPress.

The plugin connects to the live RTEO service at https://app.rteo.com.au. Which environment
a site talks to is decided by RTEO’s domain registry: the plugin asks https://app.
rteo.com.au/api/connect/environment (sending only the site’s own domain name) which
environment the domain is registered for, and on an unregistered domain it stays
inactive and makes no further requests.

What data is sent, and when:

 1. Schema fetch (server-side, on page render). When a page has an RTEO schema token
    configured, the plugin makes a server-to-server request to the RTEO schema endpoint(
    https://app.rteo.com.au/api/schema/) to fetch that page’s Course JSON-LD. The only
    data sent is the page’s opaque schema token (e.g. `sch_xxxx`) — no personal data,
    post content, or site credentials. Responses are cached locally so the request 
    is not repeated on every render.
 2. Embed widget (in the visitor’s browser, only when used). When you add the [rteo_connect
    embed=table] shortcode to a page, the visitor’s browser loads the RTEO embed widget
    script from https://app.rteo.com.au/dist/rteo-instances.js, which then requests
    the public, anonymous instance-table data for the page’s token from https://app.
    rteo.com.au/api/embed/page/. As with any externally hosted script, the visitor’s
    browser contacts app.rteo.com.au (sending its IP address and standard request headers)
    when the table is displayed.

This service is provided by RTEO. Its terms and privacy policy:

 * Terms & Conditions: https://rteo.com.au/terms-conditions
 * Privacy Policy: https://rteo.com.au/privacy-policy

## Instalación

 1. Install and activate the plugin (via the WordPress plugin directory, or upload 
    the ZIP via Plugins  Add New  Upload).
 2. RTEO registers your domain and sets your page token automatically when you install
    via RTEO. To configure manually, set the page’s rteo_schema_token meta (or the 
    rteo_default_schema_token option) to the token shown in your RTEO course page editor.

## FAQ

### Does this send any personal data to RTEO?

No personal data. To fetch a page’s public Course schema the plugin sends only that
page’s opaque schema token to RTEO’s endpoint. When you use the embed shortcode,
visitors' browsers load the table widget from RTEO. See the "External services" 
section above for the full disclosure.

### Where do I get my page token?

Your RTEO course page editor shows the opaque schema token for each course page.
RTEO sets it for you automatically on a remote install; for a manual install, copy
it into the page’s rteo_schema_token meta or the site-wide rteo_default_schema_token
option.

## Reseñas

No hay reseñas para este plugin.

## Colaboradores y desarrolladores

"RTEO Connect" es un software de código abierto. Las siguientes personas han colaborado
con este plugin.

Colaboradores

 *   [ rteo ](https://profiles.wordpress.org/rteo/)

[Traduce "RTEO Connect" a tu idioma.](https://translate.wordpress.org/projects/wp-plugins/rteo-connect)

### ¿Interesado en el desarrollo?

[Revisa el código](https://plugins.trac.wordpress.org/browser/rteo-connect/) , echa
un vistazo al [repositorio SVN](https://plugins.svn.wordpress.org/rteo-connect/)
o suscríbete al [registro de desarrollo](https://plugins.trac.wordpress.org/log/rteo-connect/)
por [RSS](https://plugins.trac.wordpress.org/log/rteo-connect/?limit=100&mode=stop_on_copy&format=rss).

## Registro de cambios

#### 0.8.3

 * Hardening: the forwarded Application Password header is honoured only on
    requests
   that a server-level password prompt has already authenticated. A site with no
   prompt ignores the header entirely, so it cannot be used as a second way to submit
   WordPress credentials. Sites behind a prompt are unaffected. If your host’s protection
   strips every trace of itself before PHP runs, define RTEO_CONNECT_TRUST_FORWARDED_AUTH
   as true in wp-config.php.

#### 0.8.2

 * Fix: sites behind a server-level password prompt (common on staging sites)
    can
   now connect. The prompt’s credentials take the standard Authorization header 
   before WordPress runs, so RTEO sends the Application Password in a separate header
   and the plugin hands it to WordPress. Sites with no password prompt are unaffected.

#### 0.8.1

 * Fix: an SEO title or description written by RTEO now shows on the page. The SEO
   
   plugin serves the document title, description and canonical from its own cache
   table rather than from the post, so a value written to the post was stored but
   never rendered. The cached row for that post is now dropped after a write, so
   the next visit rebuilds it from what was written.

#### 0.8.0

 * New: site-manifest route. RTEO can now ask your site what it HAS – your
    content
   types, the fields on each of them (WordPress’s own and your custom fields), and
   your taxonomies with their terms – in a single request. Field definitions only:
   no post content and no field values are read. Sites without a custom-fields plugin
   are fully supported and return their WordPress fields.

#### 0.7.14

 * Field manifest now reports each ACF field’s full write contract, not just its
   
   label: choices (so a checkbox’s real value is known instead of guessed), return/
   save/display formats (whether a field stores an ID, a URL or an array), multiple/
   required/allow_null/readonly/disabled, maxlength and numeric bounds, default 
   value, and a taxonomy field’s taxonomy.
 * Repeater, group and flexible-content SUB-FIELDS are now included. Previously 
   the
    manifest listed top-level fields only, so anything nested was invisible 
   even though it could be written. Sub-fields carry a `parent` key, and flexible-
   content layouts are reported so the right layout can be created.
 * All additions are optional and omitted when absent, so nothing changes for an
   
   older RTEO app reading this manifest.

#### 0.7.13

 * New: blog-meta route. RTEO reads the site’s assignable authors and existing
    
   blog categories/tags through the connector, so host firewalls that block core
   endpoints (like the /users anti-enumeration rule) never break publishing setup.

#### 0.7.12

 * The plugin’s environment is now decided by the domain the site runs on,
    looked
   up against RTEO’s registry. A registered client domain is fixed to production,
   a registered staging-clone domain is fixed to staging, and an unregistered domain
   makes the plugin inert (no requests, nothing served) with a clear admin notice.
   The wp-config RTEO_ENDPOINT_BASE override from 0.7.0 is removed – registration
   in RTEO is the only mechanism.
 * New "RTEO Connect" admin page: which environment the site resolved to and
    why,
   the endpoint in use, pages carrying live schema, last schema fetch, and a "Check
   again" button.

#### 0.7.11

 * New: blog design-kit stylesheet delivery. RTEO can push your workspace’s
    blog
   design-kit CSS (base components + your exclusive components, in your brand colours)
   to the site. The plugin stores it as a static file in uploads/rteo-connect/ and
   loads it site-wide, so styled blog posts keep rendering correctly even if the
   RTEO connection is later removed. Updating the styling is a push from RTEO – 
   no plugin update needed.

#### 0.7.0

 * The plugin now connects to the production RTEO service (app.rteo.com.au) by
    
   default. A staging clone of a site can opt out with one line in wp-config.php:
   define(’RTEO_ENDPOINT_BASE', 'https://staging.rteo.com.au/api/schema'). Sites
   already connected keep their stored endpoint and are unaffected.
 * Batch-write accepts a `taxonomy:<slug>` target, so RTEO can assign a post’s
    
   taxonomy terms (categories, course types, funding options) during a push instead
   of leaving them for a human. Terms are REPLACED with the supplied set, captured
   in the before-image, and restored atomically on revert.
 * Batch-write accepts `core:post_content` and `core:post_title`, so RTEO can
    rewrite
   the WordPress editor body and the title — not just ACF sidecar fields. This is
   what lets a Blog post (whose content lives in the editor) be pushed.
 * Repeater, group and flexible-content fields can be written: a structured value
   
   now passes through to ACF intact instead of being flattened to strings.
 * `core:post_author` reassigns a post’s author by user ID (validated against a
   
   real user, so a post is never orphaned).
 * `taxonomy:<slug>` works for CORE taxonomies too — `taxonomy:category` and
    taxonomy:
   post_tag need no special casing.
 * New `media:field_*` target for image, gallery and file fields. The value is an
   
   existing attachment ID or an https URL, which is sideloaded into this site’s 
   media library. A revert restores the field’s previous attachment but does not
   delete the uploaded file, since other posts may reference it.

#### 0.6.1

 * batch-write accepts array values for checkbox/multi-select gate fields: an acf:
   field_* write whose value is an array is sanitized element-wise and stored as
   an array (ACF checkbox semantics), the byte-identity compare is array-aware (
   order-preserving), and before-images/compensating restores round-trip arrays 
   intact. Powers RTEO’s conditional-gate companion writes on checkbox-controlled
   modules.

#### 0.6.0

 * New POST /wp-json/rteo/v1/batch-write route: applies N field writes (acf:field_*,
   yoast:title/metadesc, core:post_excerpt, relationship:field_*) atomically with
   server-side before-images and both-or-neither compensating rollback on any failed
   or mismatched write. Powers RTEO’s multi-field content push in one transaction.
 * relationship:field_* write kind: set/replace a course’s ACF relationship field
   to an app-supplied ID list (link-only — never creates or modifies the related
   post).
 * field-manifest additively emits each relationship/post_object field’s target 
   post_type and each field’s ACF conditional_logic rule groups (so the RTEO app
   knows which controlling field gates a module).
 * create-and-link-faq publish: accepts category_new_name / tag_new_name to create
   an operator-approved new category/tag term (wp_insert_term); the unresolved-category
   guard is preserved when neither an id nor an approved new name is supplied.

#### 0.5.4

 * create-and-link-faq: when the FAQ CPT has no ACF answer field, the answer is 
   written to post_content as a paragraph block (rteocm convention).

#### 0.5.3

 * create-and-link-faq: per-site tag taxonomy (tag_taxonomy param). The publish 
   phase now accepts an optional tag_taxonomy so FAQ post types that register their
   own tag taxonomy (e.g. rteocm_faq_tag) tag the course into the right taxonomy;
   absent it defaults to the WordPress core post_tag (backward compatible). An explicitly
   supplied but unregistered taxonomy returns rteo_taxonomy_not_found rather than
   mis-tagging.

#### 0.5.2

 * FAQ route fixes: acf-prefix strip on draft writes, post:title in field-values.

#### 0.5.1

 * Version bump to supersede pre-release 0.5.0 dev builds installed manually on 
   early sites (identical routes to 0.5.0). Ensures wp.org auto-update delivers 
   the push routes everywhere.
    This plugin is in public beta (0.x). 1.0.0 will 
   mark the first stable release.

#### 0.5.0

 * Added RTEO control-plane content routes (admin-authenticated): GET /wp-json/rteo/
   v1/field-manifest (enumerate a post type’s ACF field definitions), GET /wp-json/
   rteo/v1/field-values (read raw unformatted ACF values + Yoast title/metadesc),
   GET /wp-json/rteo/v1/taxonomy-terms (enumerate a taxonomy’s live terms), POST/
   wp-json/rteo/v1/write-field (write a single ACF field by key or a Yoast slot),
   and POST /wp-json/rteo/v1/create-and-link-faq (draft/publish/delete FAQ posts
   and link them to a course relationship field). These power RTEO’s gated content
   push. Read-only for reads; writes are admin-only and never touch credential-looking
   meta.

#### 0.4.1

 * Marked tested up to WordPress 7.0. Added listing icon and banner assets. No functional
   changes.

#### 0.4.0

 * Public beta. The embed shortcode is [rteo_connect embed=table object=…] (the 
   tag matches the plugin name).
 * The embed widget is now loaded via wp_enqueue_script() and mounts into a placeholder
   element, instead of an inline script tag.
 * Hardened the JSON-LD output escaping; updated the Plugin URI and documented the
   external services this plugin uses.

#### 0.3.0

 * RTEO control-plane integration routes (admin-authenticated): POST /wp-json/rteo/
   v1/page-token wires a course page’s schema token onto the matching post, and 
   GET /wp-json/rteo/v1/instance-tables lets RTEO discover per-location/domain instance-
   table tabs from your page content.

#### 0.2.0

 * New [rteo_connect embed=table object=…] shortcode — embed the live course instance
   table (Shadow-DOM, brand-themed) anywhere on your site, with optional display/
   rows / sort / dir / theme attributes.

#### 0.1.0

 * Initial: server-side Course JSON-LD injection + [rteo_content] seam.

## Meta

 *  Version **0.8.3**
 *  Last updated **hace 34 minutos**
 *  Active installations **Menos de 10**
 *  WordPress version ** 6.4 o superior **
 *  Tested up to **7.0.3**
 *  PHP version ** 7.4 o superior **
 *  Language
 * [English (US)](https://wordpress.org/plugins/rteo-connect/)
 * Tags
 * [courses](https://es-do.wordpress.org/plugins/tags/courses/)[JSON-LD](https://es-do.wordpress.org/plugins/tags/json-ld/)
   [schema](https://es-do.wordpress.org/plugins/tags/schema/)[seo](https://es-do.wordpress.org/plugins/tags/seo/)
   [structured data](https://es-do.wordpress.org/plugins/tags/structured-data/)
 *  [Vista avanzada](https://es-do.wordpress.org/plugins/rteo-connect/advanced/)

## Valoraciones

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/rteo-connect/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/rteo-connect/reviews/)

## Colaboradores

 *   [ rteo ](https://profiles.wordpress.org/rteo/)

## Soporte

¿Tienes algo que decir? ¿Necesitas ayuda?

 [Ver el foro de soporte](https://wordpress.org/support/plugin/rteo-connect/)