Tag: kategoria

Wyświetlanie jednej kategorii wpisów na stronie głównej

Załóżmy, że na stronie głównej chcemy wyświetlać tylko wpisy z kategorii o identyfikatorze 10. To co musimy zrobić, to powiedzieć WordPress’owi że chcemy tylko posty z określonej kategorii i jej podkategorii. Realizacja tego zadania polega na zmianie zawartości klucza cat w zapytaniu. Podmianę wykonujemy w taki oto sposób:

Poniższy kod należy dodać do pliku functions.php używanego motywu.

add_action('wp_head', 'iworks_only_one_category');
function iworks_only_one_category()
{
    if ( is_home() || is_front_page() ) {
        global $wp_query;
        $wp_query->query('cat=10');
    }
}

Jeżeli chcemy inną kategorię, to należy zmienić 10 na inny, wybrany identyfikator. Można tam też umieścić ich kilka z przecinkami.

Wyklucz kategorię

Wykluczanie wybranej kategorii ze strony głównej realizujemy przez dopisanie znaku minus, wtedy te z minusem będą pomijane przy wyświetlaniu.

add_action('wp_head', 'iworks_exclude_one_category');
function iworks_exclude_one_category()
{
    if ( is_home() || is_front_page() ) {
        global $wp_query;
        $wp_query->query('cat=-10');
    }
}
[zip href="http://iworks.pl/wp-content/uploads/2011/09/iworks_only_one_category.php.zip"]iworks_only_one_category.php[/zip]

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

Lista wszystkich wpisów w danej kategorii

Jeżeli dla kategorii foo chcemy wyświetlić listę wszystkich wpisów, należy utworzyć plik category-foo.php zgodnie z http://codex.wordpress.org/Template_Hierarchy#Category_display

który będzie zawierał:

<?php
function get_all_post_from_category()
{
    global $wp_query, $cat;
    $wp_query->query('showposts=-1&cat='.$cat);
}
add_action('wp_head', 'get_all_post_from_category');
get_header();
if ( have_posts() ) {
    echo '<ul>';
    while ( have_posts() ) {
        the_post();
        echo '<li><a href="'.get_permalink().'">';
        the_title();
        echo '</a></li>';
    }
    echo '</ul>';
}
get_footer();
?>

Oczywiście należy dostosować go naszego motywu.

[zip href="http://iworks.pl/wp-content/uploads/2011/09/category-foo.php.zip"]category-foo.php[/zip]

WordPress: Policz wpisy w kategorii

Jak policzyć wpisy w kategorii? Okazuje się że bardzo, ale to bardzo prosto.

Na stronie kategorii jest najłatwiej, ponieważ zmienna $cat zawiera numer aktualnie przeglądanej kategorii.

get_category($cat)->category_count

Oczywiście sami podamy numer to też zadziała:

get_category(11)->category_count

Można też wybrać kategorię za pomocą sluga:

get_category_by_slug('nazwa-kategorii')->category_count

Jeżeli chcemy użyć nazwy to musimy skorzystać z get_term_by:

get_category(get_term_by('name', 'Nazwa Kategorii', 'category')->term_id)->category_count

W ostatnim przypadku należy pamiętać, że nazwa kategorii nie jest unikatowa, więc w serwisie może być więcej niż jedna kategoria o wybranej nazwie.

Co ciekawe obiekt kategorii ma dwa pola zawierające dane na temat liczby wpisów (count, category_count), ale nie widzę między nimi różnicy.

Może Ty znasz różnicę?

Oparte na WordPress & Theme by Anders Norén