TV Screen Display
Adds a custom WordPress plugin for managing TV display pages and TV items, including standalone frontend rendering, media support, slide rotation, display assignment, and QR code generation.
by Giannis Sifakis · github.com/giansifakis/tv-screen-display
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/giansifakis/tv-screen-display/archive/refs/heads/main.zipReadme
TV Screen Display
A lightweight WordPress plugin for creating standalone TV, kiosk, or digital signage display pages.
The plugin lets you create multiple custom TV display URLs and assign rotating content items to each display. Each display page is rendered independently from the active WordPress theme, without the normal header, footer, menus, sidebars, or page layout.
Features
- Create multiple standalone TV display pages.
- Each display gets its own public URL, for example
/tv-display/reception-screen/. - Display pages are rendered without the WordPress theme header and footer.
- Add unlimited TV items and assign them to a specific display.
- Rotate automatically between assigned TV items.
- Support for featured images, image carousels, and direct video URLs.
- Generate a QR code for each TV item.
- Set a custom slide duration per item.
- Set a default slide duration per display.
- Auto-refresh display pages after a defined number of minutes.
- Choose between two layouts:
- Media left / QR right
- QR left / Media right
- Use keyboard arrows to manually move between slides.
Plugin Structure
/tv-screen-display
├── assets
│ ├── css
│ │ └── tv-screen.css
│ └── js
│ ├── admin.js
│ └── tv-screen.js
├── tv-screen-display.php
└── README.txt
Installation
Option 1: Upload through WordPress admin
- Download or export the plugin as a
.zipfile. - Go to WordPress Admin → Plugins → Add New → Upload Plugin.
- Upload
tv-screen-display.zip. - Activate the plugin.
Option 2: Upload manually
- Upload the plugin folder to:
/wp-content/plugins/tv-screen-display/
- Go to WordPress Admin → Plugins.
- Activate TV Screen Display.
After activation, WordPress rewrite rules are flushed automatically so the display URLs can work correctly.
Admin Usage
After activation, a new admin menu appears:
TV Displays
From there, you can manage both display pages and display items.
Creating a TV Display
- Go to TV Displays → Add New.
- Add a title, for example:
Reception Screen
- Configure the display settings.
- Publish the display.
- Copy the generated standalone TV URL from the display settings box.
The URL will look like this:
https://yourwebsite.com/tv-display/reception-screen/
Open this URL directly on the TV screen, browser, kiosk device, or mini PC.
TV Display Settings
Each TV Display includes the following settings:
| Setting | Description |
|---|---|
| Small label | Short text displayed above the item title. Default: Scan to open. |
| QR caption | Text displayed below the QR code. Default: Scan the QR code to learn more. |
| Default slide duration | Default time in seconds for each slide when an item does not have its own duration. |
| Auto-refresh page every | Refreshes the TV page every X minutes. Use 0 to disable auto-refresh. |
| Layout | Choose whether the media appears on the left or on the right. |
Creating TV Items
- Go to TV Displays → TV Items → Add New.
- Add a title.
- Assign the item to a TV Display.
- Select the media type.
- Add the related media and QR URL.
- Publish the item.
Only published TV Items assigned to a specific display will appear on that display page.
TV Item Settings
Each TV Item includes the following settings:
| Setting | Description |
|---|---|
| TV Display | The display page where this item should appear. |
| Media type | Choose between featured image, image carousel, or video. |
| Carousel images | Select multiple images from the WordPress Media Library. Used only for carousel items. |
| Video URL | Direct video URL. Direct .mp4 files are recommended for reliable TV autoplay. |
| QR URL | The URL encoded into the QR code. |
| Slide duration | Time in seconds for this specific item. Leave empty to use the display default. |
| Optional short text | A short description shown below the item title. |
Media Types
Featured Image
Use this when the item should display a single image.
- Set Media type to
Featured image. - Add a featured image to the TV Item.
Image Carousel
Use this when the item should rotate between multiple images.
- Set Media type to
Image carousel. - Click Select carousel images.
- Choose multiple images from the WordPress Media Library.
Carousel images rotate automatically inside the active slide.
Video
Use this when the item should display a video.
- Set Media type to
Video. - Add a direct video URL.
For best results, use a direct .mp4 file uploaded to WordPress or hosted on your own server.
YouTube, Vimeo, or embedded video URLs are not recommended for TV autoplay because many browsers and TV devices block or restrict embedded autoplay.
QR Code Generation
Each TV Item can have its own QR URL. The generated QR code is displayed next to the title and optional description.
In the current starter version, QR codes are generated using:
https://api.qrserver.com
This means the TV screen needs internet access to load the generated QR image.
For a production version that must work offline or avoid external services, the QR code generation should be replaced with a local bundled QR library.
Display Page Behavior
The standalone TV page:
- Loads only the plugin display layout.
- Does not load the active theme header.
- Does not load the active theme footer.
- Does not display WordPress menus, sidebars, or normal page content.
- Rotates automatically through all assigned published TV Items.
- Restarts videos when their slide becomes active.
- Moves to the next slide when a video ends.
- Supports left and right keyboard arrow navigation.
- Can auto-refresh after a defined number of minutes.
URL Structure
TV Displays use the following URL structure:
/tv-display/display-slug/
Examples:
/tv-display/reception-screen/
/tv-display/event-screen/
/tv-display/waiting-room-screen/
Recommended TV Setup
For best results:
- Open the standalone display URL in a browser.
- Put the browser in fullscreen mode.
- Use a mini PC, laptop, Android TV box, or browser-supported smart TV.
- Use direct
.mp4videos instead of embedded video platforms. - Keep image and video file sizes optimized for smooth playback.
- Enable auto-refresh if the content will be updated during the day.
Development Notes
The plugin registers two custom post types:
| Post Type | Purpose |
|---|---|
tsd_display |
Stores each standalone TV display page. |
tsd_item |
Stores the content items assigned to TV displays. |
Main plugin file:
tv-screen-display.php
Front-end assets:
assets/css/tv-screen.css
assets/js/tv-screen.js
Admin asset:
assets/js/admin.js
Future Improvements
Possible improvements for a later version:
- Replace external QR generation with a local bundled QR code library.
- Add color/style settings per display.
- Add custom logo support.
- Add scheduling options for TV Items.
- Add start and end dates for each item.
- Add categories or playlists.
- Add drag-and-drop ordering for TV Items.
- Add transition style options.
- Add support for portrait screens.
- Add REST API support for remote content updates.
Requirements
- WordPress 6.0 or newer recommended.
- PHP 7.4 or newer recommended.
- A modern browser on the TV/device.
- Internet access for QR generation in the current starter version.
Author
Giannis Sifakis
LinkedIn Profile