Skip to content

JetEngine Fields

JetEngine by Crocoblock is one of the most powerful and versatile custom content plugins available for WordPress. It goes far beyond simple custom fields, offering a complete toolkit for creating custom post types, taxonomies, meta boxes, relations between content, options pages, and dynamic templates — all from an intuitive admin interface. WPfaker provides deep, first-class integration with JetEngine, ensuring that every aspect of your JetEngine-powered site can be populated with lifelike test data in seconds.

Where many fake data tools treat JetEngine as an afterthought, WPfaker's JetEngine adapter was built from the ground up to understand JetEngine's unique data storage patterns, its relation table architecture, and its media field format options. Whether you are building a property directory with cross-referenced agents and listings, an event calendar with linked venues and speakers, or a multi-vendor marketplace with related products and shops, WPfaker generates the interconnected data you need to test your dynamic templates under realistic conditions.

TIP

JetEngine support works alongside other field plugins. If your site also uses ACF or Meta Box AIO, all plugins are detected simultaneously and their fields are populated in a single generation run. See Custom Fields for the general overview of multi-plugin support.

Supported Field Types

WPfaker supports seventeen JetEngine field types. Each type is detected automatically when you select a post type that has JetEngine meta boxes assigned to it. No manual mapping or configuration is required — WPfaker reads JetEngine's field definitions and generates the appropriate data for each one.

Text and Content Fields

The text field generates words or short sentences, with the exact output influenced by field name analysis through WPfaker's Field Detection system. A text field named customer_email produces an email address, while one named notes produces a short sentence. The textarea field generates multiple sentences or paragraphs of lorem ipsum text, suitable for description areas and longer free-text inputs. The WYSIWYG field produces rich HTML content complete with paragraphs, headings, and occasionally lists or bold text, exactly as a content editor would enter it. The HTML field generates a raw HTML content block, and the hidden field produces a value based on field name analysis, since hidden fields often store calculated or system-generated values.

Numeric Fields

The number field generates random integers or decimal values. When the field has configured minimum and maximum bounds in JetEngine's settings, WPfaker respects those constraints. Field name analysis further refines the output — a number field named price produces a currency-formatted value, while one named bedrooms produces a small integer. The range field works similarly but always generates a value within the slider's configured min/max bounds.

Selection Fields

The select field picks a random option from the choices defined in JetEngine's field configuration. The checkbox field selects a random subset of the available options, simulating a user who checks some but not all boxes. The radio field picks exactly one option from the available choices. The switcher field produces a random true/false toggle value, equivalent to an on/off switch in the admin editor.

Date and Time Fields

JetEngine offers four date/time field types, and WPfaker handles each one with the correct format. The date field generates a random date in YYYY-MM-DD format. The time field generates a random time in HH:MM format. The datetime field combines both into YYYY-MM-DD HH:MM format. The datetime-local field produces a similar combined format suitable for the HTML5 datetime-local input type. All generated dates fall within a reasonable range — typically within the past two years to one year in the future — to produce plausible content.

Media Fields

The media field downloads an actual image from your configured image provider and stores it in your WordPress media library. JetEngine media fields support three storage formats, and WPfaker handles all of them correctly. When the field is configured to store the attachment ID only, WPfaker saves the numeric ID. When configured for URL only, it saves the full image URL. When configured for "both," it saves a JSON object containing both the ID and the URL, matching JetEngine's expected {"id": 123, "url": "https://..."} structure.

The gallery field works similarly but downloads and attaches multiple images, storing an array of attachment IDs. The number of images varies based on your Content Variation settings.

The email field generates a safe, non-deliverable email address using FakerPHP's safeEmail generator. The URL field produces a realistic website URL. The password field generates a secure random string suitable for display in password-type inputs.

Special Fields

The colorpicker field generates a random hex color value such as #44CEFF. Colors are selected from curated palettes to ensure they are visually distinct and useful for design testing. The iconpicker field generates a valid Font Awesome icon class string, such as fa-solid fa-house or fa-regular fa-envelope, ensuring that JetEngine's icon rendering functions display an actual icon rather than a broken reference.

Relational and Complex Fields

The posts field is JetEngine's built-in relational field type, which references posts of another post type. Because the referenced posts may not exist at the time of generation, WPfaker defers these fields to the second pass of its three-pass system, described in detail below. The repeater field contains nested sub-fields, and WPfaker generates multiple rows with each sub-field populated according to its own type. Nested repeaters within repeaters are supported recursively.

Layout Fields

JetEngine includes several field types that serve purely visual purposes in the admin editor and store no data. WPfaker recognizes and skips these automatically during generation:

  • The tab field groups other fields into tabbed sections in the editor interface.
  • The accordion field groups fields into collapsible sections.
  • The heading field displays a label or section title in the editor.
  • The html layout type displays static instructional HTML in the editor UI.

INFO

JetEngine uses the html identifier for both a data field (which stores HTML content) and a layout element (which is display-only). WPfaker distinguishes between the two based on JetEngine's internal field configuration flags, so the data field is populated while the layout element is skipped.

The 3-Pass Generation System

JetEngine's relational fields and its dedicated Relations system create a dependency problem: you cannot reference a post that has not been created yet. WPfaker solves this elegantly with a three-pass generation system that builds content in the correct order.

Pass 1: Post Creation

During the first pass, WPfaker creates all posts across all selected post types with their non-relational fields fully populated. Text, numbers, dates, media, galleries, select fields, and every other standalone field type receives its generated data. Relational fields — specifically the posts field type — are left empty at this stage because their target posts may not exist yet.

Pass 2: Relational Field Population

Once every post in the batch has been created, WPfaker performs a second pass over all generated posts. During this pass, it populates every posts-type field by selecting from the available posts of the referenced post type. If a property post type has a posts field referencing the agent post type, WPfaker picks from the agents that were created in Pass 1. The number of linked posts varies based on the field's configuration and the active variation profile.

Pass 3: JetEngine Relations

JetEngine's Relations feature is separate from field-level posts references. Relations are configured in JetEngine's admin under a dedicated Relations menu and store their connections in custom database tables (specifically jet_rel_default) rather than in wp_postmeta. During the third pass, WPfaker queries JetEngine's registered relations for the post types in the current batch and creates the appropriate connection records in the relation tables.

This three-pass architecture ensures that all content exists before any references are made, maintaining full referential integrity across even the most complex multi-post-type setups.

TIP

With Content Variation enabled, the number of relations created per post varies realistically. Some posts may have many connections while others have few, mimicking real-world data. The first generated post always receives the full set of relations as a reference baseline.

JetEngine Relations in Detail

Beyond the field-level posts type, JetEngine provides a powerful standalone Relations system that supports three cardinality types. WPfaker handles all three.

One-to-One (1:1) relations create a single, exclusive link between two posts. For example, an employee is assigned to exactly one office. WPfaker creates exactly one connection per post, selecting a random unlinked target to maintain the exclusivity constraint.

One-to-Many (1:N) relations allow one parent post to connect to multiple child posts, but each child belongs to only one parent. For example, one department has many employees, but each employee belongs to one department. WPfaker assigns multiple children to each parent, with the count varying based on the variation profile.

Many-to-Many (M:N) relations allow any post on either side to connect to multiple posts on the other side. For example, students enroll in multiple courses, and courses have multiple students. WPfaker creates a matrix of connections, with each post linking to a varied number of targets.

INFO

JetEngine Relations are stored in dedicated database tables (jet_rel_*), not in wp_postmeta. WPfaker writes directly to these tables to ensure full compatibility with JetEngine's query builder, dynamic listings, and relation macros.

CPT and Taxonomy Detection

WPfaker automatically detects custom post types and taxonomies registered through JetEngine's admin interface. JetEngine stores its CPT definitions in the WordPress options table under the key jet_engine_post_types, and its taxonomy definitions under jet_engine_taxonomies. WPfaker reads these registrations during initialization and adds every JetEngine-registered post type to the post type dropdown in WPfaker's generation interface. Similarly, JetEngine taxonomies appear alongside native and plugin-registered taxonomies when configuring Taxonomy Generation.

This detection is fully automatic. You do not need to tell WPfaker about your JetEngine content types — they appear the moment they are registered in JetEngine's admin. If you add a new CPT or taxonomy through JetEngine and then open WPfaker, the new type is immediately available for content generation.

Meta Boxes

JetEngine meta boxes define the field groups that appear on post editing screens, user profile screens, and taxonomy term editing screens. WPfaker scans all published JetEngine meta boxes for the currently selected post type and loads every field within them. The meta box title, field labels, field types, and configuration options (such as min/max values, select choices, and media format settings) are all read and used to guide data generation.

Meta boxes assigned to users and taxonomy terms are also detected when generating Users or Taxonomy Terms respectively.

Options Pages

JetEngine allows you to create Options Pages — custom admin screens that store global site settings as meta fields. These are commonly used for footer content, social media URLs, global pricing settings, or site-wide configuration values. WPfaker detects all JetEngine options pages and their associated fields, and can populate them with generated data just as it does for post meta fields.

WARNING

Options pages store site-wide settings that may affect your entire site's appearance and behavior. Populating them with fake data will overwrite any existing values. Use WPfaker's History feature or make a note of your current values before generating options page data.

Smart Field Name Detection

Beyond standard field type handling, WPfaker's Field Detection system analyzes JetEngine field names to generate contextually appropriate data. The detection system considers both the JetEngine field type and the field name simultaneously.

The field type sets the format constraint — a number field always outputs a number, a date field always outputs a date, and so on. Within that format, the field name determines the semantic context. A number field named monthly_revenue matches the price/money pattern and receives a realistic currency value like 12450.00, while a number field named floor_count matches the rooms/floor pattern and receives a small integer like 3. When the field type is unambiguous on its own (such as email or date), the field type takes priority and the correct format is guaranteed regardless of the field name.

If neither the field type nor the field name produces a specific match, WPfaker falls back to a sensible default for the field type — generic text for text fields, a random integer for number fields, a random date for date fields, and so on. For truly ambiguous field names, enabling AI Detection allows WPfaker to use an AI provider (Google Gemini, Anthropic Claude, or OpenAI GPT) to analyze the field in context and suggest the most appropriate data type.

TIP

Use descriptive field names for the best results. A field named data1 will receive generic text, while customer_email will receive a properly formatted email address. See Field Detection for the full list of over 780 patterns across 160 detection types.

Repeater Fields

JetEngine repeater fields contain a set of nested sub-fields that can have multiple rows of data. WPfaker generates a random number of rows (typically two to five) for each repeater, with every sub-field in every row populated according to its own field type. If a repeater named team_members contains sub-fields for name (text), role (text), and photo (media), WPfaker produces multiple rows like:

Row 1: { name: "Sarah Johnson", role: "Lead Developer", photo: 142 }
Row 2: { name: "Michael Chen",  role: "UX Designer",    photo: 143 }
Row 3: { name: "Anna Schmidt",  role: "Project Manager", photo: 144 }

Nested repeaters — repeaters inside repeaters — are supported recursively. The inner repeater generates its own set of rows independently, creating the kind of deeply structured data that complex JetEngine setups often require.

Troubleshooting

If JetEngine fields are not being detected, confirm that JetEngine is active and that the meta box is published (not in draft status). Verify that the meta box is assigned to the correct post type and that the fields within it are not layout-only types such as tab, accordion, or heading. If fields appear but are not populated correctly, try switching to a different post type in WPfaker's interface and then switching back — this refreshes the field cache.

For JetEngine Relations that are not being created, confirm that the target post types have existing posts or are included in the same generation batch. Check that the relation is published and active in JetEngine's Relations admin, and verify that the relation is configured for the correct pair of post types.

If media fields produce unexpected output formats, check the field's "Value format" setting in JetEngine (id, url, or both). WPfaker reads this setting automatically, but if the JetEngine field configuration was changed after posts were generated, the stored values may not match the new format expectation.

INFO

For general custom field troubleshooting that applies across all field plugins, see the Custom Fields page.

Released under the GPL2 License. wpfaker.com