WordPress Pagination 작동하지 않는 페이지 2 Page 1과 동일
워드프레스 페이지를 작동시키려고 합니다.
저는 여러 플러그인을 사용하고 페이지의 코드를 조정해 보았습니다.php 함수는 소용이 없습니다.
지금까지 어떤 플러그인이나 조정을 사용했건 2, 3페이지 등은 항상 동일한 게시물 집합을 표시합니다.
여기 페이지에 코드가 있습니다.php
<!-- Previous / More Entries -->
<div class="mdnw_pagination">
<?php if(function_exists('wp_paginate')) :
wp_paginate();
; else : ?>
<div class="p button"><?php next_posts_link(__('« Previous Posts', 'skeleton')); ?></div>
<div class="m button"><?php previous_posts_link(__('Next Posts »', 'skeleton')); ?></div>
<?php endif; ?>
</div>
<!-- </Previous / More Entries -->
다음은 홈 페이지의 블로그 템플릿 코드입니다.
<!-- THE POST QUERY -->
<?php
wp_reset_query();
global $paged;
global $template_file;
$cat_string = '';
$format = '';
if( get_post_custom_values('blog_post_count') ) :
$post_array = get_post_custom_values('blog_post_count');
$post_count = join(',', $post_array);
else :
$post_count = -1;
endif;
/* Get Category Filter */
if(get_custom_field('blog_category_filter' )) :
$cats = get_custom_field( 'blog_category_filter' );
foreach ( $cats as $cat ) {
$acats[] = $cat;
}
$cat_string = join(',', $acats);
endif;
$args=array(
'cat'=>$cat_string, // Query for the cat ID's (because you can't use multiple names or slugs... crazy WP!)
'posts_per_page'=>$post_count, // Set a posts per page limit
'paged'=>$paged, // Basic pagination stuff.
);
query_posts($args); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'includes/format', $format ); ?>
<?php endwhile; else: ?>
<div class="post">
<p><?php _e('Sorry, no posts matched your criteria.', 'skeleton') ?></p>
</div><!-- /.post -->
<?php endif; ?>
<?php get_template_part( 'includes/element', 'pagination' ); ?>
<?php wp_reset_query(); ?>
</div>
첫 페이지 이외에 다른 내용을 표시하려면 파일 중에서 무엇을 변경해야 합니까?
읽기 창 설정을 변경하려고 하는데 쿼리 게시 기능은 내가 모르는 동적 값을 사용합니다.
어떻게 또는 무엇을 변경하여 작동시킬 수 있습니까?
이 https://wordpress.stackexchange.com/questions/105977/wordpress-pagination-not-working-always-showing-first-pages-content 페이지에서 솔루션을 사용해 보았지만 사용할 수 없었습니다.
코드를 다음과 같이 변경했습니다.
<?php
wp_reset_query();
global $paged;
global $template_file;
$cat_string = '';
$format = '';
if( get_post_custom_values('blog_post_count') ) :
$post_array = get_post_custom_values('blog_post_count');
$post_count = join(',', $post_array);
else :
$post_count = -1;
endif;
/* Get Category Filter */
if(get_custom_field('blog_category_filter' )) :
$cats = get_custom_field( 'blog_category_filter' );
foreach ( $cats as $cat ) {
$acats[] = $cat;
}
$cat_string = join(',', $acats);
endif;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array(
'cat'=>$cat_string, // Query for the cat ID's (because you can't use multiple names or slugs... crazy WP!)
'posts_per_page'=> 9, // Set a posts per page limit
'paged'=>$paged, // Basic pagination stuff.
);
$your_query = new WP_Query( $args ); ?>
<?php if ( $your_query->have_posts() ) : while ( $your_query->have_posts() ) : $your_query->the_post(); ?>
<?php get_template_part( 'includes/format', $format ); ?>
<?php endwhile; else: ?>
<div class="post">
<p><?php _e('Sorry, no posts matched your criteria.', 'skeleton') ?></p>
</div><!-- /.post -->
<?php endif; ?>
<?php get_template_part( 'includes/element', 'pagination' ); ?>
<?php wp_reset_query(); ?>
난 그걸 고쳤어.
여기서 해결 방법을 찾았습니다. http://themeforest.net/forums/thread/pagination-on-wordpress-static-page-set-to-front-page/28120
이렇게 하는 대신:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts( array( 'post_type' => 'post', 'paged' => $paged ) );
내가 한 짓은
if ( get_query_var('paged') ) {
$paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
$paged = get_query_var('page');
} else {
$paged = 1;
}
query_posts( array( 'post_type' => 'post', 'paged' => $paged ) );
이제 효과가 있어요!
새로운 주제들 사이에 틈이 생기면 저는 종종 이 페이지 문제를 잊어버리고 제가 어떻게 수정했는지 기억하는 데 한 시간을 소비해야 합니다.
제 방법은 모든 쿼리 옵션을 함수에 넣는 것입니다.페이지보다는 php.
예를 들어 pagination을 사용하는 경우 index.php 루프를 이렇게 시작하면 page-2-is-as-as-page-1 버그가 발생합니다.
<?php
$args = array( 'post_type' => 'post', 'posts_per_page' => 4, 'orderby' => 'date', 'order' => 'DESC', 'tag' => 'pics, vids' );
$loop = new WP_Query( $args );
while ($loop->have_posts() ) : $loop->the_post();
?>
기본 노프릴 루프 오프너로 바꿔주세요.
<?php while (have_posts()) : the_post(); ?>
그리고 같은 옵션을 함수에 넣었습니다.php 그래서 이런 모습일거에요..
function modify_query_order_index( $query ) {
if ( $query->is_front_page() && $query->is_main_query() && !is_admin() ) {
$query->set( 'orderby', 'date' );
$query->set( 'order', 'DESC' );
$query->set( 'posts_per_page', '4' );
$query->set( 'post_type', 'post' );
$query->set( 'tag', 'pics, vids' );
}
}
add_action( 'pre_get_posts', 'modify_query_order_index' );
페이지 기능이 어떻게 쓰이는지에 따라 1, 2, 3+페이지는 예상대로 동작해야 합니다.
상여금
함수에서 이 쿼리를 사용하여 posts_per_page를 조정하면 admin panel > /settings/reading/블로그 페이지에서 최대 xx로 표시되는 설정이 재정의되지 않는 반면 인 페이지 쿼리를 사용하여 페이지당 게시물을 설정하면 해당 설정이 재정의되지 않습니다.
언급URL : https://stackoverflow.com/questions/21345744/wordpress-pagination-not-working-page-2-same-as-page-1
'programing' 카테고리의 다른 글
MySQL에서 여러 필드를 기반으로 중복된 행을 찾는 방법? (0) | 2023.09.19 |
---|---|
WordPress 스케줄 이벤트가 설정된 시간 내에 발생하지 않음 (0) | 2023.09.14 |
반응 사각형 격자 (0) | 2023.09.14 |
"ERROR 2013 (HY000):데이터를 로드하는 동안 "쿼리 중" MySQL 서버에 대한 연결이 끊어졌습니다. (0) | 2023.09.14 |
XML 특성 값에서 큰따옴표를 피하려면 어떻게 해야 합니까? (0) | 2023.09.14 |