ChatGPT의 말:
말씀하신 상황은 워드프레스에서 Ajax Load More 플러그인을 사용해 게시물을 불러오는 무한 스크롤 기능을 구현하는 중이고, 이를 HTML 위젯에 삽입하셨다는 것으로 이해됩니다. 그런데 카테고리별로 필터링된 무한 스크롤이 되어야 한다는 점에서 현재 문제가 있습니다. 이를 해결하는 방법은 아래와 같습니다.
✅ 카테고리별 무한 스크롤을 구현하는 방법
1. Shortcode에 category 파라미터 추가
[ajax_load_more] 숏코드에는 category 파라미터를 추가할 수 있습니다.
예시:
html[ajax_load_more post_type="post" posts_per_page="6" category="news"]
위처럼 하면 news 카테고리의 글만 무한 스크롤로 불러옵니다.
2. 카테고리별 위젯 분리
카테고리별로 다른 위젯을 만들고, 각 위젯에 해당 카테고리에 맞는 숏코드를 넣는 방법도 있습니다.
예시:
htmlnews위젯:[ajax_load_more post_type="post" category="news"]
htmlevent위젯:[ajax_load_more post_type="post" category="event"]
3. 카테고리 자동 인식 (템플릿에 삽입할 때)
만약 PHP 파일이나 템플릿에 넣을 수 있다면, 현재 카테고리를 자동으로 인식하게 할 수 있습니다:
php<?php echo do_shortcode('[ajax_load_more post_type="post" category="' . get_queried_object()->slug . '"]'); ?>
4. JavaScript 탭 기반 구현 (고급)
카테고리별 탭을 만들어 <div> 영역을 전환하거나 AJAX 파라미터를 JavaScript로 바꿔주는 방식도 있습니다. 이 경우에는 HTML 위젯보다 PHP 템플릿 파일이나 커스텀 페이지에서 구현하는 것이 효율적입니다.
⚠️ 주의사항
HTML 위젯에서는 JavaScript나 CSS를 삽입할 수 있지만, 보안이나 테마 설정에 따라 제한될 수 있습니다.
Ajax Load More 플러그인의 유료 애드온이 필요한 경우도 있습니다 (
category__in,taxonomy옵션 등).
필요하시다면 예시 탭 UI나 특정 카테고리를 자동 감지하는 코드를 제공해드릴 수 있습니다.
원하시는 형태는 어떤 방식에 더 가까우신가요? (예: 탭으로 전환 / 위젯 나누기 / 동적으로 인식)
나의 말:
카테고리 자동 인식 (템플릿에 삽입할 때) 만약 PHP 파일이나 템플릿에 넣을 수 있다면, 현재 카테고리를 자동으로 인식하게 할 수 있습니다: 위 내용을 설명해주세요ChatGPT의 말:
물론입니다. 워드프레스에서 “현재 보고 있는 카테고리 페이지”에 맞춰 Ajax Load More가 자동으로 해당 카테고리의 글만 불러오도록 만드는 방식입니다. 아래에서 단계별로 설명드리겠습니다.
✅ 목표
방문자가 news라는 카테고리 페이지를 보고 있다면:
[ajax_load_more category="news"]
처럼 자동으로 news 카테고리를 인식해서 게시글을 무한 스크롤로 불러오게 합니다.
✅ 방법: PHP 템플릿에 Shortcode 삽입
📌 코드:
php<?php
echo do_shortcode('[ajax_load_more post_type="post" category="' . get_queried_object()->slug . '"]');
?>
🔍 각 부분 설명:
| 코드 부분 | 설명 |
|---|---|
get_queried_object() | 현재 보고 있는 아카이브(카테고리, 태그 등)의 정보를 가져옵니다. |
->slug | 현재 카테고리의 슬러그(예: news, event)를 추출합니다. |
'[ajax_load_more ...]' | Ajax Load More 숏코드를 PHP에서 실행합니다. |
do_shortcode() | PHP 안에서 워드프레스 숏코드를 실행할 때 사용하는 함수입니다. |
즉, 이 코드는 현재 카테고리의 슬러그를 자동으로 삽입한 숏코드를 PHP에서 실행시킵니다.
✅ 적용 위치
이 코드는 보통 다음 중 한 곳에 넣습니다:
category.phparchive.php또는
content-category.php(테마 구조에 따라 다름)
예시:
php<!-- category.php -->
<div>
<?php echo do_shortcode('[ajax_load_more post_type="post" posts_per_page="6" category="' . get_queried_object()->slug . '"]'); ?>
</div>
🔁 결과
이제 어떤 카테고리 페이지를 방문해도, 그 카테고리의 포스트만 무한 스크롤로 로딩됩니다.
필요하시면 탭별 카테고리 필터 UI도 함께 구현해드릴 수 있습니다.
혹시 사용 중인 테마 이름이나 구조를 알려주실 수 있나요?
나의 말:
gridhot입니다ChatGPT의 말:
감사합니다. Gridhot 테마는 뉴스/매거진 스타일의 반응형 테마로, 카테고리 페이지(category.php)나 아카이브 페이지에서 카드 형태로 포스트를 나열하는 방식입니다. 이 테마에 무한 스크롤(Ajax Load More)을 카테고리 자동 인식 방식으로 넣으려면 아래와 같이 진행하시면 됩니다.
✅ 1. category.php 또는 archive.php 열기
/wp-content/themes/gridhot/ 경로에서 다음 파일을 찾으세요:
category.php가 있다면 그 파일 사용없다면
archive.php또는index.php를 사용하세요 (카테고리 템플릿의 fallback)
✅ 2. 기존 루프를 Ajax Load More로 대체
Gridhot 테마는 대개 이런 식의 루프를 갖고 있습니다:
php<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- 포스트 카드 출력 -->
<?php endwhile; endif; ?>
이 루프를 아래 코드로 교체하거나, 그 아래에 추가하세요:
php<div>
<?php echo do_shortcode('[ajax_load_more post_type="post" posts_per_page="6" category="' . get_queried_object()->slug . '"]'); ?>
</div>
✅ 3. Ajax Load More 플러그인 설치 및 설정
플러그인 설치: WordPress 관리자 → 플러그인 →
Ajax Load More검색 후 설치설정 확인:
post type:
postposts per page:
6등 원하는 숫자layout:
grid또는 테마에 맞는 출력 형태 선택
✅ 4. 필요 시 스타일 조정
Gridhot 테마의 카드 레이아웃이 Ajax Load More의 기본 출력과 다를 수 있습니다.
이 경우 CSS를 추가하거나 Ajax Load More의 템플릿(Repeater Template) 기능을 사용해서 기존 카드 스타일에 맞게 조정해야 합니다.
예시로 repeater 옵션을 써서 커스텀 템플릿을 불러올 수도 있습니다:
[ajax_load_more post_type="post" category="news" repeater="gridhot-template"]
※
repeater는 Ajax Load More의 [Pro 애드온] 기능입니다.
✅ 요약
| 작업 | 내용 |
|---|---|
| 파일 수정 | category.php 또는 archive.php 열기 |
| 기존 루프 교체 | do_shortcode('[ajax_load_more ...') 형태 삽입 |
| 자동 카테고리 인식 | get_queried_object()->slug 사용 |
| 스타일 맞춤 | 필요 시 repeater 템플릿이나 CSS 수정 |
필요하시다면 Gridhot 테마용 맞춤형 repeater 템플릿 코드도 만들어드릴 수 있습니다. 원하시나요?
Ajaks가 하단에 지워지지 않고 남아있을 때 아래의 위젯에서 지원야만 합니당