32. Datenbankschema | Field Forge - Benutzerdefinierte Felder, gebaut für Geschwindigkeit
Herunterladen Anmelden

32. Datenbankschema

Field Forge verwendet vier benutzerdefinierte Tabellen. Das Verständnis des Schemas hilft bei der Fehlersuche und benutzerdefinierten SQL-Abfragen.

wp_fieldforge_field_groups

sql
CREATE TABLE wp_fieldforge_field_groups (
    id             bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    title          varchar(255)        NOT NULL DEFAULT '',
    fields         longtext            NOT NULL,
    location_rules longtext            NOT NULL,
    menu_order     int                 NOT NULL DEFAULT 0,
    status         varchar(20)         NOT NULL DEFAULT 'publish',
    created_at     datetime            NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at     datetime            NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    KEY status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

wp_fieldforge_values

Primäre Datentabelle. Zusammengesetzte Felder verwenden parent_id und row_index für hierarchisches Nesten.

sql
CREATE TABLE wp_fieldforge_values (
    id             bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    post_id        bigint(20) unsigned NOT NULL,
    field_group_id bigint(20) unsigned NOT NULL DEFAULT 0,
    field_name     varchar(255)        NOT NULL DEFAULT '',
    field_key      varchar(255)        NOT NULL DEFAULT '',
    field_value    longtext,
    field_type     varchar(50)         NOT NULL DEFAULT '',
    parent_id      bigint(20) unsigned NOT NULL DEFAULT 0,
    row_index      int unsigned        NOT NULL DEFAULT 0,
    layout         varchar(255)        NOT NULL DEFAULT '',
    PRIMARY KEY (id),
    KEY post_field  (post_id, field_name),
    KEY post_group  (post_id, field_group_id),
    KEY field_key   (field_key),
    KEY parent_row  (parent_id, row_index)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Beispiel für hierarchisches Nesten:
text
id=1  post_id=42  field_name="team_members"  parent_id=0  row_index=0  field_type="repeater"
id=2  post_id=42  field_name="name"          parent_id=1  row_index=0  field_value="Alice"
id=3  post_id=42  field_name="role"          parent_id=1  row_index=0  field_value="Developer"
id=4  post_id=42  field_name="name"          parent_id=1  row_index=1  field_value="Bob"
id=5  post_id=42  field_name="role"          parent_id=1  row_index=1  field_value="Designer"

wp_fieldforge_options

Speichert Werte für Optionsseiten. Gleiche Struktur, verwendet jedoch option_page anstelle von post_id.

sql
CREATE TABLE wp_fieldforge_options (
    id             bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    option_page    varchar(255)        NOT NULL DEFAULT '',
    field_name     varchar(255)        NOT NULL DEFAULT '',
    field_key      varchar(255)        NOT NULL DEFAULT '',
    field_value    longtext,
    field_type     varchar(50)         NOT NULL DEFAULT '',
    parent_id      bigint(20) unsigned NOT NULL DEFAULT 0,
    row_index      int unsigned        NOT NULL DEFAULT 0,
    layout         varchar(255)        NOT NULL DEFAULT '',
    PRIMARY KEY (id),
    KEY page_field  (option_page, field_name),
    KEY parent_row  (parent_id, row_index)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

wp_fieldforge_revisions

Schema-Änderungshistorie für Feldgruppen.

sql
CREATE TABLE wp_fieldforge_revisions (
    id             bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    group_id       bigint(20) unsigned NOT NULL,
    version        int unsigned        NOT NULL DEFAULT 1,
    title          varchar(255)        NOT NULL DEFAULT '',
    fields         longtext            NOT NULL,
    location_rules longtext            NOT NULL,
    menu_order     int                 NOT NULL DEFAULT 0,
    hash           varchar(32)         NOT NULL DEFAULT '',
    user_id        bigint(20) unsigned NOT NULL DEFAULT 0,
    message        varchar(255)        NOT NULL DEFAULT '',
    created_at     datetime            NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    KEY group_version (group_id, version),
    KEY group_created (group_id, created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Benutzerdefinierte SQL-Beispiele

php
global $wpdb;

// Get all field values for a specific post
$values = $wpdb->get_results( $wpdb->prepare(
    "SELECT field_name, field_value, field_type
     FROM {$wpdb->prefix}fieldforge_values
     WHERE post_id = %d AND parent_id = 0",
    42
) );

// Count total values per post type
$counts = $wpdb->get_results(
    "SELECT p.post_type, COUNT(v.id) AS total_values
     FROM {$wpdb->prefix}fieldforge_values v
     JOIN {$wpdb->posts} p ON p.ID = v.post_id
     GROUP BY p.post_type
     ORDER BY total_values DESC"
);

// Find all posts where a specific field has a value
$posts_with_price = $wpdb->get_col( $wpdb->prepare(
    "SELECT DISTINCT post_id
     FROM {$wpdb->prefix}fieldforge_values
     WHERE field_name = %s AND field_value != ''",
    'price'
) );

Forge KI-Assistent Online

Hallo! Ich bin der Field Forge KI-Assistent. Fragen Sie mich alles über das Plugin — Einrichtung, Funktionen, Fehlerbehebung oder Entwicklung.

Gerade eben
Unterstützt von Forge KI · Dokumentation durchsuchen