{"id":336835,"date":"2026-07-18T06:42:13","date_gmt":"2026-07-18T06:42:13","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ibpsports-football-manager\/"},"modified":"2026-10-20T14:58:15","modified_gmt":"2026-10-20T14:58:15","slug":"ibpsports-football-studio","status":"publish","type":"plugin","link":"https:\/\/id.wordpress.org\/plugins\/ibpsports-football-studio\/","author":23521738,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.9","stable_tag":"1.0.9","tested":"7.1.3","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"IBPSports Football Studio","header_author":"IBPSports","header_description":"Advanced management system for your football(soccer) club, competition, league or news website. Manage players, teams, games, tournaments, standings and playoffs.","assets_banners_color":"b4b4b4","last_updated":"2026-10-20 14:58:15","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/football.ibpsports.net","header_author_uri":"https:\/\/ibpsports.net","rating":0,"author_block_rating":0,"active_installs":10,"downloads":871,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"ibpsports","date":"2026-08-20 07:12:08","revision":3656086},"1.0.2":{"tag":"1.0.2","author":"ibpsports","date":"2026-08-26 14:13:59","revision":3667222},"1.0.3":{"tag":"1.0.3","author":"ibpsports","date":"2026-08-28 08:14:10","revision":3670010},"1.0.4":{"tag":"1.0.4","author":"ibpsports","date":"2026-09-09 06:31:34","revision":3687691},"1.0.5":{"tag":"1.0.5","author":"ibpsports","date":"2026-09-14 09:42:23","revision":3694888},"1.0.6":{"tag":"1.0.6","author":"ibpsports","date":"2026-09-18 05:29:39","revision":3701341},"1.0.7":{"tag":"1.0.7","author":"ibpsports","date":"2026-09-28 11:19:08","revision":3717015},"1.0.8":{"tag":"1.0.8","author":"ibpsports","date":"2026-10-06 08:42:21","revision":3730319},"1.0.9":{"tag":"1.0.9","author":"ibpsports","date":"2026-10-20 14:58:15","revision":3756954}},"upgrade_notice":{"1.0.9 - 2026-10-20":"<ul>\n<li>Match Lineups shortcode - goalkeepers and the captain&#039;s are now marked with a new icons; both show a tooltip on hover<\/li>\n<li>Friendly matches - friendly matches without a tournament now show &quot;Friendly&quot; in place of the tournament name: in the Matches shortcode (table, list and card layouts), in the Match shortcode header, and in the Last Matches tables of the Referee, Stadium and Staff shortcodes<\/li>\n<li>Last Matches tables (Player, Referee, Venue, Staff) - the tournament name now links to the tournament page<\/li>\n<li>Knockouts shortcode - rounds are now listed from last to first (Final first), also in the knockout section of the Tournament shortcode<\/li>\n<li>Fixed - the Leg field of knockout matches was limited to 2; it now accepts any leg number, so best-of-three, five, seven or nine series can be entered<\/li>\n<li>Teams Stats shortcode - the sorted column is highlighted and the top rows are marked like the standings legend<\/li>\n<li>Players Stats shortcodes (table and single value) - new Team ID filter (team_id): shows only the players of one team, with their stats for that team (goals, assists and cards scored for another club are not counted); also in the shortcode generator<\/li>\n<li>Fixed - shortcode generator forms now show the missing options: Show Header, Title and link toggles for Players Stats, Teams Stats and Matches, Sort Order for Players Stats (Single Value)<\/li>\n<li>Translations - optimized: duplicate and near-duplicate strings merged into one, labels made consistent<\/li>\n<li>Frontend styles \u2013 minor UI tweaks to the shortcode output<\/li>\n<\/ul>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3730248,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3730248,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3730271,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3689988,"resolution":"1544x500","location":"assets","locale":"","width":772,"height":250},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3689988,"resolution":"1544x500","location":"assets","locale":"","width":772,"height":250},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3689988,"resolution":"772x250","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3689988,"resolution":"772x250","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3730988,"resolution":"1","location":"assets","locale":"","width":1212,"height":1160},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3730988,"resolution":"10","location":"assets","locale":"","width":1271,"height":787},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3730988,"resolution":"11","location":"assets","locale":"","width":1251,"height":898},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3730988,"resolution":"12","location":"assets","locale":"","width":865,"height":1230},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3730988,"resolution":"2","location":"assets","locale":"","width":1176,"height":877},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3730988,"resolution":"3","location":"assets","locale":"","width":1208,"height":1060},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3730988,"resolution":"4","location":"assets","locale":"","width":1201,"height":1081},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3730988,"resolution":"5","location":"assets","locale":"","width":1193,"height":957},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3730988,"resolution":"6","location":"assets","locale":"","width":1215,"height":1012},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3730988,"resolution":"7","location":"assets","locale":"","width":1227,"height":1002},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3730988,"resolution":"8","location":"assets","locale":"","width":1190,"height":966},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3730988,"resolution":"9","location":"assets","locale":"","width":1253,"height":837}},"screenshots":{"1":"Match centre - final score, goal scorers, venue, referee and a minute-by-minute event timeline.","2":"League table - automatic standings with form guide and position legends (champions, relegation).","3":"Group stage - World Cup and Euro-style tournament groups with qualification places.","4":"Fixtures and results - matches grouped by matchday with scores and team crests.","5":"Match statistics - possession, shots, passes, corners, fouls and more, side by side.","6":"Lineups - starting XI with formation, shirt numbers, goals, cards and substitutions.","7":"Team profile - club details, home stadium, last results and upcoming fixtures.","8":"Player profile - personal details, season totals and recent matches.","9":"Admin - Insert Results: enter the scores of a whole matchday on one screen.","10":"Admin - Schedule Matches: create a round of fixtures from one grid.","11":"Admin - Match Events: goals, assists, cards and substitutions.","12":"Admin - Tournament settings: points rules, ranking rules and stages with groups."}},"plugin_section":[262246],"plugin_tags":[20781,1238,11108,1239,14116],"plugin_category":[37],"plugin_contributors":[272141],"plugin_business_model":[],"class_list":["post-336835","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-fixtures","plugin_tags-football","plugin_tags-league","plugin_tags-soccer","plugin_tags-tournament","plugin_category-arts-and-entertainment","plugin_contributors-ibpsports","plugin_committers-ibpsports"],"banners":{"banner":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/banner-772x250.png?rev=3689988","banner_2x":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/banner-1544x500.png?rev=3689988","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/icon.svg?rev=3730271","icon":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/icon.svg?rev=3730271","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/screenshot-1.png?rev=3730988","caption":"Match centre - final score, goal scorers, venue, referee and a minute-by-minute event timeline."},{"src":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/screenshot-2.png?rev=3730988","caption":"League table - automatic standings with form guide and position legends (champions, relegation)."},{"src":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/screenshot-3.png?rev=3730988","caption":"Group stage - World Cup and Euro-style tournament groups with qualification places."},{"src":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/screenshot-4.png?rev=3730988","caption":"Fixtures and results - matches grouped by matchday with scores and team crests."},{"src":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/screenshot-5.png?rev=3730988","caption":"Match statistics - possession, shots, passes, corners, fouls and more, side by side."},{"src":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/screenshot-6.png?rev=3730988","caption":"Lineups - starting XI with formation, shirt numbers, goals, cards and substitutions."},{"src":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/screenshot-7.png?rev=3730988","caption":"Team profile - club details, home stadium, last results and upcoming fixtures."},{"src":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/screenshot-8.png?rev=3730988","caption":"Player profile - personal details, season totals and recent matches."},{"src":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/screenshot-9.png?rev=3730988","caption":"Admin - Insert Results: enter the scores of a whole matchday on one screen."},{"src":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/screenshot-10.png?rev=3730988","caption":"Admin - Schedule Matches: create a round of fixtures from one grid."},{"src":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/screenshot-11.png?rev=3730988","caption":"Admin - Match Events: goals, assists, cards and substitutions."},{"src":"https:\/\/ps.w.org\/ibpsports-football-studio\/assets\/screenshot-12.png?rev=3730988","caption":"Admin - Tournament settings: points rules, ranking rules and stages with groups."}],"raw_content":"<!--section=description-->\n<p>Football Studio by IBPSports turns WordPress into a complete football (soccer) website for clubs, leagues and tournament organisers. Enter a result once \u2014 the league table, knockout tie winners, top scorers and team statistics update automatically.<\/p>\n\n<p>Built only for football, it models real competitions properly: league seasons, cups and multi-stage tournaments with a group stage followed by knockout rounds \u2014 including two-legged ties, best-of series, extra time, penalty shoot-outs and awarded matches.<\/p>\n\n<p>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. 20+ languages included.<\/p>\n\n<h4>Who is it for?<\/h4>\n\n<ul>\n<li><strong>Football clubs<\/strong> \u2014 Build your club website: teams, season squads, player and staff profiles, fixtures, results and player statistics.<\/li>\n<li><strong>Football leagues<\/strong> \u2014 Run every season in one place: schedule matches, enter results, and publish league tables, top scorers and team stats that update automatically.<\/li>\n<li><strong>Tournament organisers<\/strong> \u2014 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.<\/li>\n<li><strong>Football associations<\/strong> \u2014 Manage several leagues, cups and age groups, with all their clubs, players, referees and stadiums, from one dashboard.<\/li>\n<li><strong>Fan and news sites<\/strong> \u2014 Cover real competitions like the World Cup or the Euro with match pages, lineups, events and statistics.<\/li>\n<\/ul>\n\n<h4>Why Football Studio?<\/h4>\n\n<ul>\n<li><strong>Automatic league tables.<\/strong> 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.<\/li>\n<li><strong>Real cup and tournament formats.<\/strong> 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.<\/li>\n<li><strong>A full match centre.<\/strong> Goals, assists, own goals, penalties, cards, substitutions, lineups (starting XI + bench + coach), team match statistics and a written match report.<\/li>\n<li><strong>Fast data entry.<\/strong> Enter results for many matches on one screen, schedule matches from one grid, and import teams, players, staff, referees and stadiums from a spreadsheet.<\/li>\n<li><strong>See it working in one click.<\/strong> The Demo Data page installs a complete sample league or the full UEFA EURO 2024 tournament \u2014 teams, squads, results, events and lineups \u2014 and removes it again just as easily.<\/li>\n<li><strong>Works with any theme.<\/strong> Everything is shown through shortcodes and templates you can override from your theme \u2014 no page builder needed. A built-in reference documents every shortcode and parameter.<\/li>\n<li><strong>Search-engine ready.<\/strong> Match, team, player and stadium pages include schema.org structured data (JSON-LD), so search engines understand what each page is about.<\/li>\n<li><strong>Developer-friendly.<\/strong> Clean <code>ibps_football\/*<\/code> filters for league types, ranking criteria, standing\/stat columns, positions and more.<\/li>\n<\/ul>\n\n<h4>LINKS AND DOCUMENTATION<\/h4>\n\n<p>Plugin Demo: <a href=\"https:\/\/football.ibpsports.net\/ibpf-tournament\/acme-league-2026-27\/\">Acme League \u2013 a complete league season<\/a> | <a href=\"https:\/\/football.ibpsports.net\/ibpf-tournament\/uefa-euro-2024\/\">UEFA EURO 2024 \u2013 group stage + knockout rounds<\/a>\n<a href=\"https:\/\/football.ibpsports.net\/plugin_overview\/\">Plugin Overview<\/a>\n<a href=\"https:\/\/football.ibpsports.net\/knowledge-base-2\/\">Knowledge Base<\/a> | <a href=\"https:\/\/football.ibpsports.net\/knowledge-base-2\/category\/shortcodes\/\">Shortcodes<\/a><\/p>\n\n<p>For futsal use <a href=\"https:\/\/wordpress.org\/plugins\/ibpsports-futsal-studio\/\">Futsal Studio<\/a><\/p>\n\n<h4>Features<\/h4>\n\n<p><strong>Performance: custom database tables, not post meta<\/strong>\n* 18 dedicated, indexed tables for matches, events, lineups, standings, squads, knockout ties and statistics \u2014 the data is queried directly, never rebuilt from thousands of post meta rows\n* Standings are stored and recalculated only when a result changes, so a league table is one quick read\n* Match lists load team links, logos and tournament data in batches, not one query per row\n* Lightweight frontend: no jQuery, responsive layouts with CSS container queries\n* Portable: all plugin data lives in its own <code>ibpf_<\/code> tables<\/p>\n\n<p><strong>Competitions \u2014 everything in the free version<\/strong>\n* Unlimited leagues (domestic league, cup, international, national teams, friendlies), seasons and tournaments\n* Multi-stage tournaments: round-robin stages with any number of groups, then knockout rounds\n* 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\n* 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<\/p>\n\n<p><strong>Standings<\/strong>\n* Automatic league tables with W\/D\/L form guide and coloured position legends (promotion, qualification, relegation)\n* Pre-defined starting values per team and group: matches, wins, draws, losses, goals for and against, and points \u2014 start a table mid-season or carry points over from an earlier stage\n* Penalty points (point deductions) per team, included in the ranking; sanctioned teams are marked with * and an optional \"PP\" column shows the deduction\n* Show a full table, one group, selected teams only, or a window of positions around one team<\/p>\n\n<p><strong>Match centre<\/strong>\n* Status (scheduled, live with LIVE badge, finished, awarded, postponed, cancelled), half-time, extra time and penalty shoot-out\n* Event timeline: goals with assists, own goals, penalties, missed penalties, cards and substitutions\n* Lineups: starting XI and bench with shirt numbers, positions, captain, formation and head coach\n* Match statistics: possession, shots, shots on target, passes, corners, offsides, fouls, saves, cards and expected goals (xG)\n* Written match report; every section is also available as its own shortcode<\/p>\n\n<p><strong>Statistics \u2014 calculated automatically from results, events and lineups<\/strong>\n* Player rankings: goals, assists, goals + assists, own goals, yellow and red cards, card points, penalties taken, scored and missed, penalty conversion %\n* Team rankings: matches, goals scored and conceded, averages per match, own goals, clean sheets, penalties for and against, penalty saves, cards and card points\n* Player season totals and match-by-match history; appearances counted from the lineups\n* For any league, season, tournament or stage; choose columns, sort order, rows and player image (photo, flag or crest)<\/p>\n\n<p><strong>Teams, players and people<\/strong>\n* Team profiles with logo, colours, stadium, head coach and a separate squad for every season; club and national teams\n* Player profiles with photo, nationality, position, shirt number, birthday and biography\n* Coaches, staff and referees with their own pages; stadiums with capacity, surface and matches played<\/p>\n\n<p><strong>Fast data entry<\/strong>\n* Schedule a whole round of fixtures from one grid; enter the results of a whole matchday on one screen\n* Spreadsheet-style import for teams, players, staff, referees and stadiums \u2014 paste from Excel or Google Sheets\n* One-click Demo Data: a complete sample league or the full UEFA EURO 2024 tournament, removable again<\/p>\n\n<p><strong>25+ shortcodes, 130+ parameters<\/strong>\n* 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\n* The match page as a whole, or any of its 6 sections on its own: header, info, events, lineups, statistics or report\n* 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 \u2014 the fixtures shortcode alone has 21 options\n* 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\n* Works in the block editor, the Classic Editor, widgets and any page builder that supports shortcodes<\/p>\n\n<p><strong>Built for your website<\/strong>\n* Works with any theme; every template can be overridden from your theme\n* schema.org structured data (JSON-LD) and breadcrumbs on all entity pages for search engines\n* Changeable URL slugs (e.g. \/team\/ instead of \/ibpf-team\/)\n* 17+ developer filters (<code>ibps_football\/*<\/code>) for positions, staff jobs, ranking criteria, standings columns and cells, page sections, structured data and more\n* 20+ languages included; no add-ons, no extra plugins, no limits<\/p>\n\n<p>Full documentation of every shortcode and parameter: <a href=\"https:\/\/football.ibpsports.net\/knowledge-base-2\/category\/shortcodes\/\">Knowledge Base<\/a>.<\/p>\n\n<h4>Available Languages<\/h4>\n\n<ul>\n<li>English \u2013 English ( en_US )<\/li>\n<li>English (UK) \u2013 English (UK) ( en_GB ) thanks @jdab<\/li>\n<li>Croatian \u2013 Hrvatski ( hr )<\/li>\n<li>Czech \u2013 \u010ce\u0161tina ( cs_CZ ) thanks @kalich5<\/li>\n<li>Danish \u2013 Dansk ( da_DK )<\/li>\n<li>Dutch \u2013 Nederlands ( nl_NL ) thanks @psmits1567<\/li>\n<li>Finnish \u2013 Suomi ( fi )<\/li>\n<li>French \u2013 Fran\u00e7ais ( fr_FR )<\/li>\n<li>German \u2013 Deutsch ( de_DE )<\/li>\n<li>Greek \u2013 \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac ( el )<\/li>\n<li>Hungarian \u2013 Magyar ( hu_HU )<\/li>\n<li>Italian \u2013 Italiano ( it_IT )<\/li>\n<li>Japanese \u2013 \u65e5\u672c\u8a9e ( ja )<\/li>\n<li>Lithuanian \u2013 Lietuvi\u0173 ( lt_LT )<\/li>\n<li>Polish \u2013 Polski ( pl_PL )<\/li>\n<li>Portuguese (Brazil) \u2013 Portugu\u00eas do Brasil ( pt_BR )<\/li>\n<li>Portuguese (Portugal) \u2013 Portugu\u00eas ( pt_PT )<\/li>\n<li>Romanian \u2013 Rom\u00e2n\u0103 ( ro_RO ) thanks @dancaragea<\/li>\n<li>Slovak \u2013 Sloven\u010dina ( sk_SK )<\/li>\n<li>Spanish \u2013 Espa\u00f1ol ( es_ES )<\/li>\n<li>Swedish \u2013 Svenska ( sv_SE ) thanks @tobifjellner<\/li>\n<li>Turkish \u2013 T\u00fcrk\u00e7e ( tr_TR ) thanks @emre<\/li>\n<li>Ukrainian \u2013 \u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430 ( uk )<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.2 or greater<\/li>\n<li>PHP 7.4 or greater<\/li>\n<li>MySQL 5.6 or greater<\/li>\n<\/ul>\n\n<h4>Steps<\/h4>\n\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via the WordPress plugin installer.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Navigate to <strong>Football Studio<\/strong> in the admin sidebar to begin setup.<\/li>\n<li>Optional: open <strong>Football Settings \u2192 Demo Data<\/strong> and install a sample league to see every feature with real-looking data.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20try%20it%20with%20sample%20data%20first%3F\"><h3>Can I try it with sample data first?<\/h3><\/dt>\n<dd><p>Yes. Football Settings \u2192 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.<\/p><\/dd>\n<dt id=\"can%20i%20deduct%20points%20from%20a%20team%2C%20or%20start%20the%20table%20with%20existing%20values%3F\"><h3>Can I deduct points from a team, or start the table with existing values?<\/h3><\/dt>\n<dd><p>Yes. On the group's settings page, the Initial Data table lets you enter pre-defined starting values for every team \u2014 matches, wins, draws, losses, goals and points \u2014 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. \u22126), the points are deducted and the team is marked with * in the standings.<\/p><\/dd>\n<dt id=\"does%20it%20support%20both%20leagues%20and%20knockout%20cups%3F\"><h3>Does it support both leagues and knockout cups?<\/h3><\/dt>\n<dd><p>Yes. A tournament can have round-robin (group) stages, knockout (round) stages, or both, with automatic standings and automatically decided knockout ties.<\/p><\/dd>\n<dt id=\"can%20i%20run%20a%20group%20stage%20followed%20by%20knockout%20rounds%2C%20like%20the%20world%20cup%20or%20the%20euro%3F\"><h3>Can I run a group stage followed by knockout rounds, like the World Cup or the Euro?<\/h3><\/dt>\n<dd><p>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 <a href=\"https:\/\/football.ibpsports.net\/ibpf-tournament\/uefa-euro-2024\/\">EURO 2024 demo<\/a> is built exactly this way.<\/p><\/dd>\n<dt id=\"does%20it%20support%20two-legged%20ties%2C%20best-of%20series%20and%20penalty%20shoot-outs%3F\"><h3>Does it support two-legged ties, best-of series and penalty shoot-outs?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"how%20do%20i%20show%20the%20league%20table%20on%20a%20page%3F\"><h3>How do I show the league table on a page?<\/h3><\/dt>\n<dd><p>Add the <code>[ibpf-standings tournament_id=\"123\"]<\/code> shortcode to any page or post (use <code>group_id<\/code> for one group only). The Shortcodes box on the tournament dashboard gives you copy-ready shortcodes with the right IDs, and Football Settings \u2192 Shortcodes documents every parameter.<\/p><\/dd>\n<dt id=\"can%20i%20show%20fixtures%20and%20results%20for%20one%20team%20only%3F\"><h3>Can I show fixtures and results for one team only?<\/h3><\/dt>\n<dd><p>Yes. Use <code>[ibpf-matches team_id=\"12\" type=\"fixtures\"]<\/code> for upcoming matches or <code>type=\"results\"<\/code> for played ones. You can also filter by tournament, stage, group, matchday and date range.<\/p><\/dd>\n<dt id=\"can%20i%20import%20data%20in%20bulk%3F\"><h3>Can I import data in bulk?<\/h3><\/dt>\n<dd><p>Yes. Football Settings \u2192 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.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20any%20theme%3F\"><h3>Does this work with any theme?<\/h3><\/dt>\n<dd><p>Yes. Frontend output uses shortcodes and templates that are independent of your active theme, and templates can be overridden from your theme.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20editor%20%28gutenberg%29%3F\"><h3>Does it work with the block editor (Gutenberg)?<\/h3><\/dt>\n<dd><p>Yes. Paste any shortcode into a Shortcode block. In the Classic Editor, the IBP Football button inserts shortcodes for you.<\/p><\/dd>\n<dt id=\"does%20it%20help%20with%20seo%3F\"><h3>Does it help with SEO?<\/h3><\/dt>\n<dd><p>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 \u2192 General \u2192 Search Engines.<\/p><\/dd>\n<dt id=\"where%20is%20data%20stored%3F\"><h3>Where is data stored?<\/h3><\/dt>\n<dd><p>All plugin data is stored in dedicated custom database tables (prefixed <code>ibpf_<\/code>) for performance and portability.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.9 - 2026-10-20<\/h4>\n\n<ul>\n<li>Match Lineups shortcode - goalkeepers and the captain's are now marked with a new icons; both show a tooltip on hover<\/li>\n<li>Friendly matches - friendly matches without a tournament now show \"Friendly\" in place of the tournament name: in the Matches shortcode (table, list and card layouts), in the Match shortcode header, and in the Last Matches tables of the Referee, Stadium and Staff shortcodes<\/li>\n<li>Last Matches tables (Player, Referee, Venue, Staff) - the tournament name now links to the tournament page<\/li>\n<li>Knockouts shortcode - rounds are now listed from last to first (Final first), also in the knockout section of the Tournament shortcode<\/li>\n<li>Fixed - the Leg field of knockout matches was limited to 2; it now accepts any leg number, so best-of-three, five, seven or nine series can be entered<\/li>\n<li>Teams Stats shortcode - the sorted column is highlighted and the top rows are marked like the standings legend<\/li>\n<li>Players Stats shortcodes (table and single value) - new Team ID filter (team_id): shows only the players of one team, with their stats for that team (goals, assists and cards scored for another club are not counted); also in the shortcode generator<\/li>\n<li>Fixed - shortcode generator forms now show the missing options: Show Header, Title and link toggles for Players Stats, Teams Stats and Matches, Sort Order for Players Stats (Single Value)<\/li>\n<li>Translations - optimized: duplicate and near-duplicate strings merged into one, labels made consistent<\/li>\n<li>Frontend styles \u2013 minor UI tweaks to the shortcode output<\/li>\n<\/ul>\n\n<h4>1.0.8 - 2026-10-06<\/h4>\n\n<ul>\n<li>New Demo Data page (Football Settings \u2192 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<\/li>\n<li>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 \u2192 General \u2192 Search Engines<\/li>\n<li>Standings - penalty points (Group settings \u2192 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<\/li>\n<li>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<\/li>\n<li>Translations - new languages: English (UK), Greek, Japanese and Turkish; all 18 existing languages updated: new strings translated, unused strings removed, translation template (.pot) regenerated<\/li>\n<li>Teams Stats shortcode - only the metrics shown in the table are calculated, for faster loading<\/li>\n<li>readme.txt - new plugin title, description, \"Who is it for?\" section, extended FAQ and new screenshots<\/li>\n<li>Requirements - the minimum PHP version is now 7.4<\/li>\n<li>Frontend styles \u2013 minor UI tweaks to the shortcode output<\/li>\n<\/ul>\n\n<h4>1.0.7 - 2026-09-28<\/h4>\n\n<ul>\n<li>Admin screens - code and asset optimization for faster loading<\/li>\n<li>Frontend - code and asset optimization: unused scripts and styles removed from the shortcode assets<\/li>\n<li>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 <\/li>\n<li>Fixed the documentation URL for every screen that shows the Help box. <\/li>\n<li>Admin screens - removed the unmaintained Chosen library; all dropdowns now use Tom Select<\/li>\n<li>Matches - fixed a match decided on penalties having no winner when overtime\/penalty points rules are off<\/li>\n<li>Frontend styles \u2013 minor UI tweaks to the shortcode output<\/li>\n<\/ul>\n\n<h4>1.0.6 - 2026-09-18<\/h4>\n\n<ul>\n<li>Matches shortcode - matches in the Live status are now marked in every layout with a blinking LIVE badge<\/li>\n<li>Tournament, Team and Stadium shortcodes - embedded standings, teams and top player stats are now rendered directly from the template instead of through nested shortcodes.<\/li>\n<li>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<\/li>\n<li>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<\/li>\n<li>Match shortcode - knockout matches now show the round name (Semi-final, Final\u2026) in the header instead of a matchday number<\/li>\n<li>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<\/li>\n<li>Admin screens - added new Shortcodes box with copy-ready example shortcodes<\/li>\n<li>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<\/li>\n<li>Player and Staff shortcode Recent matches - fixed drawn matches being shown as a loss in the Res column<\/li>\n<li>Frontend styles \u2013 minor UI tweaks to the shortcode output<\/li>\n<\/ul>\n\n<h4>1.0.5 - 2026-09-14<\/h4>\n\n<ul>\n<li>Standings shortcode - added new parameter 'Only teams' - Restrict the table to only entered teams IDs<\/li>\n<li>Match Lineups shortcode - added new parameter 'show_badges'(yes\/no) - display goal, own-goal, card and captain marks after the player name.<\/li>\n<li>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<\/li>\n<li>New shortcode [ibpf-match-header] - displays only the match header section (teams, crests, score, scorers, venue and referee), with the match_id parameter<\/li>\n<li>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<\/li>\n<li>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<\/li>\n<li>Frontend styles \u2013 minor UI tweaks to the shortcode output<\/li>\n<\/ul>\n\n<h4>1.0.4 - 2026-09-09<\/h4>\n\n<ul>\n<li>Match kick-off time is now hidden everywhere a match is shown when the tournament setting Match Kick-off Time is off<\/li>\n<li>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<\/li>\n<li>Tournament shortcode - standings section now renders every stage in order \u2014 round-robin stages as standings tables, knockout stages as bracket rounds \u2014 with the stage name shown as a heading on multi-stage tournaments and empty stages skipped<\/li>\n<li>Standings shortcode - table header no longer repeats the group name when a stage has only one group<\/li>\n<li>Frontend styles \u2013 minor UI tweaks to the shortcode output<\/li>\n<\/ul>\n\n<h4>1.0.3 - 2026-08-28<\/h4>\n\n<ul>\n<li>added Croatian \u2013 Hrvatski ( hr ), Czech \u2013 \u010ce\u0161tina ( cs_CZ ), Danish \u2013 Dansk ( da_DK ), Finnish \u2013 Suomi ( fi ), Hungarian \u2013 Magyar ( hu_HU ), Lithuanian \u2013 Lietuvi\u0173 ( lt_LT ), Portuguese (Portugal) \u2013 Portugu\u00eas ( pt_PT ),Romanian \u2013 Rom\u00e2n\u0103 ( ro_RO ), Slovak \u2013 Sloven\u010dina ( sk_SK ),Swedish \u2013 Svenska ( sv_SE ) language files<\/li>\n<li>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<\/li>\n<li>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<\/li>\n<li>Frontend styles \u2013 minor UI tweaks to the shortcode output<\/li>\n<\/ul>\n\n<h4>1.0.2 - 2026-08-26<\/h4>\n\n<ul>\n<li>added German (de_DE), Italian (it_IT), Dutch (nl_NL), Polish (pl_PL), Portuguese-Brasil (pt_BR) and Ukrainian (uk) language files<\/li>\n<li>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<\/li>\n<\/ul>\n\n<h4>1.0.1 - 2026-08-19<\/h4>\n\n<ul>\n<li>added Spanish (es_ES) and French (fr_FR) language files<\/li>\n<li>Stadium shortcode \u2013 moved the About section into its own block for a cleaner layout<\/li>\n<li>Admin Schedule Matches page \u2013 fixed Home team, Away team, and Stadium dropdowns not opening<\/li>\n<li>Frontend styles \u2013 minor UI tweaks to the shortcode output<\/li>\n<li>Admin Match Events - fixed the \"Create\" button in the Add New player quick-add form doing nothing<\/li>\n<li>Player shortcode Season totals - fixed Matches Played missing appearances with no event; starting eleven appearances are now counted from the lineups<\/li>\n<li>Player shortcode Recent matches - matches started by the player with no recorded event are now listed<\/li>\n<\/ul>\n\n<h4>1.0.0 - 2026-07-18<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<\/ul>","raw_excerpt":"Football (soccer) league &amp; cup manager: fixtures, results, automatic league tables, group + knockout tournaments, player stats. Free, no add-ons.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/336835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=336835"}],"author":[{"embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ibpsports"}],"wp:attachment":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=336835"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=336835"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=336835"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=336835"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=336835"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=336835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}