Jak dodać kolumnę do ekranu zarządzania wpisami w WordPress?

Wiele wtyczek „wpycha” się z dodatkową treścią na ekran zarządzania wpisami i stronami. Jednym z przykładów jest bardzo popularna wtyczka All in One SEO Pack. Po zainstalowaniu, domyślnie na naszym ekranie zarządzania wpisami zostaną dodane aż trzy kolumny (SEO Title, SEO Keywords, SEO Description), co sprawia, że cała tabelka staje się mało czytelna. Mimo, że denerwuje mnie zachowanie tej wtyczki, sama technika jest całkiem pożyteczna. Zatem w tym artykule pokażę, w jaki sposób możesz dodać kolumnę do ekranu zarządzania wpisami i stronami, oraz jak wyłączyć te niechciane.

Rejestrujemy nową kolumnę

Domyślnie ekran zarządzania wpisami wygląda tak:

Domyślny wygląd ekranu zarządzania wpisami

Naszym celem w tym tutorialu, będzie dodanie kolumny zawierającej miniaturę dla każdego wpisu. Zatem pierwsza czynność, którą musimy wykonać, polega na dodaniu nowej kolumny do istniejącej listy, poprzez dodanie fragmentu kodu do pliku functions.php*:

add_filter('manage_posts_columns', 'add_thumbnails_column');

function add_thumbnails_column($columns) {
    $columns['thumbnail'] = __('Miniatura');
    return $columns;
}

Powyższy kod rejestruje kolumnę o nazwie thumbnail dla wpisów.

Wyświetlamy kolumnę ‘thumbnail’

Teraz pozostaje nam tylko wypełnić nową kolumnę treścią i wyświetlić jej zawartość. W tym celu skorzystamy z akcji manage_posts_custom_column. Podpinamy pod nią funkcję, która przyjmuje jeden parametr – nazwę kolumny, którą chcemy manipulować. W naszym przykładzie, w środku znajdzie się kod odpowiedzialny za sprawdzenie czy dany wpis posiada miniaturę i wyświetlenie jej.

add_action('manage_posts_custom_column',  'show_thumbnails_column');

function show_thumbnails_column($column) {
    global $post;

    switch ( $column )
	{
	case 'thumbnail':
            if ( has_post_thumbnail() ){
                echo get_the_post_thumbnail( $post->ID, array(80,80) );
            }else{
                _e('Brak');
            }
	break;
	}
}

Jeśli chodzi o rozmiar miniatury, to w przykładzie postanowiłam wykorzystać obrazek o wymiarach 80x80px. Wartości te można zmienić oczywiście na dowolne inne. Możemy się również posłużyć jednym ze zdefiniowanych na blogu rozmiarów (domyślnych – ‘thumbnail’, ‘medium’, ‘large’, ‘full’ lub własnych), zamieniając kod w linijce 10 na:

echo get_the_post_thumbnail( $post->ID, 'nazwa_rozmiaru' );      

Ostatecznie po wprowadzeniu wszystkich zmian, nasz ekran zarządzania wpisami wygląda tak:

Ekran zarządzania wpisami po dodaniu miniatur

Wyłączamy niechciane kolumny

We wstępie wspominałam, że wtyczki często dodają kolumny z informacjami do ekranu zarządzania wpisami. Na szczęście można je łatwo wyłączyć, klikając Opcje ekranu w prawym górnym rogu (tuż obok Pomocy).

Ekran zarządzania wpisami - opcje ekranu

Swoją drogą dojście do tego rozwiązania zajęło mi chwilę, bo do tej pory wydawało mi się że poprzez Opcje ekranu można jedynie włączać i wyłączać całe panele :)

* Cały kod podany w artykule powinien się znaleźć w pliku functions.php, jednak w tym konkretnym przypadku polecam umieszczenie go w specjalnej wtyczce funkcjonalnej (co to jest wtyczka funkcjonalna i jak ją stworzyć przeczytasz w moim artykule na blogu WP Ninja).

Related posts:

  1. Jak dodać odręczny podpis pod wpisami?

Komentarze

  1. Aga pisze:

    Bardzo dobry artykuł! Mimo, że stosowałam własne kolumny podczas tworzenia własnych formatów wpisów, to jakoś nie przyszło mi do głowy, że kolumnę można dodać również do tradycyjnych wpisów, chociażby po to, aby wyświetlić miniaturki zdjęć.

    To ma również tę praktyczną zaletę, że rzut oka na zdjęcie i już wyławiamy szukany wpis spośród całego stadka (oczywiście przy założeniu, że stosujemy post thumbnails).

  2. Kamil.ż pisze:

    Zgadzam się bardzo dobry artykuł ja akurat nie znałem przedstawionego sposobu dodawania własnych kolumn :) teraz będę wiedział bez klikania gdzie mam jakie zdjęcia :)

    Dzięki wielkie, pozdrawiam

  3. Magda pisze:

    O ;) Bardzo dziękuję! Szybko i przyjemnie.

Dodaj komentarz

*

*