external_entity
Ever wish you could display content from another Drupal site as if it were part of your own—fully themed, used in Views, and rendered with view modes—without duplicating that content?
The External Entity Server and External Entity (Consumer) modules were built for site builders who want a streamlined, Drupal-native way to share and display live content across multiple Drupal sites.
Why Use External Entity?
Drupal offers a number of ways to share content—like JSON:API, REST, Feeds, Migrate, or Entity Share. These tools are powerful, but they often come with trade-offs:
- Some duplicate content, introducing sync and storage challenges.
- Others require decoupled frontends or custom code, making it harder to use familiar tools like Views or blocks.
- Some are excellent for imports but aren’t ideal for displaying real-time content hosted elsewhere.
External Entity provides a different approach: it allows you to display live remote content as if it were native, using standard Drupal building blocks like view modes, fields, and Views. There’s no duplication—just a seamless integration of external data into your local site.
🏫 Example Use Case
A school district wants district-level news to automatically appear on each school’s website.
- The district site runs External Entity Server to expose the News content type.
- Each school site uses External Entity (Consumer) to fetch and render that news, styled and displayed like local content—no duplication, no migration.
⚙️ Quick Setup Overview
Note: This module assumes you have already installed and configured the External Entity Server module on a remote Drupal site and have at least one resource configured and exposed.
▶️ Want to follow along with a screencast?
1. Install the Module
Install using Composer and enable like any other contributed module.
See: Installing modules
2. Add a Connection
Path: /admin/config/services/external-entity/connection
Set up a connection to your External Entity Server. Provide the domain and specify an authentication method, if required.
3. Define External Entity Types
Path: /admin/structure/external-entity/type
Map external entities to local Drupal content types or entity types. For example, map the external News node type to a local News content type.
Each External Entity Type can be configured using Manage Display to map remote fields to local fields (e.g., title → title, field_tags → field_tags).
4. Access External Entities
External entities can be used in two ways:
- Entity Reference: Use the External Entity reference field to render content through a view mode.
- Views Integration: Create External Entity Views to list and filter external content using the standard Drupal Views UI. Choose a view mode for rendering.
With External Entity (Consumer), you gain the ability to use external content as if it were local—without sacrificing performance, theming, or site-building tools.