Tag: WordPress filter

Filtr dnia: widget_tag_cloud_args

Jednym z domyślnych widgetów, jakie oferuje WordPress jest taki, który pozwala wyświetlić chmurę tagów.

Domyślnie jest wyświetlane 45 tagów, co nie każdemu może odpowiadać.

Do zmiany liczby wyświetlanych tagów należy użyć filtra widget_tag_cloud_args tak, żeby zmienić argument number w funkcji wp_tag_cloud.

W najprostszej wersji możemy użyć takiego kodu:

Twenty Thirteen theme

WordPress 3.6

1 sierpnia to dla korzystających z WordPressa data wydania nowej wersji. Ta nosząca imię Oscar jest przede wszystkim powrotem do korzeni. Domyślny motyw, który wraca do korzeni, do tego czym WP zawsze był, czyli oprogramowaniem do blogowania.

Najważniejsze zmiany dla użytkowników

  • Nowy motyw – Twenty Thirteen – jedno-kolumnowy, nowoczesny, pełen kolorów z obsługą motyw z doskonałą obsługą multimediów.
  • Całkowicie nowy sposób zarządzania wersjami wpisów.
  • Blokowanie wpisu do edycji oraz zapisywanie wersji lokalanie w przeglądarce oraz na serwerze, co zabezpiecza przed stratami w edycji.
  • Wbudowany odtwarzacz do plików audio oraz filmów, oparty w całości o HTML5
  • Znaczące ulepszenie zarządzaniem menu, tak żeby było bardziej intuicyjne.

Najważniejsze zmiany dla deweloperów

  • Nowe API do audio/wideo pozwala na dostęp do metadanych, np. do tagów ID3.
  • Możliwość użycia HTML5 dla komentarzy i formularzy wyszukiwania.
  • Poprawiono filtry, dzięki czemu można przechować więcej informacji dla różnych typów wpisów.
  • Cała masa innych, które można zobaczyć na Codex’ie, oraz u źródeł: ponad 700 zamkniętych ticketów.

Pobierz pliki Polskie tłumaczenie WordPress 3.6.

Filtr dnia: wp_nav_menu_items

Wiele razy zdarzyło mi się przeczytać pytanie jak dodać pole formularza wyszukiwania do dowolnego menu. Odpowiedzi na to pytanie są różne: od typowego „nie da się” po mało eleganckie grzebanie po plikach motywu. A przecież WordPress, dzięki mechanizmowi filtrów i akcji, oferuje nam możliwość modyfikowanie prawie każdego elementu.

W podanym kodzie do menu, które ma nazwę „menu_default” doklejany jest formularz wyszukiwania.

WordPress: klasa css dla tagu body

Jak jest jest budowana klasa dla tagu body? Jak to wykorzystać i jak zmienić? Co można na tym zyskać, a co stracić i właściwie do czego jest to potrzebne?

Skąd się właściwie bierze atrybut class w tagu body?

Prawidłowo skonstruowany szablon WordPressa, oprócz kilku innych elementów, zawiera też w otwierający tagu body poniższy kod, który to odpowiedzialny jest za atrybut class tegoż tagu.

<body <?php body_class($class); ?>>

WordPress: jak zmodyfikować atrybuty ikony wpisu?

Za pomocą funkcji get_the_post_thumbnailfunkcja get_the_post_thumbnail() można w szablonie wstawić miniaturki wpisu, zwane „ikoną wpisu”. Czasem przydałoby się zmodyfikować to co dostajemy na wyjściu i poniżej zaprezentowane są trzy różne sposoby wykorzystania filtra post_thumbnail_html, dzięki któremu można usunąć, zmienić bądź dodać atrybuty obrazka.

Żeby usunąć atrybuty „width” oraz „height” z tego co WordPress produkuje jako ikonę wpisu użyj takiego kodu:

add_filter(
    'post_thumbnail_html',
    create_function(
        '$html',
        'return preg_replace( \'/ (width|height)="\d+"/\', \'\', $html );'
    )
);

Można oczywiście wyczyścić inne parametry, poniżej ich lista, choć czyszczenie parametru src, byłoby „lekko” bezsensu:

  • alt
  • class
  • height
  • src
  • title
  • width

Wykorzystując ten kod może tez zmienić zawartość jakiegoś elementu, np. ustawić na stałe klasę „foo-bar”:

add_filter(
    'post_thumbnail_html',
    create_function(
        '$html',
        'return preg_replace( \'/ class="[^"]+"/\', \'class="foo-bar"\', $html );'
    )
);

Czy też dodać sobie jakiś parametr:

add_filter(
    'post_thumbnail_html',
    create_function(
        '$html',
        'return preg_replace( \'/&lt;img/\', \'&lt;img foo="bar"\', $html );'
    )
);

Jak użyć podany kod?

Masz 3 rozwiązania:

  1. wrzuć załączony plik do folderu wp-content/plugins, a potem włącz wtyczkę
  2. wrzuć załączony plik do folderu wp-content/mu-plugins
  3. dołącz kod do pliku functions.php aktualnie używanego motywu

WordPress: kategoria na stronie tylko dla administratorów

Na polskim forum WordPressa bartekm zadał pytanie:

mam problem ze stworzeniem kategorii newsów która jest widoczna tylko dla administratorów bloga. Czy ktoś wie jak to zrobić?

Aby na stronie z listą nie wyświetlać wpisów z kategorii o uproszczonej nazwie „nowosci”, realizujemy to w następujący sposób:

<?php
 
add_filter( 'parse_query', 'parse_query_test_filter' );
 
function parse_query_test_filter( $query )
{
    if ( !current_user_can('administrator')  ) {
        $query->query_vars['category__not_in'][] = get_category_by_slug( 'nowosci' );
    }
    return $query;
}

Trzeba pamiętać, że taki kod nie zabezpiecza przed obejrzeniem wpisu przez innych niż „administratorzy” użytkowników. On tylko nie wyświetla takich postów na listach.

Oparte na WordPress & Theme by Anders Norén