Documentación · Documentación técnica

Tipos de contenido personalizados y taxonomías

Este documento describe los tipos de contenido personalizados y las taxonomías registradas por el plugin ADP Car Market Hub: qué slugs utilizan, cómo están configurados, qué capacidades requieren y cómo aparecen en el administrador de WordPress.

Cuándo utilizar este documento

Lea este documento si necesita:

  • Consultar los slugs exactos de los tipos de contenido y taxonomías en consultas personalizadas, plantillas o código del tema.
  • Comprender qué roles pueden editar vehículos y leads.
  • Planificar una integración personalizada, una consulta REST o WP_Query con los datos de los vehículos.

Para obtener detalles a nivel de columna y campo, consulte la Database Schema y el Data Model.

Descripción general

El plugin registra dos tipos de contenido personalizados y 15 taxonomías de atributos de vehículos:

  • as24ci_car — tipo de contenido personalizado público que representa un único anuncio de vehículo. Registrado por AS24CI\CPT.
  • as24ci_lead — tipo de contenido personalizado privado que almacena los envíos de formularios de contacto. Registrado por AS24CI\Leads_CPT.
  • 15 taxonomías no jerárquicas asociadas a as24ci_car. Registradas por AS24CI\Taxonomies.

Todas las cadenas traducibles utilizan el dominio de texto adp-car-market-hub.

Requisitos o prerrequisitos

No se requiere ninguna configuración adicional para registrar estos objetos. Los tipos de contenido y las taxonomías se registran en la acción WordPress init siempre que el plugin esté activo.

Si desea consultar vehículos o leads a través de la REST API, tenga en cuenta que solo se expone as24ci_car (show_in_rest es true). El tipo de contenido as24ci_lead tiene intencionadamente show_in_rest establecido en false.

El tipo de contenido as24ci_car

Registrado en AS24CI\CPT::register_post_type() en init con prioridad

  1. Configuración clave:
ArgumentoValor
publictrue
has_archivetrue
rewrite.slugcars (por lo que las URL individuales son /cars/<slug>/ y el archivo es /cars/)
show_in_resttrue
show_in_menutrue (menú de administración de nivel superior)
menu_icondashicons-car
menu_position3.1 (directamente debajo del menú CMH Center en la posición 3)
supportstitle, editor, excerpt, thumbnail, author
capability_type[ 'as24ci_car', 'as24ci_cars' ]
map_meta_captrue

Debido a que map_meta_cap está habilitado, WordPress mapea capacidades genéricas (como edit_post) al conjunto personalizado singular/plural del plugin.

Enlaces permanentes

Cada vehículo se publica bajo /cars/<slug>/. El importador se asegura de que el slug termine con el Listing ID de AutoScout24 a través de AS24CI\Importer::ensure_slug_has_listing_id() para que las reimportaciones mantengan la URL estable. Después de la activación, las reglas de reescritura se limpian una vez para que el archivo /cars/ funcione de inmediato. Si el archivo devuelve un error 404, visite Ajustes → Enlaces permanentes y guarde una vez para reconstruir la caché de reescritura.

Capacidades

AS24CI\Plugin::ensure_roles_and_caps() otorga el conjunto de capacidades as24ci_car / as24ci_cars a:

  • El rol personalizado as24ci_editor (creado en la activación si no existe).
  • El rol administrator.

La capacidad manage_as24_imports (Plugin::CAP_MANAGE) restringe el acceso a la interfaz de usuario del importador, ajustes, herramientas y logs, y se otorga únicamente a los administradores. Los usuarios con el rol "Editor" de WordPress no reciben automáticamente las capacidades de los vehículos.

Interfaz de administración: meta boxes

AS24CI\CPT::register_meta_boxes() añade dos meta boxes a la pantalla de edición de vehículos:

  • Importación de API de AutoScout24 (as24ci_details_editable) — meta box combinada que contiene:
  • Las pestañas "Datos del anuncio", una por cada grupo de mapeo definido en AS24CI\Field_Mapping::GROUPS (excluyendo el Equipamiento, que es renderizado por AS24CI\Equipment_Metabox).
  • El bloque de Equipamiento de AutoScout24 (renderizado por AS24CI\Equipment_Metabox::render_metabox()).
  • La Galería combinada (imágenes manuales + importadas).
  • Etiquetas (as24ci_badges) — metabox de la barra lateral que permite al editor anular manualmente la autodetección de Nuevo / Usado / Oferta y alternar el indicador de "Oferta destacada". La autodetección se basa en las columnas condition_type, price y list_price del vehículo; las anulaciones manuales se almacenan en los postmeta _as24ci_badge_override_new, _as24ci_badge_override_used, _as24ci_badge_override_sale y _as24ci_top_offer.

Campos de solo lectura

Los campos gestionados exclusivamente por el importador se marcan como de solo lectura en el formulario de edición. La lista se define en AS24CI\CPT::FORM_READONLY_KEYS e incluye:

  • Identificación: _as24ci_id, _as24ci_seller_id, _as24ci_seller_vehicle_id, _as24ci_serial_number, _as24ci_vin, _as24ci_external_id, _as24ci_certification_number.
  • Estado y marcas de tiempo: _as24ci_status, _as24ci_status_last_modified, _as24ci_created_date, _as24ci_last_modified_date.
  • Indicadores de origen: _as24ci_live, _as24ci_language, _as24ci_version_identification_method.

Los valores largos (_as24ci_teaser, _as24ci_description, _as24ci_images) se renderizan como áreas de texto. Los campos numéricos (precio, kilometraje, dimensiones, etc.) se renderizan como <input type="number">.

Galería manual

El selector de galería combinado almacena los ID de los archivos adjuntos seleccionados manualmente en la clave de postmeta _as24ci_manual_image_ids. Los archivos adjuntos de la galería manual se tratan intencionadamente como propiedad del usuario y el código de eliminación o desinstalación del plugin nunca los elimina, incluso cuando se eliminan los archivos adjuntos importados.

Columnas de la lista de administración

AS24CI\CPT añade columnas personalizadas a la lista de administración de Cars (por ejemplo, una miniatura y una estrella de "Oferta destacada"). La columna de la miniatura se dimensiona mediante CSS en línea inyectado en la pantalla edit.php para el tipo de contenido.

El tipo de contenido as24ci_lead

Registrado en AS24CI\Leads_CPT::register_post_type() en init con prioridad 5. Configuración clave:

ArgumentoValor
publicfalse
show_uifalse
show_in_nav_menusfalse
show_in_restfalse
supportstitle

Las entradas de leads no son visibles en las listas de administración estándar de WordPress porque el plugin proporciona una pestaña dedicada a la gestión de Leads. El texto de envío del formulario de contacto se almacena como el título de la entrada (nombre del visitante) y en las claves de postmeta definidas por AS24CI\Leads_CPT::save_lead():

  • _as24ci_lead_name, _as24ci_lead_email, _as24ci_lead_phone, _as24ci_lead_message
  • _as24ci_lead_vehicle_id, _as24ci_lead_vehicle_title, _as24ci_lead_vehicle_listing_id, _as24ci_lead_vehicle_url
  • _as24ci_lead_source_url, _as24ci_lead_date, _as24ci_lead_email_sent
  • _as24ci_lead_status (uno de new, contacted, closed, spam; por defecto new)
  • _as24ci_lead_appointment_date, _as24ci_lead_is_test_drive (para reservas de pruebas de conducción)

Los valores de estado válidos se exponen como constantes en AS24CI\Leads_CPT (STATUS_NEW, STATUS_CONTACTED, STATUS_CLOSED, STATUS_SPAM).

Taxonomías de vehículos

AS24CI\Taxonomies::register_all() registra 15 taxonomías no jerárquicas asociadas a as24ci_car. Cada taxonomía se registra con las mismas opciones:

ArgumentoValor
hierarchicalfalse (tipo etiqueta)
publictrue
show_uitrue
show_in_menutrue (submenú bajo CMH Cars)
show_in_resttrue
show_in_nav_menusfalse
show_tagcloudfalse
show_admin_columnfalse
rewrite.slugEl propio slug de la taxonomía (por ejemplo, as24ci_brand)
query_vartrue

Referencia de taxonomías

Slug de taxonomíaEtiqueta singularEtiqueta plural
as24ci_brandMarcaMarcas
as24ci_modelModeloModelos
as24ci_body_typeTipo de carroceríaTipos de carrocería
as24ci_conditionEstadoEstados
as24ci_fuel_typeTipo de combustibleTipos de combustible
as24ci_transmissionTransmisiónTransmisiones
as24ci_driveTracciónTracciones
as24ci_ext_colorColor exteriorColores exteriores
as24ci_int_colorColor interiorColores interiores
as24ci_emission_stdNorma de emisionesNormas de emisiones
as24ci_energy_labelEtiqueta energética (A-G)Etiquetas energéticas (A-G)
as24ci_vehicle_catCategoría de vehículoCategorías de vehículos
as24ci_warranty_typeTipo de garantíaTipos de garantía
as24ci_warranty_detDetalles de la garantíaDetalles de la garantía
as24ci_cyl_arrangeDisposición de cilindrosDisposiciones de cilindros

Las etiquetas anteriores son las cadenas de origen sin traducir. Las etiquetas reales renderizadas en la interfaz de administración se traducen a través del dominio de texto adp-car-market-hub.

URL de términos

Debido a que cada taxonomía es public y tiene query_var habilitado, los términos son accesibles a través de las URL de taxonomía estándar de WordPress (por ejemplo, /as24ci_brand/<term-slug>/). Estas URL alimentan los filtros de archivo y se pueden utilizar en menús de navegación personalizados o widgets del tema.

Valores de visualización

AS24CI\Taxonomies::get_display_value() es el ayudante canónico para renderizar un campo de vehículo categórico en el frontend. Prefiere el nombre del término de la taxonomía (que se puede renombrar en la administración sin perder el enlace a los datos importados) y recurre al valor postmeta sin procesar si no hay ningún término asignado.

Instrucciones paso a paso

Los tipos de contenido y las taxonomías no requieren configuración manual. Los siguientes flujos de trabajo son los habituales:

  1. Active el plugin. WordPress ejecuta el hook de activación, el cual crea los roles y capacidades y limpia las reglas de reescritura. El archivo /cars/ pasa a estar disponible de inmediato.
  2. Ejecute el importador. Los anuncios importados se escriben en el tipo de contenido as24ci_car con sus términos de taxonomía asignados por el mapeador.
  3. Edite un vehículo. Abra un vehículo desde el menú de administración CMH Cars. Utilice la meta box de importación de API de AutoScout24 para anular los campos importados (sujeto a la lista de solo lectura anterior) y la meta box de Etiquetas para controlar qué etiquetas se muestran.
  4. Gestione las taxonomías. Utilice las entradas del submenú de CMH Cars (Marca, Modelo, Tipo de carrocería, etc.) para renombrar, fusionar u ocultar términos. Renombrar un término actualiza la etiqueta mostrada en todo el sitio porque get_display_value() prefiere el nombre del término sobre el valor sin procesar.
  5. Gestione los leads. Utilice la pestaña de administración dedicada a Leads. Las entradas subyacentes de as24ci_lead no se exponen en la lista de entradas estándar de WordPress.

Referencia de configuración

ElementoDónde resideNotas
Tipo de contenido as24ci_carAS24CI\CPT::POST_TYPEMenú de administración de nivel superior bajo "Cars".
Tipo de contenido as24ci_leadAS24CI\Leads_CPT::POST_TYPEOculto del panel de administración estándar de WP; se gestiona a través de la pestaña Leads.
Taxonomías de vehículosAS24CI\Taxonomies::TAXONOMY_SLUGS (también a través de Taxonomies::get_taxonomy_slugs())15 entradas; no jerárquicas.
Conjunto de capacidades de vehículosas24ci_car / as24ci_carsMapeado a través de map_meta_cap.
Capacidad del importador/ajustesmanage_as24_imports (Plugin::CAP_MANAGE)Concedido únicamente a administradores.
Rol personalizadoas24ci_editorCreado en la activación si no existe.
Postmeta de galería manual_as24ci_manual_image_idsEl plugin nunca lo elimina.
Postmeta de estado de Lead_as24ci_lead_statusPor defecto es new; los valores válidos se definen como Leads_CPT::STATUS_*.

Notas operativas

  • El tipo de contenido y las taxonomías se registran en init. El código personalizado que los lea debe ejecutarse no antes de init prioridad 5.
  • Consultar vehículos a través de WP_Query es sencillo (post_type => 'as24ci_car'). Para consultas numéricas tipadas o de rangos, es preferible utilizar la tabla dedicada as24_vehicles a través de AS24CI\Vehicle_Repository, ya que las consultas basadas en postmeta pueden ser lentas en catálogos grandes.
  • Cambiar el nombre de un término de taxonomía actualiza la etiqueta del frontend inmediatamente y no requiere una nueva importación: el ayudante Taxonomies::get_display_value() lee el nombre del término al vuelo.
  • Eliminar el plugin mientras as24ci_delete_data_on_uninstall está establecido en 1 borra todas las publicaciones de as24ci_car y as24ci_lead y los archivos adjuntos rastreados en _as24ci_image_ids. Los archivos adjuntos de galerías manuales y los términos de taxonomía no se eliminan automáticamente.

Resolución de problemas

  • /cars/ devuelve 404. Visite Ajustes → Enlaces permanentes y guarde una vez para vaciar las reglas de reescritura. El plugin ya las vacía al activarse, por lo que un error 404 suele significar que un plugin o tema de terceros ha reemplazado las reglas de reescritura.
  • Un usuario con el rol de Editor no puede editar vehículos. Los editores no reciben automáticamente el conjunto de capacidades as24ci_car. Asígneles el rol as24ci_editor o añada las capacidades del plugin al rol de Editor a través de su herramienta de gestión de roles.
  • Los cambios en el equipamiento importado se pierden en la siguiente importación. El bloque de equipamiento es gestionado por el importador. Las ediciones realizadas en la metabox de equipamiento pueden sobrescribirse a menos que pasen por la capa de anulación manual descrita en Data Model. Verifique el comportamiento en la versión actual del plugin antes de confiar en las ediciones manuales del equipamiento importado.
  • Las publicaciones de Lead aparecen en una lista de administración genérica. El tipo de contenido establece show_ui en false; si los leads aparecen en una vista de administración personalizada, un plugin o filtro de terceros está anulando el comportamiento por defecto. Utilice la pestaña integrada Leads para la gestión de leads.

Documentos relacionados