작성
·
58
0
선생님 강의 잘 듣고 있습니다. 수업 중 난관에 부딪혀서 질문 남깁니다.
문제 1
현재 content.php 에서 커스텀 쿼리를 생성 후
posts_per_page => 6 의 값을 넣고 난 후
/blog/page/6/ 에서부터 404 오류 페이지로 이동 됩니다.
(1, 2, 3, 4, 5 페이지까지는 페이지가 나오는데 6, 7 을 404 페이지를 보여줍니다.)
구글링 해본 결과 :
1. 워드프레스 탭에서 설정 고유주소 변경 : 실패
2. 설정 -> 읽기 페이지당 보여줄 글의 수 를 posts_per_page과 동일하게 6으로 맞춤 -> 모든 페이지(blog/page) 완벽하게 작동됨, 하지만 프론트 페이지에 front-latest posts도 6으로 나옴: 실패
<?php
// $paged = get_query_var('paged') ? get_query_var('paged') : 1;
$commonQuery = new WP_Query(array(
'post_type' => 'post',
'posts_per_page' => 3,
'category__not_in' => array(32),
'paged' => get_query_var('paged', 1)
));
문제 2 :
블로그 페이지 topBanner는 타이틀 및 서브 타이틀이 text-align이 수정되지 않음(다른 페이지는 작동)
그리고 블로그 페이지의 title이 블로그 게시물의 text-align에 따라 같이 움직임 (최근 블로그 게시물의 텍스트 얼라인을 왼쪽으로 작성하면 블로그 페이지의 타이틀도 왼쪽으로 이동됨)
답변 2
0
category__not_in 때문에 그렇습니다.
$GLOBALS['wp_query']->max_num_pages = $commonQuery->max_num_pages;
넣어보세요
스타일링에서 수정해 보시죠.
WP_Query의 array에서
category__not_in 코드를 주석처리하지 마시고,
그 밑에
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
로 고쳐주세요.
그리고 아래 pagination 코드 바로 위에 아래 코드를 추가해 주세요.
$GLOBALS['wp_query']->max_num_pages = $commonQuery->max_num_pages;
pagination 페이지가 더 있는데, 6, 7페이지에서 404를 내는 것은 제외된 조건 때문에 그렇습니다.
테스트로 echo $commonQuery->max_num_pages; 라고 입력해서 숫자가 어떻게 보이는지 확인해 보세요.
function modify_main_query($query)
{
if (!is_admin() && $query->is_main_query() && (is_home() || is_archive() || is_category())) {
if (!$query->get('posts_per_page')) {
$query->set('posts_per_page', 6);
}
}
}
add_action('pre_get_posts', 'modify_main_query');
디버그 해본 결과 pre_get_posts 훅을 추가한 뒤 해결했습니다. 명절인데도 답변해주셔서 감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 박영준님께서 워드프레스 블로그 페이지에서 페이지네이션과 레이아웃 조정 문제로 질문을 주셨군요. 각각의 문제에 대해 답변드리겠습니다.
페이지 당 표시할 포스트 수와 관련하여 페이지네이션에서 404 오류가 발생하는 문제는 종종 설정과 관련이 있습니다. 다음을 확인해보시기 바랍니다:
functions.php
에서의 query
수정: pre_get_posts
필터를 사용하여 쿼리를 전역적으로 수정할 수 있습니다. 다음 코드를 추가해보세요.
function adjust_main_query( $query ) {
if ( ! is_admin() && $query->is_main_query() ) {
// 여기에 쿼리 조건을 지정합니다.
if ( is_home() ) {
$query->set( 'posts_per_page', 6 );
}
}
}
add_action( 'pre_get_posts', 'adjust_main_query' );
permalink
설정 재저장: 워드프레스의 설정 > 고유주소에서 현재 설정을 다시 저장하면, 페이지네이션 관련 규칙이 다시 작성될 수 있습니다.
Custom Query 결과 확인: 커스텀 쿼리로 인해 기본 쿼리가 방해받는 경우, wp_reset_postdata()
를 쿼리 이후에 호출하여 원래의 쿼리 상태를 복구하세요.
블로그 페이지의 타이틀과 포스트 타이틀이 올바르게 정렬되지 않는 문제는 템플릿 혹은 스타일시트에서의 지정된 값과 충돌하는 만큼, 스타일의 구체정의(CSS specificity)를 확인하고 교정해보세요:
스타일시트 수정: 블로그 페이지와 다른 페이지들의 타이틀에 특화된 스타일을 확인하여 css 속성을 그대로 활용하거나 수정해보세요.
.blog-page-title {
text-align: center; /* 적절한 위치로 맞추세요 */
}
.post-title {
text-align: left; /* 포스트에 최소한의 특정 스타일 */
}
템플릿 파일 검토: topBanner
와 블로그 페이지 템플릿 파일에서 text-align
클래스를 찾고, 모든 페이지에 동일로 만들어 스타일을 통일하세요.
지금 제안드린 방법으로 해결이 안 되는 부분이 있다면, 현 문제 내용을 더 세부적으로 알려주시면 추가적으로 도와드릴 수 있습니다.
참고 URL:
- Pagination Issues
- Fix WordPress Theme CSS Conflicts
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
category__not_in 주석처리해도 동일합니다.
위 코드를 추가해도 그대로 404 페이지로 이동합니다.
2. css가 문제가 아닌거 같아요, topBanner.php에 acf로 받아온 $text_align
<div class="text-center <?php echo ($text_align ? 'text-md-' . $text_align : ''); ?>">
블로그 페이지 탑배너 탭의 Text Align 수정이 적용되지 않습니다. (다른 페이지는 수정됨)