Below, you’ll find a detailed guide on how to add the League Table Shortcode to your WordPress website, including its parameters, examples, and PHP function code. Additionally, we’ll assist you with common issues that might cause the League Table Plugin shortcode not to show or not to work correctly.
Before starting, here is an overview of the League Table Plugin and the shortcodes it provides:
"League Table is a versatile WordPress plugin that allows you to create responsive, sortable, and customizable tables, perfect for sports leagues, statistics, and comparative data."
- []
League Table [null] Shortcode
The League Table Lite shortcode is used to display a league table on a WordPress page or post. The shortcode is: [ltl]. It fetches a specified league table from the database and displays it. The table ID is passed as an attribute to the shortcode. If the table doesn’t exist or the ID is not provided, an error message is displayed. The shortcode also handles table properties like cell properties, column width, and manual sorting. It can also add images or links to cells.
Shortcode: [null]
Parameters
Here is a list of all possible null shortcode parameters and attributes:
id
– Unique identifier of the league table
Examples and Usage
Basic example – Display a league table by referencing its ID.
[ltl id=1 /]
Advanced examples
Display a league table by referencing its ID. If the table is not found by ID, it will display a message asking to enter the identifier of the table.
[ltl id=2 /]
Display a league table by referencing its ID. If the table is not found by ID or if the same shortcode is used multiple times, it will display a message stating that the same shortcode cannot be used multiple times.
[ltl id=3 /]
PHP Function Code
In case you have difficulties debugging what causing issues with [null]
shortcode, check below the related PHP functions code.
Shortcode line:
add_shortcode('ltl', array($this, 'display_league_table'));
Shortcode PHP function:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 | function display_league_table( $atts ) { /* * Parse the shortcode only inside the full content of posts and pages if the "Limit Shortcode Parsing" option * is enabled. Do not parse the shortcode inside feeds. */ if (!is_feed() and ((is_single() or is_page()) or intval (get_option( $this ->shared->get( 'slug' ) . '_limit_shortcode_parsing' ), 10) == 0)) { //get the table id if (isset( $atts [ 'id' ])){ $table_id = intval ( $atts [ 'id' ], 10); } else { return '<p>' . esc_attr__( 'Please enter the identifier of the table.' , 'league-table-lite' ) . '</p>' ; } //get table object global $wpdb ; $table_name = $wpdb ->prefix . $this ->shared->get( 'slug' ) . "_table" ; $safe_sql = $wpdb ->prepare( "SELECT * FROM $table_name WHERE id = %d AND temporary = 0" , $table_id ); $table_obj = $wpdb ->get_row( $safe_sql ); //terminate if there is no table with the specified id if ( $table_obj === NULL) { return '<p>' . esc_attr__( 'There is no table associated with this shortcode.' , 'league-table-lite' ) . '</p>' ; } //terminate if this table id has already been used if ( intval (get_option( $this ->shared->get( 'slug' ) . '_verify_single_shortcode' ), 10) === 1 and in_array( $table_id , self:: $shortcode_id_a , true)) { return '<p>' . esc_attr__( "You can't use multiple times the same shortcode." , 'league-table-lite ') . ' </p>'; } //store the shortcode id self:: $shortcode_id_a [] = $table_id ; //the tables property saves all the tables included in this post $this ->tables[] = $table_obj ; //generate output ------------------------------------------------------------------------------------------ //get table data global $wpdb ; $table_name = $wpdb ->prefix . $this ->shared->get( 'slug' ) . "_data" ; $safe_sql = $wpdb ->prepare( "SELECT * FROM $table_name WHERE table_id = %d ORDER BY row_index ASC" , $table_id ); $results = $wpdb ->get_results( $safe_sql , ARRAY_A); if ( intval ( $table_obj ->enable_cell_properties, 10) == 1) { //get the cell properties of all the cell of the table global $wpdb ; $table_name = $wpdb ->prefix . $this ->shared->get( 'slug' ) . "_cell" ; $safe_sql = $wpdb ->prepare( "SELECT * FROM $table_name WHERE table_id = %d" , $table_id ); $table_cells_properties = $wpdb ->get_results( $safe_sql , ARRAY_A); } //turn on output buffer ob_start(); ?> <!-- Generate the "table" HTML element --------------------------------------------------------------------> <table id= "daextletal-table-<?php echo $table_id; ?>" class = "daextletal-table" <?php echo $this ->generate_table_data_attributes( $table_obj ); ?>> <?php //Generate the "colgroup" HTML element ----------------------------------------------------------------- if ( intval ( $table_obj ->column_width, 10 ) === 1 ) { //extract the numeric values in column width value in an array $column_width_value_a = explode ( ',' , preg_replace( '/\s+/' , '' , $table_obj ->column_width_value ) ); //if column width value doesn't include any numeric value do nothing if ( count ( $column_width_value_a ) > 0 ) { if ( count ( $column_width_value_a ) === 1 ) { //if column width value is a single value apply the value to all the columns $number_of_columns = $this ->shared->get_number_of_columns( $table_id , true ); echo '<colgroup>' ; for ( $i = 0; $i < $number_of_columns ; $i ++ ) { echo '<col style="width: ' . intval ( $column_width_value_a [0], 10 ) . 'px;">' ; } echo '</colgroup>' ; } else { //if column width value are multiple values apply the various values to the columns echo '<colgroup>' ; foreach ( $column_width_value_a as $key => $column_width ) { echo '<col style="width: ' . intval ( $column_width , 10 ) . 'px;">' ; } echo '</colgroup>' ; } } } ?> <!-- Generate the "thead" HTML element ----------------------------------------------------------------> <thead> <tr> <?php foreach ( $results as $key1 => $value ) { if ( $key1 > 0) { break ; } $row_data = json_decode( $value [ 'content' ], true); foreach ( $row_data as $key2 => $cell_data ) { $cell_data = esc_html( $cell_data ); if ( intval ( $table_obj ->enable_cell_properties, 10) == 1) { /* * Search the properties of this cell in the array which include all the cell properties * of this table */ $cell_properties = false; foreach ( $table_cells_properties as $key => $val ) { if ( $val [ 'row_index' ] == $key1 and $val [ 'column_index' ] == $key2 ) { $cell_properties = $val ; break ; } } } if (isset( $cell_properties ) and $cell_properties !== false and intval ( $table_obj ->enable_cell_properties, 10) == 1) { if ( intval ( $table_obj ->enable_cell_properties, 10) == 1) { /* * Use a link instead of the text if the "link" property is set and the * "Enable Manual Sorting" option is disabled */ if ( strlen (trim( $cell_properties [ 'link' ])) > 0 and intval ( $table_obj ->enable_manual_sorting, 10) == 0) { $cell_data = '<a href="' . esc_url( stripslashes ( $cell_properties [ 'link' ])) . '">' . $cell_data . '</a>' ; } //Add an image to the left of the cell if the "image_left" property is set if ( strlen (trim( $cell_properties [ 'image_left' ])) > 0) { $cell_data = '<img class="daextletal-image-left" src="' . esc_url( stripslashes ( $cell_properties [ 'image_left' ])) . '">' . $cell_data ; } //Add an image to the right of the cell if the "image_right" property is set if ( strlen (trim( $cell_properties [ 'image_right' ])) > 0) { $cell_data = '<img class="daextletal-image-right" src="' . esc_url( stripslashes ( $cell_properties [ 'image_right' ])) . '">' . $cell_data ; } } } echo '<th>' . $cell_data . '</th>' ; } } ?> </tr> </thead> <!-- Generate the "tbody" HTML element ----------------------------------------------------------------> <tbody> <?php foreach ( $results as $key1 => $value ) { if ( $key1 == 0) { continue ; } $row_data = json_decode( $value [ 'content' ], true); echo '<tr>' ; foreach ( $row_data as $key2 => $cell_data ) { $cell_data = esc_html( $cell_data ); if ( intval ( $table_obj ->enable_cell_properties, 10) === 1) { /* * Search the properties of this cell in the array which include all the cell properties * of this table */ $cell_properties = false; foreach ( $table_cells_properties as $key => $val ) { if ( $val [ 'row_index' ] == $key1 and $val [ 'column_index' ] == $key2 ) { $cell_properties = $val ; break ; } } } if (isset( $cell_properties ) and $cell_properties !== false and intval ( $table_obj ->enable_cell_properties, 10) == 1) { if ( intval ( $table_obj ->enable_cell_properties, 10) == 1) { //Use a link instead of the text if the "link" property is set if ( strlen (trim( $cell_properties [ 'link' ])) > 0) { $cell_data = '<a href="' . esc_url( stripslashes ( $cell_properties [ 'link' ])) . '">' . $cell_data . '</a>' ; } //Add an image to the left of the cell if the "image_left" property is set if ( strlen (trim( $cell_properties [ 'image_left' ])) > 0) { $cell_data = '<img class="daextletal-image-left" src="' . esc_url( stripslashes ( $cell_properties [ 'image_left' ])) . '">' . $cell_data ; } //Add an image to the left of the cell if the "image_right" property is set if ( strlen (trim( $cell_properties [ 'image_right' ])) > 0) { $cell_data = '<img class="daextletal-image-right" src="' . esc_url( stripslashes ( $cell_properties [ 'image_right' ])) . '">' . $cell_data ; } } } echo '<td>' . $cell_data . '</td>' ; } echo '</tr>' ; } ?> </tbody> </table> <?php $out = ob_get_clean(); //If the container is enabled include the table in a container if ( intval ( $table_obj ->enable_container, 10) == 1) { $out = '<div class="daextletal-table-container">' . $out . '</div>' ; } return $out ; } } |
Code file location:
league-table-lite/league-table-lite/public/class-daextletal-public.php
Conclusion
Now that you’ve learned how to embed the League Table Plugin shortcode, understood the parameters, and seen code examples, it’s easy to use and debug any issue that might cause it to ‘not work’. If you still have difficulties with it, don’t hesitate to leave a comment below.
Leave a Reply