워드프레스 개발 - 파라미터를 포함한 쇼트코드 생성
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 워드프레스 개발자
- PHP와 워드프레스 쇼트코드 활용에 관심 있는 중급 이상 개발자
- 난이도: 중간 (PHP 기본 지식과 워드프레스 쇼트코드 이해 필요)
핵심 요약
add_shortcode("prices_table", "handle_prices_table_shortcode")
함수로 쇼트코드를 등록array_change_key_case($atts, CASE_LOWER)
로 파라미터 이름을 소문자로 통일shortcode_atts()
로 기본값(header
,body
)을 설정하고 사용자 입력으로 덮어씌움
섹션별 세부 요약
1. 쇼트코드 등록 및 기본 구조
add_shortcode()
함수로 쇼트코드 이름과 콜백 함수를 연결- 콜백 함수
handle_prices_table_shortcode
는$atts
와$content
를 매개변수로 받음 $content
가 존재하면 빈 값 반환 (내용을 포함하는 쇼트코드는 본 문서에서 다루지 않음)
2. 파라미터 처리 및 기본값 설정
$atts
배열의 키를 소문자로 변환:array_change_key_case($atts, CASE_LOWER)
shortcode_atts()
로 기본값 정의:
```php
array(
"header" => array("#","Fruit Name","Fruit Price"),
"body" => array(
array("Fruit 1","Price 1"),
array("Fruit 2","Price 2")
)
)
```
- 사용자 입력이 없을 경우 기본값이 자동으로 적용됨
3. 테이블 생성 로직
- 테이블 헤더 생성:
$finalAtts['header']
배열을 순회하며
태그 생성
```php
for($i = 0; $i <= count($finalAtts['header']); $i++ ){
$htmlMarkup .= "
}
```
- 테이블 본문 생성:
$finalAtts['body']
배열을 순회하며
/
태그 생성
```php
foreach($finalAtts['body'] as $index => $rowValues ){
$num = $index + 1;
$htmlMarkup .= "
foreach($rowValues as $record ){
$htmlMarkup .= "
}
}
```
- 최종 HTML 문자열을
return $htmlMarkup;
로 반환
결론
- 쇼트코드 파라미터는 소문자로 통일하고
shortcode_atts()
로 기본값을 설정해 안정성을 확보하세요 - 테이블 생성 시
foreach
와for
루프를 활용해 배열 데이터를 HTML로 변환 - 생성한 쇼트코드는 워드프레스 게시물에
[prices_table]
로 직접 삽입하여 테스트 가능