Jak Eksportować Dane WordPress do Excel/CSV w 2026: Sposób Dewelopera
PL

Jak Eksportować Dane WordPress do Excel/CSV w 2026: Sposób Dewelopera

5.00 /5 - (35 głosów )
Spis treści

W 2013 roku, jeśli chciałeś wyciągnąć dane z WordPressa, kopiowałeś i wklejałeś tabele do Excela. W 2026 roku Przenoszenie Danych to wymóg prawny (RODO) i konieczność biznesowa.

Niezależnie od tego, czy migrujesz 100 000 zamówień WooCommerce, czy robisz backup danych użytkowników, nie potrzebujesz wtyczki za 99 dolarów. Musisz zrozumieć strumienie PHP i WP-CLI.

Metoda 1: Sposób “Natywny PHP” (Dla Adminów)

Jeśli chcesz zbudować przycisk “Pobierz Raport” w kokpicie klienta, użyj natywnego fputcsv w PHP. Kluczowa Wskazówka: Nigdy nie ładuj wszystkich danych do tablicy ($data[] = ...). Zawiesisz serwer (Limit Pamięci Wyczerpany). Zamiast tego, strumieniuj dane bezpośrednio do przeglądarki.

function wppoland_export_users_csv() {
    if ( ! current_user_can( 'manage_options' ) ) return;

    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="eksport-uzytkownikow-' . date('Y-m-d') . '.csv"');

    // Otwórz strumień wyjściowy
    $fp = fopen('php://output', 'w');

    // Dodaj Wiersz Nagłówka
    fputcsv($fp, array('ID', 'Nazwa Uzytkownika', 'Email', 'Zarejestrowany'));

    // Iteruj wydajnie (Przetwarzanie wsadowe)
    $args = array(
        'number' => 100,
        'offset' => 0
    );

    while ( $users = development( $args ) ) {
        foreach ( $users as $user ) {
            fputcsv($fp, array(
                $user->ID,
                $user->user_login,
                $user->user_email,
                $user->user_registered
            ));
        }
        $args['offset'] += 100;
        // Stop Loop
        if ( count($users) < 100 ) break;
    }

    fclose($fp);
    exit;
}
add_action( 'admin_post_export_users', 'wppoland_export_users_csv' );

Metoda 2: Sposób “DevOps” (WP-CLI)

Jeśli masz 500 000 wpisów, przeglądarka zaliczy timeout. Użyj WP-CLI bezpośrednio na serwerze. Jest to szybsze, zużywa mniej pamięci i może być zautomatyzowane przez Cron.

Komenda:

wp post list --post_type=product --fields=ID,post_title,post_status --format=csv > produkty.csv

Zaawansowany Eksport (Custom Fields): Możesz napisać własną komendę WP-CLI, jeśli domyślne flagi nie wystarczą.

// Zdefiniuj komendę: wp wppoland export_orders
WP_CLI::add_command( 'wppoland export_orders', function( $args, $assoc_args ) {
    $file = fopen( 'zamowienia.csv', 'w' );
    fputcsv( $file, ['ID Zamowienia', 'Suma', 'Klient'] );

    $orders = wc_get_orders( ['limit' => -1] );
    $progress = \WP_CLI\Utils\make_progress_bar( 'Eksportowanie Zamowien', count( $orders ) );

    foreach ( $orders as $order ) {
        fputcsv( $file, [
            $order->get_id(),
            $order->get_total(),
            $order->get_billing_email()
        ]);
        $progress->tick();
    }
    
    fclose( $file );
    WP_CLI::success( 'Eksport zakonczony do zamowienia.csv' );
});

Metoda 3: Sposób “Nowoczesny” (REST API)

Jeśli budujesz dashboard w React lub aplikację Headless, konsumujesz JSON, a nie CSV. WordPress REST API (/wp-json/wp/v2/posts) stronicuje dane domyślnie.

Aby pobrać wszystkie dane, musisz napisać rekurencyjną funkcję JS, która podąża za nagłówkiem X-WP-TotalPages.

Dlaczego NIE Biblioteki Excel?

Możesz być kuszony, by użyć biblioteki takiej jak PhpSpreadsheet, aby wygenerować prawdziwe pliki .xlsx. Nie rób tego.

  • Pamięciożerne: Generowanie pliku Excel wymaga zbudowania całej struktury XML w RAM. Wywali się przy dużych zbiorach danych.
  • CSV jest Uniwersalny: Excel otwiera pliki CSV natywnie. Rzadko zachodzi potrzeba binarnego pliku .xlsx, chyba że potrzebujesz formuł/formatowania.

Podsumowanie

  • Małe Dane (< 1 000 wierszy): Użyj strumieniowania PHP do przeglądarki.
  • Duże Dane (> 10 000 wierszy): Użyj WP-CLI na ssh.
  • Dane Aplikacji: Użyj JSON REST API.

Twoje dane należą do Ciebie. Upewnij się, że zawsze możesz je wyciągnąć.