ให้โพสต์เนื้อหาเด่นในหน้าแรกด้วยคำสั่งเดิม


17

ฉันกำลังค้นหาวิธีเก็บโพสต์เด่นในหน้าแรกบล็อกของฉันโดยไม่แยกออกจากโพสต์ข้อความค้นหา บล็อกของฉันใช้ชุดรูปแบบยี่สิบสี่ ฉันพบวิธีแก้ปัญหานี้

เปิดfeatured-content.phpจากโฟลเดอร์ inc ของชุดรูปแบบของคุณและค้นหารหัสต่อไปนี้ (บรรทัดที่ 269 ในกรณีของเรา)

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

เพียงคอมเม้นท์บรรทัดนี้โดยเพิ่มเครื่องหมายสแลชสองอันไว้ข้างหน้าเพื่อรับสิ่งนี้:

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

แต่ไฟล์ไม่มีบรรทัดนั้นและธีมลูกไม่สามารถแทนที่โฟลเดอร์ inc ของธีมหลักได้

ฉันได้พบวิธีแก้ไขปัญหาอื่นแล้วและใช้งานได้ แต่ปัญหาคือรหัสนี้แสดงการโพสต์เนื้อหาเด่นที่ไม่อยู่ในลำดับเดิม เมื่อโพสต์เนื้อหาเก่า - ฉันใช้โพสต์ติดหนึบเพื่อสร้างโพสต์เด่น - โพสต์เด่นจะโพสต์เนื้อหาเด่นกลายเป็นลำดับแรกจากนั้นโพสต์อื่น

ฉันลองใช้แท็กแบบมีเงื่อนไขแบบนี้

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 );

หน้าสองและอื่น ๆ ก็โอเค - แสดงโพสต์เด่นตามลำดับ - แต่หน้าแรกยังคงมีปัญหา

ข้อเสนอแนะใด ๆ


ฉันคิดว่าฉันมีคำตอบ ในการทำให้มันใช้งานได้คุณจะต้องใช้แท็ก 'ที่โดดเด่น' มากกว่าการใช้โพสต์ติดหนึบเพื่อสร้างเนื้อหาที่โดดเด่น ดังนั้นการแก้ปัญหานั้นถูกต้องและฉันมีความเข้าใจผิดและให้คำถามผิด แท็กตามเงื่อนไขคุณสามารถลบออกได้เนื่องจากโค้ดทำงานได้โดยไม่มีแท็กที่มีเงื่อนไข
Naziman Azlye

1
ฉันรู้ว่ามันค่อนข้างช้า แต่คุณจะเพิ่มความคิดเห็นข้างต้นเป็นคำตอบหรือไม่? คำถามนี้มี upvotes ค่อนข้างมากและมีคำตอบที่เหมาะสมทำให้ชัดเจนยิ่งขึ้น ขอบคุณล่วงหน้า!
kraftner

คำตอบ:


1

ฉันคิดว่าคุณสามารถใช้ 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; ?>

และสำหรับการสั่งซื้อโพสต์ของคุณคุณสามารถใช้คำสั่งซื้อและสั่งซื้อได้โดยดูที่ https://codex.wordpress.org/Class_Reference/WP_Query

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.