Display Table From CSV [WordPress Shortcode]

Plik csv2table.php

<?php

/*
  Plugin Name: CSV2Table
  Plugin URI: https://pawelkosmala.pl/
  Description:
  Version: 20220925
  Author: Paweł Kosmala
  Text Domain:
  Domain Path: /locale
  License: GNU General Public License
  
 */


    function csv2table_shortcode($attrs, $content='') {
        $file=@$attrs["file"];
        $class=@$attrs["class"];
        $count = 0;
        
        if (($handle = @fopen($file, "r")) !== FALSE) {
            $content.='<table class="'.$class.'">';
            while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
                if ($count==0) {
                    $content.='<thead><tr>';
                    foreach ($row as $col) 
                        $content.='<th>'.$col . "</th>";
                    $content.='</tr></thead><tbody>';
                } else {
                    $content.='<tr>';
                    foreach ($row as $col) 
                        $content.='<td>'.$col . "</td>";
                    $content.='</tr>';
                }

                $count++;
            }
            fclose($handle);
            $content.='</tbody></table>';
        }
        return $content;
    }

    add_shortcode('CSV2Table', 'csv2table_shortcode');
?>

Przykład wywołania kodu

[CSV2Table file=”https://pawelkosmala.pl/wordpress.csv” class=”table table-hover”]

Objaśnienie:

file – Adres url do pliku CSV lub ścieżka do lokalnego pliku CSV

class – nazwy class CSS do ostylowania tabeli

Rezultat tabeli na podstawie danych z pliku CSV

Słowo kluczoweŚr. mies. liczba wyszukiwańWysz. styczeńWysz. LutyWysz. MarzecWysz. Kwiecień
wordpress4050049500405004950040500
wordpress download36004400360036002900
wordpress theme for free29003600290029002400
wordpress how to theme29003600290044003600
wordpress themes24002900290024002400
wordpress logowanie24002900240029002900
wordpress theme free24002900290024002400
free wordpress themes24002900290024002400
wordpress theme24002900290024002400
wordpress szablony13001600130013001000
wordpress szablon13001600130013001000
wordpress login10001600100013001000
wordpress logs10001600100013001000
wordpress elementor88010001000880880
templates for wordpress8801000100010001000
hosting wordpress880100010001000880
wordpress blog880100088013001300
wordpress for blogger880100088013001300
blog about wordpress880100088013001300
wordpress blogs880100088013001300
wordpress template8801000100010001000
wordpress plugins88010008801000880
blogger in wordpress8801000880880720
blogger wordpress880100088013001300
wordpress blogging880100088013001300
blog for wordpress880100088013001300
blog en wordpress880100088013001300
kursy wordpress880160013001000720
kurs wordpress880160013001000880
wordpress templates8801000100010001000