사용자 정의 wp_query에서 워드프레스 페이지(next_posts_link)가 표시되지 않음
비슷한 질문들이 있었지만, 무엇이 그리운 것인지 알 수가 없네요!
일반 아카이브 또는 카테고리 페이지와 유사한 사용자 지정 유형 필드에 대한 정적 페이지가 있지만 페이지화가 작동하지 않습니다.
수동으로 2페이지로 이동하면(즉, 링크에 추가.../page/2) "New posts" 링크가 표시되지만 이전 페이지의 경우 첫 페이지에 표시되지 않습니다! next_posts_link()가 없는 것 같습니다(디브 주입 등이 없음).
여기 내 코드가 있습니다.
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$query_args = array (
'post_type' => 'bb_articoli',
'meta_key' => 'bb_data-pubblicazione',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'posts_per_page' => 2, //for testing purposes
'paged' => $paged,
'meta_query' => array(
array('key' => 'bb_fonte-pubblicazione',
'value' => 2,
'compare' => '='
)
)
);
$query = new WP_Query($query_args);
if ( $query->have_posts() ) :
while ( $query->have_posts()) :
$query->the_post();
get_template_part( 'content' , get_post_format());
endwhile;
next_posts_link();
previous_posts_link();
else :
get_template_part( 'content', 'none' );
endif;
어떤 도움이라도 주신다면 대단히 감사하겠습니다.감사해요.
B
참고로: 2012년 어린이 테마 사용
솔루션이 작동하는 이유는 전역 $wp_query 변수를 덮어쓰기 때문입니다.더 나은 솔루션은 $query->max_num_pages를 next_posts_link()에 추가하는 것입니다.
next_posts_link('« Older Entries', $query->max_num_pages)
여기서 $query는 새로 만든 개체의 이름입니다.이렇게 하면 $wp_query를 보존할 수 있습니다.
좋아요, 알았어요, 그래서 나중에 참고할 수 있도록 공유하고 싶어요.
알 수 없는 이유로 next_posts_link() 및 previor_posts_link()는 쿼리 개체가 호출된 경우에만 제대로 작동합니다.$wp_query!
따라서 쿼리 개체를 적절히 변경하면 전체 작업이 수행됩니다.
$wp_query = new WP_Query($query_args);
if ( $wp_query->have_posts() ) :
while ( $wp_query->have_posts()) :
$wp_query->the_post();
// do something
endwhile;
next_posts_link();
previous_posts_link();
저는 괜찮지만, 아직 충분히 테스트해보지 못했습니다.제가 보기에 이것은 어디에도 기록되어 있지 않습니다. 물론 코덱스에도 기록되어 있지 않습니다.마드하지의 댓글 4에서 답을 찾았습니다.
건배.
저도 같은 문제가 있었습니다.나는 모든 해결책을 시도해 보았지만 아무 것도 도움이 되지 않았습니다.
위의 솔루션으로 이 문제를 해결할 수 없는 분들을 위해 제가 만든 것은 다음과 같습니다.
<?php
global $wp_query, $paged;
if( get_query_var('paged') ) {
$paged = get_query_var('paged');
}else if ( get_query_var('page') ) {
$paged = get_query_var('page');
}else{
$paged = 1;
}
$wp_query = null;
$args = array(
'post_type' => array("fashion", "tv", "sport"),
'orderby'=>'date',
'order'=>'DESC',
'posts_per_page' => 5,
'paged' => $paged
);
$wp_query = new WP_Query();
$wp_query->query( $args );
while ($wp_query->have_posts()) : $wp_query->the_post();
/* YOUR CONTENT HERE */
endwhile;
next_posts_link('next');
previous_posts_link('previous');
wp_reset_query();
?>
중요한 것은 당신의 코드를 글로벌 변수들과 시작하는 것입니다.next_posts_link()그리고.previous_posts_link()함수들은 읽고 있습니다.global $paged그리고.$wp_query가치.
제가 도와드릴 수 있었으면 좋겠네요!
언급URL : https://stackoverflow.com/questions/14364488/wordpress-pagination-next-posts-link-on-custom-wp-query-not-showing
'programing' 카테고리의 다른 글
| AngularJS : 서비스 $broadcast 및 $watch가 수신 컨트롤러에서 트리거되지 않음 (0) | 2023.09.20 |
|---|---|
| 오라클에서 varchar2 필드를 더 짧게 만드는 방법은? (0) | 2023.09.20 |
| 이름별 쿼리 테이블 개체 참조 (0) | 2023.09.20 |
| Invocation of init method failed; nested exception for a second one to many (0) | 2023.09.20 |
| UIMuController가 표시되지 않음 (0) | 2023.09.20 |