✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Wyświetlaj posty z określonej kategorii na stronie WordPress

907

Czy chcesz wyświetlać posty z określonej kategorii w niestandardowym szablonie strony w WordPressie? W ten sposób możesz użyć własnego projektu szablonu i wyświetlić listę postów na stronie WordPress. W tym artykule dowiemy się, jak wyświetlać posty z określonej kategorii w niestandardowym szablonie strony.

Domyślnie w WordPressie możesz kategoryzować swój post. Ta funkcja jest przydatna, aby znaleźć wszystkie posty należące do określonej kategorii. W WordPressie, gdy użytkownik kliknie jedną z kategorii, zostanie przekierowany na stronę z listą wpisów dla tej konkretnej kategorii. WordPress używa następujących plików szablonów dla wpisów z listą kategorii.

  • kategoria-slug.php
  • identyfikator-kategorii.php
  • kategoria.php
  • archiwum.php
  • index.php

Aby wyświetlić posty z powiązanej kategorii, WordPress wyszukuje pliki szablonów w powyższej kolejności. Niezależnie od tego, który plik szablonu zostanie znaleziony jako pierwszy, kod z tego pliku zostanie użyty do wpisów z listą kategorii.

Chodzi o domyślne szablony WordPress. Ale co zrobić, jeśli ktoś chce użyć niestandardowego szablonu strony dla wpisów z określonej kategorii?

Mając to na uwadze, przejdźmy krok po kroku, jak osiągnąć ten cel.

Utwórz szablon strony w WordPress

Naszym celem jest wyświetlanie postów według kategorii na stronie. Oczywiście musisz napisać do tego kod. Utwórz plik template-category.phpw katalogu aktywnego motywu i dodaj poniższy komentarz u góry pliku.

szablon-kategoria.php

<?php
/**
 * Template Name: Category Custom Page
 */
 
?>

Następnie przejdź do pulpitu WordPress, utwórz swoją stronę, na której chcesz wyświetlać posty. Przypisz powyższy szablon do tej nowo utworzonej strony.

Wyświetlaj posty z określonej kategorii na stronie WordPress

Wyświetlaj posty z określonej kategorii na stronie WordPress

Do tej pory utworzyłeś i przypisałeś swój szablon do strony WordPress. Następną rzeczą, którą musisz zrobić, to napisać kod, który będzie pobierał posty dołączone do kategorii.

Użyję WP_Queryklasy do pobrania postów. Na przykład zakładam, że masz kategorię o nazwie „WordPress" i posty dołączone do tej kategorii, które chcesz wyświetlić.

Wpisz poniższy kod, aby otrzymać listę postów w kategorii „WordPress”.

$args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'category_name' => 'wordpress',
    'posts_per_page' => 5,
);
$arr_posts = new WP_Query( $args );
 
if ($arr_posts->have_posts() ):  
    while ($arr_posts->have_posts() ):         $arr_posts->the_post();
        ?>
        <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
            <?php
            if (has_post_thumbnail() ):                 the_post_thumbnail();
            endif;
            ?>
            <header class="entry-header">
                <h1 class="entry-title"><?php the_title(); ?></h1>
            </header>
            <div class="entry-content">
                <?php the_excerpt(); ?>
                <a href="<?php the_permalink(); ?>">Read More</a>
            </div>
        </article>
        <?php
    endwhile;
endif;

W powyższym kodzie zdałem 'category_name' => 'wordpress'. Tutaj „wordpress” jest ślimakiem kategorii.

Wyświetlaj posty z określonej kategorii na stronie WordPress

Użytkownik może również przekazać identyfikator kategorii zamiast nazwa_kategorii. W takim przypadku powinieneś użyć klucza jako ‘cat’ zamiast ‘category_name’ i przekazać identyfikator kategorii.

$args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'cat' => '4', //you can pass comma-separated ids here
    'posts_per_page' => 5,
);

posts_per_pageto liczba postów do pobrania z bazy danych. Skorzystałem z have_posts()metody, która sprawdza, czy kolejny post jest dostępny dla pętli WordPress. Jeśli jest dostępny, przegląda każdy post i wyświetla go.

Uzyskaj posty w ramach niestandardowej taksonomii

Być może pracujesz z niestandardowym typem postu i chcesz wyświetlić posty z niestandardowej taksonomii. W takim przypadku musisz zmienić tablicę argumentów w następujący sposób:

$args = array(
    'post_type' => 'CUSTOM_POST_TYPE_NAME',
    'post_status' => 'publish',
    'posts_per_page' => 5,
    'tax_query' => array(
        array(
            'taxonomy' => 'TAXONOMY_NAME',
            'field'    => 'slug',
            'terms'    => array( 'TERM_SLUG' ),
            'operator' => 'IN'
        ),
    ),
);
 
$arr_posts = new WP_Query( $args );

Pamiętaj, aby zastąpić symbole zastępcze rzeczywistymi wartościami.

Paginacja

Kod, który napisałem, pobiera tylko ograniczone posty z kategorii. Chociaż możesz uzyskać dowolną liczbę postów, przekazując liczbę do „posts_per_page”, zwykle wyświetlamy zestaw postów na stronę, a następnie używamy paginacji, aby uzyskać następny i poprzedni zestaw postów.

Aby zintegrować paginację, zainstaluj i aktywuj wtyczkę WP-PageNavi.

Ta wtyczka zapewnia metodę, wp_pagenavi()która generuje linki do stronicowania, które można wykorzystać na stronie z listą postów.

Wyświetlaj posty z określonej kategorii na stronie WordPress

Aby dodać linki do stronicowania na swojej stronie WordPress, musisz zmodyfikować swój kod. Najpierw musisz przekazać pagedparametr, a następnie użyć funkcji wp_pagenavi().

Otrzymasz wartość paged w następujący sposób:

$paged = (get_query_var( 'paged' ))? get_query_var( 'paged' ): 1;

Więc twój ostateczny kod jest jak poniżej.

szablon-kategoria.php

<?php
/**
 * Template Name: Category Custom Page
 */
 
get_header(); ?>
 
<div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">
 
    <?php
    $paged = (get_query_var( 'paged' ))? get_query_var( 'paged' ): 1;
    $args = array(
        'post_type' => 'post',
        'post_status' => 'publish',
        'category_name' => 'wordpress',
        'posts_per_page' => 5,
        'paged' => $paged,
    );
    $arr_posts = new WP_Query( $args );
 
    if ($arr_posts->have_posts() ):  
        while ($arr_posts->have_posts() ):             $arr_posts->the_post();
            ?>
            <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                <?php
                if (has_post_thumbnail() ):                     the_post_thumbnail();
                endif;
                ?>
                <header class="entry-header">
                    <h1 class="entry-title"><?php the_title(); ?></h1>
                </header>
                <div class="entry-content">
                    <?php the_excerpt(); ?>
                    <a href="<?php the_permalink(); ?>">Read More</a>
                </div>
            </article>
            <?php
        endwhile;
        wp_pagenavi(
            array(
                'query' => $arr_posts,
            )
        );
    endif;
    ?>
 
    </main><!-- .site-main -->
</div><!-- .content-area -->
 
<?php get_footer(); ?>

Teraz możesz zmienić strukturę HTML, korzystać z klas, dodać styl i stworzyć ładnie przygotowaną stronę dla listy swoich postów.

Mam nadzieję, że rozumiesz, jak wyświetlać posty z określonej kategorii na stronie WordPress. Podziel się swoimi przemyśleniami w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów