programing

get_posts()에서 게시물 제외

telecom 2023. 3. 16. 21:08
반응형

get_posts()에서 게시물 제외

안녕하세요, 저는 비슷한 질문을 많이 찾았지만, 제 문제에 맞는 답이 하나도 없었습니다.요점은 매우 간단합니다.get_posts()를 사용하는 커스텀루프가 있어 현재 투고를 표시하지 않도록 하겠습니다.

코드는 다음과 같습니다.

$args = array(
          'posts_per_page'    => 3,
          'orderby'           => 'meta_value',
          'order'             => 'ASC',
          'post_type'         => 'fasthomepress_pt',
          'post__not_in'      => array(get_the_id()),
          'meta_query'        => array(
                                    array(
                                        'key' => 'custom_richiesta',
                                        'value' => array($custom_boxes['custom_richiesta'][0] - 10000, $custom_boxes['custom_richiesta'][0] + 10000 ),
                                        'type' => 'numeric',
                                        'compare' => 'BETWEEN'
                                      )
                              )
      );

시도 대상:

'post__not_in' => array(get_the_ID),
'post__not_in' => array($post->ID),
'exclude'      => $post->ID,
'exclude'      => get_the_ID,

어레이 유무에 관계없이 다양한 조합이 가능합니다.물론 이 루프 전에 현재 포스트 ID가 올바르게 에코($post->)됩니다.ID) 및 echo(get_the_ID()) 결과는 동일합니다.

무슨 일인지 정말 모르겠어요 도와줘서 고마워요

마르코

해라exclude.

$args = array(
      'posts_per_page'    => 3,
      'orderby'           => 'meta_value',
      'order'             => 'ASC',
      'post_type'         => 'fasthomepress_pt',
      'exclude'      => array(get_the_id()),
      'meta_query'        => array(
                                array(
                                    'key' => 'custom_richiesta',
                                    'value' => array($custom_boxes['custom_richiesta'][0] - 10000, $custom_boxes['custom_richiesta'][0] + 10000 ),
                                    'type' => 'numeric',
                                    'compare' => 'BETWEEN'
                                  )
                          )
  );

이 기능을 하는 것은 다음과 같습니다.

    function get_lastest_post_of_category($cat){
    $args = array( 'posts_per_page' => 1, 'order'=> 'DESC', 'orderby' => 'date', 'category__in' => (array)$cat);
    $post_is = get_posts( $args );
    return $post_is[0]->ID;
}

용도: 카테고리 ID가 22라고 하면:

$last_post_ID = get_lastest_post_of_category(22);

카테고리 배열을 이 함수에 전달할 수도 있습니다.

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $args = array(
    'posts_per_page'   => 18,
     'paged'           => $paged,
    'offset'           => 0,
    'post__not_in'     => array($last_post_ID,),
    'category'         => '',
    'category_name'    => '',
    'orderby'          => 'post_date',
    'order'            => 'DESC',
    'include'          => '',
    'exclude'          => '',
    'meta_key'         => '',
    'meta_value'       => '',
    'post_type'        => 'post',
    'post_mime_type'   => '',
    'post_parent'      => '',
    'post_status'      => 'publish',
    'suppress_filters' => true
);
// The Query
$the_query = new WP_Query( $args );

언급URL : https://stackoverflow.com/questions/28626761/exclude-posts-from-get-posts

반응형