Description
Football Studio by IBPSports turns WordPress into a complete football (soccer) website for clubs, leagues and tournament organisers. Enter a result once — the league table, knockout tie winners, top scorers and team statistics update automatically.
Built only for football, it models real competitions properly: league seasons, cups and multi-stage tournaments with a group stage followed by knockout rounds — including two-legged ties, best-of series, extra time, penalty shoot-outs and awarded matches.
Free with no limits: unlimited leagues, seasons, tournaments, teams, players and matches. No add-ons, no extra plugins, no monthly fees and no external services. 19 languages included.
Who is it for?
- Football clubs — Build your club website: teams, season squads, player and staff profiles, fixtures, results and player statistics.
- Football leagues — Run every season in one place: schedule matches, enter results, and publish league tables, top scorers and team stats that update automatically.
- Tournament organisers — Create group stages and knockout rounds with single-leg ties, two-legged ties or best-of series, and the winner of each tie is decided automatically.
- Football associations — Manage several leagues, cups and age groups, with all their clubs, players, referees and stadiums, from one dashboard.
- Fan and news sites — Cover real competitions like the World Cup or the Euro with match pages, lineups, events and statistics.
Why Football Studio?
- Automatic league tables. Standings recalculate from results, with form (W/D/L), position legends and configurable ranking rules: points, goal difference, goals scored, head-to-head, wins, win % and points per game.
- Real cup and tournament formats. Round-robin groups and knockout rounds in the same tournament, with single-leg or two-legged ties, best-of series, aggregate scores and automatically decided tie winners.
- A full match centre. Goals, assists, own goals, penalties, cards, substitutions, lineups (starting XI + bench + coach), team match statistics and a written match report.
- Fast data entry. Enter results for many matches on one screen, schedule matches from one grid, and import teams, players, staff, referees and stadiums from a spreadsheet.
- See it working in one click. The Demo Data page installs a complete sample league or the full UEFA EURO 2024 tournament — teams, squads, results, events and lineups — and removes it again just as easily.
- Works with any theme. Everything is shown through shortcodes and templates you can override from your theme — no page builder needed. A built-in reference documents every shortcode and parameter.
- Search-engine ready. Match, team, player and stadium pages include schema.org structured data (JSON-LD), so search engines understand what each page is about.
- Developer-friendly. Clean
ibps_football/*filters for league types, ranking criteria, standing/stat columns, positions and more.
LINKS AND DOCUMENTATION
Plugin Demo: Acme League – a complete league season | UEFA EURO 2024 – group stage + knockout rounds
Plugin Overview
Knowledge Base | Shortcodes
Features
Performance: custom database tables, not post meta
* 18 dedicated, indexed tables for matches, events, lineups, standings, squads, knockout ties and statistics — the data is queried directly, never rebuilt from thousands of post meta rows
* Standings are stored and recalculated only when a result changes, so a league table is one quick read
* Match lists load team links, logos and tournament data in batches, not one query per row
* Lightweight frontend: no jQuery, responsive layouts with CSS container queries
* Portable: all plugin data lives in its own ibpf_ tables
Competitions — everything in the free version
* Unlimited leagues (domestic league, cup, international, national teams, friendlies), seasons and tournaments
* Multi-stage tournaments: round-robin stages with any number of groups, then knockout rounds
* Knockout formats: single-leg, two-legged (aggregate) and best-of series (3, 5, 7, 9), a 3rd place round, and the tie winner decided automatically
* Per-tournament points rules (incl. separate points for overtime/penalty wins) and ranking rules: points, goal difference, goals scored, head-to-head, wins, win % and points per game
Standings
* Automatic league tables with W/D/L form guide and coloured position legends (promotion, qualification, relegation)
* Pre-defined starting values per team and group: matches, wins, draws, losses, goals for and against, and points — start a table mid-season or carry points over from an earlier stage
* Penalty points (point deductions) per team, included in the ranking; sanctioned teams are marked with * and an optional “PP” column shows the deduction
* Show a full table, one group, selected teams only, or a window of positions around one team
Match centre
* Status (scheduled, live with LIVE badge, finished, awarded, postponed, cancelled), half-time, extra time and penalty shoot-out
* Event timeline: goals with assists, own goals, penalties, missed penalties, cards and substitutions
* Lineups: starting XI and bench with shirt numbers, positions, captain, formation and head coach
* Match statistics: possession, shots, shots on target, passes, corners, offsides, fouls, saves, cards and expected goals (xG)
* Written match report; every section is also available as its own shortcode
Statistics — calculated automatically from results, events and lineups
* Player rankings: goals, assists, goals + assists, own goals, yellow and red cards, card points, penalties taken, scored and missed, penalty conversion %
* Team rankings: matches, goals scored and conceded, averages per match, own goals, clean sheets, penalties for and against, penalty saves, cards and card points
* Player season totals and match-by-match history; appearances counted from the lineups
* For any league, season, tournament or stage; choose columns, sort order, rows and player image (photo, flag or crest)
Teams, players and people
* Team profiles with logo, colours, stadium, head coach and a separate squad for every season; club and national teams
* Player profiles with photo, nationality, position, shirt number, birthday and biography
* Coaches, staff and referees with their own pages; stadiums with capacity, surface and matches played
Fast data entry
* Schedule a whole round of fixtures from one grid; enter the results of a whole matchday on one screen
* Spreadsheet-style import for teams, players, staff, referees and stadiums — paste from Excel or Google Sheets
* One-click Demo Data: a complete sample league or the full UEFA EURO 2024 tournament, removable again
25 shortcodes, 130+ parameters
* Every part of your football site is a shortcode: league and season hubs, tournaments, standings, knockout rounds, fixtures and results, teams, players, player and team statistics, staff, referees and stadiums
* The match page as a whole, or any of its 6 sections on its own: header, info, events, lineups, statistics or report
* More than 130 parameters to tailor the output: filter by league, season, tournament, stage, group, matchday, team or date range; choose the layout (list, table, card), columns, sort order, number of rows, title, header, logos, photos or flags, highlighted teams and more — the fixtures shortcode alone has 21 options
* Point-and-click shortcode builder in the editor, copy-ready shortcodes with the right IDs on every tournament dashboard, and a built-in reference that documents every shortcode and parameter
* Works in the block editor, the Classic Editor, widgets and any page builder that supports shortcodes
Built for your website
* Works with any theme; every template can be overridden from your theme
* schema.org structured data (JSON-LD) and breadcrumbs on all entity pages for search engines
* Changeable URL slugs (e.g. /team/ instead of /ibpf-team/)
* 17 developer filters (ibps_football/*) for positions, staff jobs, ranking criteria, standings columns and cells, page sections, structured data and more
* 19 languages included; no add-ons, no extra plugins, no limits
Full documentation of every shortcode and parameter: Knowledge Base.
Available Languages
- English – English ( en_US )
- Croatian – Hrvatski ( hr )
- Czech – Čeština ( cs_CZ )
- Danish – Dansk ( da_DK )
- Dutch – Nederlands ( nl_NL )
- Finnish – Suomi ( fi )
- French – Français ( fr_FR )
- German – Deutsch ( de_DE )
- Hungarian – Magyar ( hu_HU )
- Italian – Italiano ( it_IT )
- Lithuanian – Lietuvių ( lt_LT )
- Polish – Polski ( pl_PL )
- Portuguese (Brazil) – Português do Brasil ( pt_BR )
- Portuguese (Portugal) – Português ( pt_PT )
- Romanian – Română ( ro_RO )
- Slovak – Slovenčina ( sk_SK )
- Spanish – Español ( es_ES )
- Swedish – Svenska ( sv_SE )
- Ukrainian – Українська ( uk )
Screenshots












Installation
Requirements
- WordPress 6.2 or greater
- PHP 7.4 or greater
- MySQL 5.6 or greater
Steps
- Upload the plugin folder to
/wp-content/plugins/or install via the WordPress plugin installer. - Activate the plugin through the Plugins menu in WordPress.
- Navigate to Football Studio in the admin sidebar to begin setup.
- Optional: open Football Settings Demo Data and install a sample league to see every feature with real-looking data.
FAQ
-
Can I try it with sample data first?
-
Yes. Football Settings Demo Data installs a complete fictional league (Acme League: 14 clubs, squads, 94 matches with results, events and lineups) or the full UEFA EURO 2024 tournament (24 teams, all 51 matches). The demo data is added next to your own data, and “Remove data” deletes exactly what it created.
-
Can I deduct points from a team, or start the table with existing values?
-
Yes. On the group’s settings page, the Initial Data table lets you enter pre-defined starting values for every team — matches, wins, draws, losses, goals and points — for example when you start using the plugin in the middle of a season, or to carry points over from a previous stage. The same table has a Penalty Points column for sanctions: enter a negative value (e.g. −6), the points are deducted and the team is marked with * in the standings.
-
Does it support both leagues and knockout cups?
-
Yes. A tournament can have round-robin (group) stages, knockout (round) stages, or both, with automatic standings and automatically decided knockout ties.
-
Can I run a group stage followed by knockout rounds, like the World Cup or the Euro?
-
Yes. Add a round-robin stage with as many groups as you need, then a knockout stage with its rounds (e.g. Round of 16, Quarter-finals, Semi-finals, Final). The EURO 2024 demo is built exactly this way.
-
Does it support two-legged ties, best-of series and penalty shoot-outs?
-
Yes. Each knockout round is played as single-leg ties, two-legged ties (decided on aggregate) or best-of series. Extra time and penalty shoot-outs are recorded per match, and the winner of the tie is decided automatically as soon as the format decides it.
-
How do I show the league table on a page?
-
Add the
[ibpf-standings tournament_id="123"]shortcode to any page or post (usegroup_idfor one group only). The Shortcodes box on the tournament dashboard gives you copy-ready shortcodes with the right IDs, and Football Settings Shortcodes documents every parameter. -
Can I show fixtures and results for one team only?
-
Yes. Use
[ibpf-matches team_id="12" type="fixtures"]for upcoming matches ortype="results"for played ones. You can also filter by tournament, stage, group, matchday and date range. -
Can I import data in bulk?
-
Yes. Football Settings Data Import lets you add teams, players, staff, referees and stadiums in a spreadsheet-style grid (you can paste straight from Excel or Google Sheets). Matches are created on the Schedule Matches screen of each tournament.
-
Does this work with any theme?
-
Yes. Frontend output uses shortcodes and templates that are independent of your active theme, and templates can be overridden from your theme.
-
Does it work with the block editor (Gutenberg)?
-
Yes. Paste any shortcode into a Shortcode block. In the Classic Editor, the IBP Football button inserts shortcodes for you.
-
Does it help with SEO?
-
Every match, team, player, staff, referee, stadium, tournament and league page includes schema.org structured data (SportsEvent, SportsTeam, Person, StadiumOrArena, SportsOrganization) and breadcrumbs, so search engines understand what each page is about. It works alongside Yoast SEO, Rank Math and other SEO plugins, and can be switched off in Football Settings General Search Engines.
-
Where is data stored?
-
All plugin data is stored in dedicated custom database tables (prefixed
ibpf_) for performance and portability.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Football Studio – Soccer League, Tournament & Club Manager” is open source software. The following people have contributed to this plugin.
Contributors“Football Studio – Soccer League, Tournament & Club Manager” has been translated into 3 locales. Thank you to the translators for their contributions.
Translate “Football Studio – Soccer League, Tournament & Club Manager” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.8 – 2026-10-06
- New Demo Data page (Football Settings Demo Data) – install a complete sample league (Acme League) or the full UEFA EURO 2024 tournament in one click, and remove it again just as easily
- New – schema.org structured data (JSON-LD) on match, team, player, staff, referee, stadium, tournament and league pages, so search engines understand what each page is about; can be switched off in Football Settings General Search Engines
- Standings – penalty points (Group settings Initial Data) are now deducted in every frontend table, including the tournament and team pages, and the team is marked with * (the deduction is shown on hover); the Initial Data starting values are now included by default, so the points always match the order of the table
- Data cleanup – permanently deleting a match now also deletes its lineups and refreshes the group table and knockout tie it counted in; permanently deleting a team now also deletes its season squads and its rows in group tables (the other teams are re-ranked), and removes it as the current club / national team of its players; deleting a player removes the player’s squads and transfers but keeps the match history – lineups, goals, cards and assists stay with the player’s name; deleting a staff member removes the coach entries in lineups and the head-coach link of the team; deleting a referee clears it from its matches
- Translations – all 18 languages updated: new strings translated, unused strings removed, translation template (.pot) regenerated
- Teams Stats shortcode – only the metrics shown in the table are calculated, for faster loading
- readme.txt – new plugin title, description, “Who is it for?” section, extended FAQ and new screenshots
- Requirements – the minimum PHP version is now 7.4
- Frontend styles – minor UI tweaks to the shortcode output
1.0.7 – 2026-09-28
- Admin screens – code and asset optimization for faster loading
- Frontend – code and asset optimization: unused scripts and styles removed from the shortcode assets
- Matches shortcode – query optimization: match and team links and team and tournament logos are now loaded in one batch instead of one query per row
- Fixed the documentation URL for every screen that shows the Help box.
- Admin screens – removed the unmaintained Chosen library; all dropdowns now use Tom Select
- Matches – fixed a match decided on penalties having no winner when overtime/penalty points rules are off
- Frontend styles – minor UI tweaks to the shortcode output
1.0.6 – 2026-09-18
- Matches shortcode – matches in the Live status are now marked in every layout with a blinking LIVE badge
- Tournament, Team and Stadium shortcodes – embedded standings, teams and top player stats are now rendered directly from the template instead of through nested shortcodes.
- New shortcode [ibpf-knockouts] – lists every match of a tournament’s knockout stages, grouped by round, with the team that won the tie marked; parameters: tournament_id, stage_id, round_id, show_header(yes/no) and title
- Tournament shortcode – the knockout section now uses the same output as [ibpf-knockouts]: single-leg rounds are shown as a plain match list, two-legged ties list both legs, and best-of series show the series score above their games
- Match shortcode – knockout matches now show the round name (Semi-final, Final…) in the header instead of a matchday number
- Players Stats shortcode – in a National Teams competition the team column now shows the player’s national team and its crest instead of his club
- Admin screens – added new Shortcodes box with copy-ready example shortcodes
- Admin Insert Results page – the tie winner is now only set once the format decides it: after the match in a single-leg round, after both legs in a two-legged tie, and when a team reaches the required wins in a best-of series; entering an early result no longer clears a winner that was already set, and a single-leg tie decided on penalties is now recognised
- Player and Staff shortcode Recent matches – fixed drawn matches being shown as a loss in the Res column
- Frontend styles – minor UI tweaks to the shortcode output
1.0.5 – 2026-09-14
- Standings shortcode – added new parameter ‘Only teams’ – Restrict the table to only entered teams IDs
- Match Lineups shortcode – added new parameter ‘show_badges'(yes/no) – display goal, own-goal, card and captain marks after the player name.
- Match Events shortcode – added new parameters: ‘events’ – choose which rows to show (goals, own goals, missed penalties, cards, substitutions), ‘show_assists'(yes/no) – display the assisting player under a goal, ‘show_marks'(yes/no) – display the Kick-off, Half-time, Extra-time and Full-time rows
- New shortcode [ibpf-match-header] – displays only the match header section (teams, crests, score, scorers, venue and referee), with the match_id parameter
- Tournament shortcode – knockout rounds with the Single-leg or Two-legged format are now shown as a plain match list instead of tie boxes, with the team that won the tie marked by an arrow; the tie boxes are still used when the round has no matches yet
- Admin Insert Results page – fixed results entered for knockout matches not updating the tie (winner, aggregate and progression); deleting a knockout match from this page now refreshes the tie as well
- Frontend styles – minor UI tweaks to the shortcode output
1.0.4 – 2026-09-09
- Match kick-off time is now hidden everywhere a match is shown when the tournament setting Match Kick-off Time is off
- Football Settings – new Permalinks tab where the URL slug of every content type (matches, teams, players, stadiums, leagues, seasons, staff, referees, tournaments) can be changed, defaulting to the ibpf- prefix; slugs reserved by WordPress or already used by another type are rejected, and permalinks are refreshed on save
- Tournament shortcode – standings section now renders every stage in order — round-robin stages as standings tables, knockout stages as bracket rounds — with the stage name shown as a heading on multi-stage tournaments and empty stages skipped
- Standings shortcode – table header no longer repeats the group name when a stage has only one group
- Frontend styles – minor UI tweaks to the shortcode output
1.0.3 – 2026-08-28
- added Croatian – Hrvatski ( hr ), Czech – Čeština ( cs_CZ ), Danish – Dansk ( da_DK ), Finnish – Suomi ( fi ), Hungarian – Magyar ( hu_HU ), Lithuanian – Lietuvių ( lt_LT ), Portuguese (Portugal) – Português ( pt_PT ),Romanian – Română ( ro_RO ), Slovak – Slovenčina ( sk_SK ),Swedish – Svenska ( sv_SE ) language files
- Match shortcode Events section and [ibpf-match-events] shortcode – the timeline now shows Kick-off, Half-time and Full-time markers around the events, plus an Extra-time marker after the 90th minute when the match went to extra time
- Teams Stats shortcode – goals, goals conceded, averages and clean sheets are now taken from the match score instead of requiring match events, cards and the advanced columns also read the Match Stats grid, the missing percentage columns were added, columns with no data behind them show a dash instead of 0, and awarded matches now count as played without adding goals or clean sheets
- Frontend styles – minor UI tweaks to the shortcode output
1.0.2 – 2026-08-26
- added German (de_DE), Italian (it_IT), Dutch (nl_NL), Polish (pl_PL), Portuguese-Brasil (pt_BR) and Ukrainian (uk) language files
- Match shortcode Lineups section and [ibpf-match-lineup] shortcode – the team coach is now shown as the last entry of each lineup card, under a “Coach” heading, with photo or nationality flag (following the Player Image setting), a link to the staff page and the job title
1.0.1 – 2026-08-19
- added Spanish (es_ES) and French (fr_FR) language files
- Stadium shortcode – moved the About section into its own block for a cleaner layout
- Admin Schedule Matches page – fixed Home team, Away team, and Stadium dropdowns not opening
- Frontend styles – minor UI tweaks to the shortcode output
- Admin Match Events – fixed the “Create” button in the Add New player quick-add form doing nothing
- Player shortcode Season totals – fixed Matches Played missing appearances with no event; starting eleven appearances are now counted from the lineups
- Player shortcode Recent matches – matches started by the player with no recorded event are now listed
1.0.0 – 2026-07-18
- Initial public release
