Jak zrobić box z podobnymi postami na WP?

Potrzebuję zrobić box, który wyświetli mi kilka podobnych postów (już) w danym poście. Nie wiem jak to dokładnie wytłumaczyć: wchodzę sobie w post X i na jego końcu chciałabym podpiąć sekcję pt. podobne posty, w której losowo będą wyświetlać się inne posty (na przykład 5). Zainstalowałam plugin Similar Posts – Best Related Posts Plugin for WordPress, ale jest on trochę zbyt skomplikowany i wymaga zbyt wielu ustawień. Problem polega na tym, że jeśli wyświetlam to pętlą – to nie dość że wyświetlają się tylko ostatnie, to jeszcze wyświetla się także post w którym jestem. Słabo to wygląda kiedy w poście X mam wyświetlony jako jeden z losowych również ten post X… Czy jest możliwość wyświetlić taki box w innej części tekstu?
Pomożesz?

Przyklejona odpowiedź

Podobne posty, a losowe posty to jednak różnica. Żeby zrobić podobne posty trzeba to podobieństwo znaleźć i zdefiniować. Jeśli nie chodzi Ci o losowe posty, daj znać.
Natomiast podpinany do postu box wyświetlający kilka losowych postów z wykluczeniem tego, w którym się znajdujesz jest bardzo proste do wykonania. Wspomniałaś już nawet o pętli więc trop jest dobry 🙂
Zatem: musisz odnaleźć plik przez FTP w katalogu Twojego motywu ( bądź utworzyć w potomnym jeśli jest) odpowiadający za wyświetlanie pojedynczego wpisu (pewnie single.php).
W nim po prostu zrób w wybranym przez Ciebie miejscu jakąś sekcję i wykorzystaj poniższy kod:

<div>
    <p>Podobne posty:</p>
    <ul>
    <?php
    $args = array(
        'posts_per_page' => 5,
        'orderby'   => 'rand',
        'post__not_in' => array(get_the_ID())
    );

    $loop = new WP_Query($args);
    if ($loop->have_posts()) {
        while ($loop->have_posts()) {
            $loop->the_post();
            echo '<li>'.
               '<a href="'.get_permalink().'">'.
                get_the_title().
                '</a>'.
                '</li>';
            }
        }
    ?>
    <?php wp_reset_postdata(); ?>
    </ul>
</div>

Oczywiście będziesz musiała dodać jakieś style do tego. Powyższa pętla WP wyświetli listę 5 losowych postów.
Natomiast jeśli chcesz wyświetlić nie losowe posty, a podobne to tak jak wspominałem wyżej musisz zdefiniować podobieństwo. Na przykład jeśli chcesz wyświetlić posty tylko z roku 2018, dodaj do argumentów parametr:

	'year'  => 2018

Argumentów możesz sobie ustawić ile chcesz.
A jeśli chodzi o wyświetlenie takiego boxa w jakimś miejscu w poście, ale nie na końcu to proponuję powyższy kod schować pod shortcode w functions.php. Wtedy w wybranym miejscu już po stronie panelu WP wywołasz kod.

Forum dla programistów, wordpressowców - obrazek poglądowy
guest
5 komentarzy
Inline Feedbacks
View all comments
Kasii
Kasii

To i ja się dołączę:
A jak zrobić żeby wyświetlić taki box ale z postami tylko z danej kategorii?

Sławo
Sławo
W odpowiedzi do  Kasii

Proste – np. dodaj argument:

	'cat' -> xxx

Gdzie xxx będzie ID kategorii.

Kasii
Kasii
W odpowiedzi do  Sławo

A skąd wezmę ID kategorii? Mam tylko nazwę

Sławo
Sławo
W odpowiedzi do  Kasii

Najszybciej – w panelu WP wejdź wpisy, następnie kategorie.
Po najechaniu myszą na 'edytuj’ przy kategorii na dole na pasku masz link i w nim zmienną tag_ID= xxx i to właśnie jest ID kategorii

Emil
Emil

Git. Działa jak powinno

Ta strona korzysta z ciasteczek. Więcej informacji

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close