Tag: WP_Query

WordPress 3.8.1 – poprawki i utrzymanie

Wczoraj w nocy została wydana nowa mała wersja WordPressa, którą prawdopodobnie już macie na swoich serwisach, bo pewnie zaktualizowało się samo.

Szczęśliwie, udało się Wacławowi też odblokować polską wersję i jednocześnie z 3.8.1 została wydana 3.8.1 PL.

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]

Oparte na WordPress & Theme by Anders Norén