Hãy tìm kiếm trước khi đặt câu hỏi, bạn sẽ tiết kiệm rất nhiều thời gian

Nhưng đừng ngại hỏi và đóng góp câu trả lời

Chỉ hiển thị title của Post khi có các bài viết liên quan.

+1 phiếu
level-1 đã hỏi 19 Tháng 8, 2015 bởi Khách

Mình có đoạn code sau để lấy ra các Related Post:

<?php

$cat_ids = array();

$postID = get_the_ID();

$categories = get_the_terms($postID, 'article-category'); //this will give all the terms

foreach($categories as $cat) {

    $cat_ids[] = $cat->term_id; //you may put some condition and consider only some specific terms as per your requirement

}

$args = array(

        'post_type' => 'article', 

        'posts_per_page' => 5,

        'tax_query' => array(array( 

        'taxonomy' => 'article-category',

        'field' => 'id',

        'terms' => $cat_ids //ids of specified terms

        )

      )

   );

$exclude = get_the_ID();

$your_query = new WP_Query( $args );

echo '<div class="posts-group">';

echo '<h2>More blog posts</h2>';

while( $your_query->have_posts() ) : $your_query->the_post();

    if( $exclude != get_the_ID() ) {

        echo '

        <article class="post home-post">

            <a href="' . get_permalink() . '">

                <div class="post-thumbnail-img">

                    ' . get_the_post_thumbnail($_post->ID, "small-thumbnail") . '

                </div>

                <h2>' . get_the_title() . '</h2>

            </a>

        </article>';

    }

endwhile;

echo '</div><br>';

?>

Tuy nhiên "echo '<h2>More blog posts</h2>';" nó luôn hiển thị, mình chỉ muốn nó hiển thị khi có các Related Post, mong các bạn giúp đỡ.

Hỏi bạn bè:

1 câu trả lời

+1 phiếu
level-1 đã trả lời 19 Tháng 8, 2015 bởi Quang TOP VOTED

Chào bạn, bạn có thể kiểm tra trước khi lòng lặp của bạn hoạt động, bạn thử xem đoạn code mình sửa dưới đây nhé:

$args = array(

    'post__not_in' => array( get_the_ID() ), //Add this line to exclude the current post.

    'post_type' => 'blog', 

    'posts_per_page' => 5,

    'tax_query' => array(

        array( 

            'taxonomy' => 'blog-athlete',

            'field' => 'id',

            'terms' => $cat_ids 

        )

    )

);

$relatedquery = new WP_Query( $args );

if( $relatedquery->have_posts() ) : 

    echo '<div class="posts-group">';

    echo '<h2>More blog posts:</h2>';

    while( $relatedquery->have_posts() ) : $relatedquery->the_post();

        //Removed the IF here

        echo '

            <article class="post home-post">

                <a href="' . get_permalink() . '">

                    <div class="post-thumbnail-img">

                        ' . get_the_post_thumbnail($_post->ID, "small-thumbnail") . '

                    </div>

                    <h2>' . get_the_title() . '</h2>

                </a>

        </article>';

        // Removed the closing of the IF here

    endwhile;

    echo '</div><br>';

endif;

...