Przechowuj polecane treści na stronie głównej w oryginalnym porządku

17

Szukam sposobu, aby zachować polecany post na mojej stronie głównej blogu, nie wykluczając go z postu z zapytaniem. Mój blog używa motywu Twenty Fourteen. Znalazłem to rozwiązanie.

Otwórz plik featured-content.php z folderu inc motywu i poszukaj następującego kodu (w naszym przypadku wiersz 269).

$query->set( 'post__not_in', $featured );

Po prostu skomentuj ten wiersz, dodając dwa ukośniki przed nim, aby uzyskać:

// $query->set( 'post__not_in', $featured );

Ale plik nie ma tej linii, a motyw potomny nie może nadpisać folderu inc motywu nadrzędnego.

Znalazłem inne rozwiązanie i działa, ale problem polega na tym, że ten kod pokazuje post z polecaną zawartością nie w oryginalnej kolejności. Kiedy stary post z treścią - używam lepkiego postu, aby polecany post - stał się polecany, post z polecaną treścią stanie się pierwszym zamówieniem, a następnie drugim postem.

Próbowałem użyć tagu warunkowego w ten sposób.

function show_featured_content_on_home() {
if ( !is_home() ) {
remove_action( 'pre_get_posts', array( 'Featured_Content', 'pre_get_posts' ) );
    }
}
add_action( 'init', 'show_featured_content_on_home', 31 );

Druga strona i tak dalej - w porządku - wyświetlaj polecane posty w kolejności - ale strona główna nadal ma problem.

Jakieś sugestie?

Naziman Azlye
źródło
Myślę, że mam odpowiedź. Aby to zadziałało, musisz użyć tagu „polecany”, a nie przyklejonego postu, aby utworzyć polecaną treść. Tak więc rozwiązanie jest prawidłowe i źle rozumiem i zadaję złe pytanie. Tag warunkowy, możesz go usunąć, ponieważ kod działa bez tagów warunkowych.
Naziman Azlye
1
Wiem, że jest już dość późno, ale czy mógłbyś dodać powyższy komentarz jako odpowiedź? To pytanie ma sporo pozytywnych opinii, a właściwa odpowiedź czyni go bardziej oczywistym. Z góry dziękuję!
kraftner

Odpowiedzi:

1

Myślę, że możesz użyć WPQuery

    $the_query = new WP_Query( array( 'post__in' => get_option( 'sticky_posts' )) ); ?>

    <?php if ( $the_query->have_posts() ) : ?>

        <!-- pagination here -->

        <!-- the loop -->
        <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>   
<h2><?php the_title(); ?></h2>
        <?php endwhile; ?>
        <!-- end of the loop -->

        <!-- pagination here -->

        <?php wp_reset_postdata(); ?>


    <?php endif; ?>

a do zamawiania swojego postu możesz użyć zamówienia i zamówienia według odnośnika https://codex.wordpress.org/Class_Reference/WP_Query

Taj Khan
źródło