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.

To i ja się dołączę:
A jak zrobić żeby wyświetlić taki box ale z postami tylko z danej kategorii?
Proste – np. dodaj argument:
Gdzie xxx będzie ID kategorii.
A skąd wezmę ID kategorii? Mam tylko nazwę
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
Git. Działa jak powinno