Gutenberg: Soporte para almacenar metadatos CPT en tablas de bases de datos personalizadas

Creado en 2 dic. 2017  ·  3Comentarios  ·  Fuente: WordPress/gutenberg

Por ejemplo, tenemos dos CPT, Libros y Autores, y nos gustaría almacenar los metadatos de Libros (es decir, parent_id, isbn, subtitle, average_rating, ratings_count, publicación_date, num_pages, bisac_code, author_id, etc.) en una tabla de base de datos personalizada " Books "y también almacena los metadatos de los Autores (es decir, works_count, date_of_birth, fans_count, average_rating, etc.) en una tabla de DB personalizada" Autores ".

Entonces nos gustaría consultar los datos de esta manera:

SELECT p.post_id, p.post_title, p.post_content, b.subtitle, b.average_rating, a.post_tile as author_name
FROM wp_posts as p
INNER JOIN books as b ON p.post_id = b.parent_id
INNER JOIN authors as a ON b.author_id = a.id
WHERE b.average_rating => 3 AND YEAR(b.publication_date) => 2007 AND bisac_code = 'FIC009050' AND a.average_rating => 3

Almacenar todos los metadatos de CPT en wp_postmeta no es una opción porque buscar más de 1 millón de filas sería muy lento y no se escala, y es la razón por la que WooCommerce también está moviendo pedidos y productos a tablas de bases de datos personalizadas .

¿Podré agregar campos personalizados / metabloques a los dos CPT en Gutenberg y luego guardar esos metadatos en tablas de bases de datos personalizadas?

Framework [Feature] Block API [Feature] Extensibility [Priority] Low [Type] Enhancement

Comentario más útil

@pmgarman Sí, ya puede guardar los metadatos de CPT en tablas de base de datos personalizadas sin Gutenberg, pero estoy bastante seguro de que todavía no puede hacerlo con Gutenberg.

Todos 3 comentarios

Ya puede hacer esto sin la necesidad de realizar cambios en Gutenberg. En realidad, puedes hacerlo ahora sin Gutenberg. Lo hacemos en proyectos nuestros de forma semi regular.

@pmgarman Sí, ya puede guardar los metadatos de CPT en tablas de base de datos personalizadas sin Gutenberg, pero estoy bastante seguro de que todavía no puede hacerlo con Gutenberg.

Es posible construir bloques que almacenan cosas en varios campos CPT usando EntityProvider y useEntityProperty hook. Puedes comprobar cómo funcionan los bloques PostTitle, PostExcerpt ...

¿Fue útil esta página
0 / 5 - 0 calificaciones