The Wayback Machine - https://web.archive.org/web/20200504235710/https://codex.wordpress.org/ko:Theme_Development

WordPress.org

Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

ko:Theme Development

Contents

์ด ๋ฌธ์„œ๋Š” ์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ ๊ฐœ๋ฐœ์— ๊ด€ํ•œ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ํ…Œ๋งˆ ์‚ฌ์šฉ๋ฒ• ์„ ์‚ดํŽด๋ณด์„ธ์š”. ์ด ๊ธ€์—์„œ๋Š” ํ…Œ๋งˆ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด ํ•ญ๋ชฉ์€ ์˜คํžˆ๋ ค ์ƒˆ๋กœ์šด ํ…Œ๋งˆ๋ฅผ ์ฐพ๊ณ  ํ…Œ๋งˆ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋‚˜๋งŒ์˜ ํ…Œ๋งˆ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ธฐ์ˆ ์ ์ธ ์ธก๋ฉด์„ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์™œ ์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ์ธ๊ฐ€์š”

์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ๋Š” ์›Œ๋“œํ”„๋ ˆ์Šค ์‚ฌ์ดํŠธ์˜ ๋””์ž์ธ๊ณผ ๊ธฐ๋Šฅ์„ ๋ฌถ์–ด ๋งŒ๋“  ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ๊ฐ ํ…Œ๋งˆ๋Š” ๊ณง๋ฐ”๋กœ ์ž์‹ ์˜ ์›น์‚ฌ์ดํŠธ ๋ชจ์–‘์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ์‚ฌ์ดํŠธ ์†Œ์œ ์ž๋ฅผ ์œ„ํ•ด ๋งŽ์€ ์„ ํƒ๊ถŒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ์ ํŠธ๋‚˜ ์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ ๋””๋ ‰ํ† ๋ฆฌ์— ์ œ์ถœํ•˜๊ธฐ ์œ„ํ•ด, ์ž์‹ ์ด ์‚ฌ์šฉํ•˜๋Š” ์›Œ๋“œํ”„๋ ˆ์Šค์˜ ํ…Œ๋งˆ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์™œ ์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ• ๊นŒ์š”?

  • ๋‹น์‹ ์˜ ์›Œ๋“œํ”„๋ ˆ์Šค ์‚ฌ์ดํŠธ๋ฅผ ํฌ์†Œ์„ฑ์žˆ๊ณ  ๊ฐ€์น˜์žˆ๊ฒŒ ๋ณด์ด๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ํ…œํ”Œ๋ฆฟ์„ ์ž˜ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด, ํ…œํ”Œ๋ฆฟ ํƒœ๊ทธ์™€ ์›Œ๋“œํ”„๋ ˆ์Šค ๋ฃจํ”„๋กœ ์›น์‚ฌ์ดํŠธ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•ด ๋ณด์ž…๋‹ˆ๋‹ค
  • ์‚ฌ์ดํŠธ์˜ ํŠน์ • ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋Œ€์ฒด ํ…œํ”Œ๋ฆฟ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค๋ฉด ์นดํ…Œ๊ณ ๋ฆฌ ํŽ˜์ด์ง€์™€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํŽ˜์ด์ง€ ๊ฐ™์€

์žฌ๋น ๋ฅด๊ฒŒ ์—ฌ๋Ÿฌ ์‚ฌ์ดํŠธ์˜ ๋ ˆ์ด์•„์›ƒ์„ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด, ์Šคํƒ€์ผ ์Šค์œ„์ฒ˜๋ฅผ ํ†ตํ•ด ์‚ฌ์ดํŠธ ์†Œ์œ ์ž๋Š” ์‚ฌ์ดํŠธ์˜ ๋ชจ์–‘์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฐ–์—๋„, ์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ์—๋Š” ๋งŽ์€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ์Šคํƒ€์ผ๊ณผ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์‚ฌ์ดํŠธ์˜ ์‹œ๊ฐ์ ์ธ ํ‘œํ˜„์— ํฐ ์˜ํ–ฅ์—†์ด ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ…Œ๋งˆ์˜ ๊ณ ์œ ํ•œ ๊ธฐ๋Šฅ์ธ ์‚ฌ์šฉ์ž ์ •์˜ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์ดํŠธ์— ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์›Œ๋“œํ”„๋ ˆ์Šค ์‚ฌ์ดํŠธ์˜ ์‹œ๊ฐ์ ์ธ ๋””์ž์ธ๊ณผ ๋ ˆ์ด์•„์›ƒ์˜ ๋ฐœ๋น ๋ฅธ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฉ‹์ง„ ์›น์‚ฌ์ดํŠธ๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด CSS, HTML ๊ทธ๋ฆฌ๊ณ  PHP ๋ฅผ ๋ฐ˜๋“œ์‹œ ๋ฐฐ์›Œ์•ผ๋งŒ ํ•œ๋‹ค๋Š” ํ‹€์—๋ฐ•ํžŒ ๊ณ ์ •๊ด€๋…์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์™œ ์ž์‹ ๋งŒ์˜ ์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ๋ฅผ ๊ตฌ์ถ•ํ•ด์•ผ๋งŒ ํ•˜๋Š”๊ฐ€? ๊ทธ๊ฒƒ์ด ์ •๋ง ์•Œ๊ณ ์‹ถ์Šต๋‹ˆ๋‹ค.

  • ๊ทธ๊ฒƒ์€ ๋ฐ”๋กœ CSS, HTML ๋ฐ PHP ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ๋ฐฐ์šธ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ์ž…๋‹ˆ๋‹ค.
  • ๊ทธ๊ฒƒ์ด ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š”๊ฒƒ์€ CSS, HTML ๋ฐ PHP ์™€ ๊ฐ™์€ ๊ท€ํ•˜์˜ ์ „๋ฌธ ์ง€์‹์„ ์‹œํ—˜ํ•  ๊ธฐํšŒ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฐฝ์กฐ์ ์ž…๋‹ˆ๋‹ค.
  • ์žฌ๋ฐŒ์Šต๋‹ˆ๋‹ค. (์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฌ์ง€๋งŒ)
  • ๋งŒ์ผ ๋‹น์‹ ์ด ๊ณต์‹ ๋ฆด๋ฆฌ์ฆˆํ•˜์˜€๊ณ , ์Šค์Šค๋กœ ๋งŒ์กฑ์„ ๋А๋‚€๋‹ค๋ฉด ์›Œ๋“œํ”„๋ ˆ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ทธ๊ฒƒ์„ ๊ณต์œ ํ•˜๊ณ  ๋“ค๋ ค ์ฃผ์„ธ์š” (ใ…‹, ์ž๋ž‘ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค)

ํ…Œ๋งˆ ๊ฐœ๋ฐœ ํ‘œ์ค€

์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ์ค€์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋”ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

ํ…Œ๋งˆ์˜ ๊ณจ๊ฒฉ

์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ๋Š” wp-content/themes/ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์„œ๋ธŒ(ํ•˜์œ„)๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ๋งˆ ์„œ๋ธŒ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” ํ…Œ๋งˆ ์Šคํƒ€์ผ์‹œํŠธ ํŒŒ์ผ, ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ, ์˜ต์…˜ ๊ธฐ๋Šฅ ํŒŒ์ผ (functions.php), ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ, ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ์ง€ ๊ฐ™์€ ๊ฒƒ๋“ค์ด ๋ชจ๋‘ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "test" ๋ผ๋Š” ์ด๋ฆ„์˜ ํ…Œ๋งˆ๋Š” wp-content/themes/test/ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ๋งˆ ์ด๋ฆ„์— ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”, ์ด๊ฒƒ์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ…Œ๋งˆ ๋ชฉ๋ก์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š”๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

์ƒˆ๋กญ๊ฒŒ ์„ค์น˜ํ•œ ์›Œ๋“œํ”„๋ ˆ์Šค์—๋Š” ๊ฐ๊ฐ์˜ ๊ธฐ๋ณธ ํ…Œ๋งˆ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์‹ ๋งŒ์˜ ํ…Œ๋งˆ ํŒŒ์ผ์„ ๋นŒ๋“œํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๊ธฐ๋ณธ ํ…Œ๋งˆ์˜ ํŒŒ์ผ์„ ํ›‘์–ด๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋น„์ฃผ์–ผ ๊ฐ€์ด๋“œ์˜ ๊ฒฝ์šฐ, infographic ์ฐธ์กฐ: http://yoast.com/wordpress-theme-anatomy/

์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ๋Š” ๋ณดํ†ต ์ด๋ฏธ์ง€์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ์ด์™ธ์—๋„, ์„ธ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์ฃผ์š” ํŒŒ์ผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ๋ฒˆ์งธ๋Š” style.css ๋ผ๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค, ์›น์‚ฌ์ดํŠธ ํŽ˜์ด์ง€์˜ ํ”„๋ฆฌ์  ํ…Œ์ด์…˜(๋น„์ฃผ์–ผ ๋””์ž์ธ๊ณผ ๋ ˆ์ด์•„์›ƒ)์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋‘๋ฒˆ์งธ๋Š” (functions.php) ๋ผ๋Š” ์˜ต์…˜ ๊ธฐ๋Šฅ ํŒŒ์ผ ์ž…๋‹ˆ๋‹ค. ๋์œผ๋กœ ์‚ฌ์ดํŠธ์— ํŽ˜์ด์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์›Œ๋“œํ”„๋ ˆ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ •๋ณด๋ฅผ ๋งŒ๋“ค๊ณ  ์ œ์–ดํ•˜๋Š” ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ๊ฐ๊ฐ ์‚ดํŽด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.

Child ํ…Œ๋งˆ

Child ํ…Œ๋งˆ๋Š” ์˜ค๋กœ์ง€ style.css ํŒŒ์ผ๊ณผ ๋ช‡๊ฐœ์˜ ์ด๋ฏธ์ง€๋งŒ ํฌํ•จํ•˜๋Š” ๊ฐ„๋‹จํ•œ ํ…Œ๋งˆ์ž…๋‹ˆ๋‹ค. Parent ์—ญํ• ์„ ํ•˜๋Š” ํ…Œ๋งˆ์˜ Child์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Child ํ…Œ๋งˆ๋ฅผ ์œ„ํ•œ ์ž์„ธํ•œ ์•ˆ๋‚ด๋Š”, Child ํ…Œ๋งˆ ๋˜๋Š” ์ด ํ›Œ๋ฅญํ•œ ๊ฐ•์˜์˜ ์ €์ž๋Š” op111์„ ๋ณด์„ธ์š”.

ํ…Œ๋งˆ ์Šคํƒ€์ผ์‹œํŠธ

ํ…Œ๋งˆ์— ๋Œ€ํ•œ CSS ์Šคํƒ€์ผ ์ •๋ณด ์ด์™ธ์—, style.css ๋Š” ์ฃผ์„์˜ ํ˜•ํƒœ๋กœ ํ…Œ๋งˆ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ€์ผ์‹œํŠธ๋Š” ๋ฐ˜๋“œ์‹œ ์ฃผ์„์˜ ํ˜•ํƒœ๋กœ ํ…Œ๋งˆ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ œ๊ณตํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‘๊ฐœ์˜ ํ…Œ๋งˆ๋Š” ๋™์ผํ•œ ๋‚ด์šฉ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์ž์‹ ์˜ ํ—ค๋”์— ์ฃผ์„์„ ๋‚จ๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค, ์ด์ฒ˜๋Ÿผํ…Œ๋งˆ ์„ ํƒ ๋Œ€ํ™”์ƒ์ž์—์„œ ๋ถ€ํ„ฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์ผ ๊ธฐ์กด์˜ ๊ฒƒ์„ ๋ณต์‚ฌํ•˜์—ฌ ์ž์‹ ๋งŒ์˜ ํ…Œ๋งˆ๋ฅผ ๋งŒ๋“ค ๊ฒฝ์šฐ, ๋จผ์ € ์ด ์ •๋ณด๋ถ€ํ„ฐ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์Šคํƒ€์ผ์‹œํŠธ์˜ ์ฒซ ๋ช‡์ค„์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค, "Twenty Ten" ํ…Œ๋งˆ์— ๋Œ€ํ•œ ์Šคํƒ€์ผ์‹œํŠธ ํ—ค๋”๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค:

/*
Theme Name: Twenty Ten
Theme URI: http://wordpress.org/
Description: The 2010 default theme for WordPress.
Author: wordpressdotorg
Author URI: http://wordpress.org/
Version: 1.0
Tags: black, blue, white, two-columns, fixed-width, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style, custom-menu (optional)

License:
License URI:

General comments (optional).
*/

์ฃผ์˜: ์ œ์ž‘์ž๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฆ„์€ wordpress.org ์˜ Theme Author ์™€ ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ ํ•˜๋Š”๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ก ์ œ์ž‘์ž์˜ ์‹ค์ œ ์ด๋ฆ„์„ ํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ์„ ํƒ์€ Theme Author ์ž…๋‹ˆ๋‹ค.

style.css ์˜ ์ฃผ์„ ํ—ค๋” ๋ถ€๋ถ„์„ ์ฝ์–ด๋“ค์—ฌ ์›Œ๋“œํ”„๋ ˆ์Šค์˜ ๋ชจ๋“  ์„ค์น˜๋œ ๋‹ค๋ฅธ ํ…Œ๋งˆ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ํ…Œ๋งˆ ์˜ต์…˜์œผ๋กœ ๊ด€๋ฆฌ์ž ํŒจ๋„ ์•„๋ž˜ ๋””์ž์ธ > ํ…Œ๋งˆ์— ํ‘œ์‹œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์Šคํƒ€์ผ์‹œํŠธ ์ง€์นจ

  • ๋‹น์‹ ์ด CSS ์ œ์ž‘์‹œ CSS ์ฝ”๋”ฉ ํ‘œ์ค€ ์„ ๋”ฐ๋ฅด๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ€๋Šฅํ•˜๋ฉด ํ‘œ์ค€ CSS๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์™ธ๋กœ, CSS3 ๊ธฐ๋Šฅ์„ ํ™œ์šฉ์‹œ ๋ฒค๋” ๊ณ ์œ ์˜ ์ ‘๋‘์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • CSS ํ•ต์„ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ฐฑํ•œ ์˜ˆ์™ธ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค, ๋ณดํ†ต IE ์—์„œ ๊ทธ๋Ÿฝ๋‹ˆ๋‹ค. ๋งŒ์ผ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด, CSS ํ•ต์€ ๋ณ„๋„์˜ ์„น์…˜์ด๋‚˜ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • ํฌ์ŠคํŠธ/ํŽ˜์ด์ง€, ๋‚ด์šฉ ๊ทธ๋ฆฌ๊ณ  ๋Œ“๊ธ€ ๋“ฑ ๊ฐ€๋Šฅํ•œํ•œ ๋ชจ๋“  HTML ์š”์†Œ๋Š” ๋ชจ๋‘ ํ…Œ๋งˆ ์Šคํƒ€์ผ๋กœ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ํ…Œ์ด๋ธ”, ์ž๋ง‰, ์ด๋ฏธ์ง€, ๋ชฉ๋ก, ๋ธ”๋ก, ๋”ฐ์˜ดํ‘œ, ๋“ฑ๋“ฑ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€.
  • ์ธ์‡„ ์นœํ™”์ ์ธ ์Šคํƒ€์ผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์ ๊ทน ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋ณธ ์Šคํƒ€์ผ ์‹œํŠธ์˜ ์ธ์‡„ ๋งค์ฒด ๋ธ”๋ก์— ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ธ์‡„ ์Šคํƒ€์ผ์‹œํŠธ media="print" ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•จ์ˆ˜ ํŒŒ์ผ

ํ…Œ๋งˆ๋Š” ์„ ํƒ์ ์œผ๋กœ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ํ…Œ๋งˆ์— ์žˆ๋Š” ํ•จ์ˆ˜ ํŒŒ์ผ์ธ functions.php ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ค‘์ธ ํ…Œ๋งˆ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ, ๊ทธ๊ฒƒ์€ ์ž๋™์œผ๋กœ ์›Œ๋“œํ”„๋ ˆ์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋™์•ˆ ๋กœ๋”ฉ ๋ฉ๋‹ˆ๋‹ค(๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ๋ฐ ์™ธ๋ถ€ ํŽ˜์ด์ง€ ๋ชจ๋‘์—). ์ด ํŒŒ์ผ์„ ์‚ฌ์šฉํ• ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค:

๊ธฐ๋ณธ์ ์œผ๋กœ ์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ๋Š” ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์˜ ๋Œ€๋ถ€๋ถ„์„ ์ •์˜ํ•˜๋Š” functions.php ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์›๋ž˜ functions.php ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Function_Reference ๋ชฉ๋ก์„ ๋ณด๋Š”๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ

ํ…œํ”Œ๋ฆฟ์€ ๋ฐฉ๋ฌธ์ž๊ฐ€ ์š”์ฒญํ•œ ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” PHP ์†Œ์Šค ํŒŒ์ผ์ด๋ฉฐ, HTML๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ํ…Œ๋งˆ์˜ ์ผ๋ถ€๋กœ ์ •์˜ํ•  ์ˆ˜์žˆ๋Š” ๋‹ค์–‘ํ•œ ํ…œํ”Œ๋ฆฟ์„ ์‚ดํŽด ๋ด…์‹œ๋‹ค.

์›Œ๋“œํ”„๋ ˆ์Šค๋Š” ์‚ฌ์ดํŠธ์˜ ๋‹ค์–‘ํ•œ ์ธก๋ฉด์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ํ…œํ”Œ๋ฆฟ์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋ ค๋ฉด ๊ท€ํ•˜์˜ ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“  ๋‹ค๋ฅธ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ, ํ•„์ˆ˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ํ…œํ”Œ๋ฆฟ์€ ํ…œํ”Œ๋ฆฟ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํŠน์ • ํ…Œ๋งˆ์— ๋”ฐ๋ผ ์„ ํƒํ•˜๊ณ  ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

ํ…Œ๋งˆ ๊ฐœ๋ฐœ์ž๋Š”, ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๋ถ€๋ถ„์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ทน๋‹จ์ ์ธ ๊ฒฝ์šฐ, ๋‹น์‹ ์€ ์‚ฌ์ดํŠธ์— ํ‘œ์‹œ๋˜๋Š” ๋ชจ๋“  ์ƒ์„ฑ๋œ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ํ…œํ”Œ๋ฆฟ์œผ๋กœ index.php๋ผ๋Š” ํ•˜๋‚˜์˜ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ์€ ์ตœ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ •์˜๋ฅผ ํ—ˆ์šฉํ•˜๋„๋ก ๋‹ค๋ฅธ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์ด ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ ์ข…๋ฅ˜

๋‹ค์Œ์€ ์›Œ๋“œํ”„๋ ˆ์Šค์—์„œ ํ—ˆ์šฉํ•˜๋Š” ํ…Œ๋งˆ ํŒŒ์ผ์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก , ๋‹น์‹ ์˜ ํ…Œ๋งˆ๋Š” ๋‹ค๋ฅธ ์Šคํƒ€์ผ ์‹œํŠธ, ์ด๋ฏธ์ง€ ๋˜๋Š” ํŒŒ์ผ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ง€, ์•„๋ž˜์˜ ๋‚ด์šฉ์€ ์›Œ๋“œํ”„๋ ˆ์Šค์— ํŠน๋ณ„ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ๋งŒ ๋ช…์‹ฌํ•˜์„ธ์š” - ํ…œํ”Œ๋ฆฟ ๊ณ„์ธต ๊ตฌ์กฐ ์—์„œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

style.css
๊ธฐ๋ณธ ์Šคํƒ€์ผ ์‹œํŠธ. ์ด๊ฒƒ์€ ๋ฐ˜๋“œ์‹œ ๋‹น์‹ ์˜ ํ…Œ๋งˆ์— ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹น์‹ ์˜ ํ…Œ๋งˆ์— ๋Œ€ํ•œ ํ—ค๋” ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
rtl.css
RTL ์Šคํƒ€์ผ ์‹œํŠธ. ์ด๊ฒƒ์€ ์ž๋™์œผ๋กœ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์›น์‚ฌ์ดํŠธ์˜ ํ…์ŠคํŠธ ๋ฐฉํ–ฅ์ด ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ๋˜์–ด ์žˆ๋‹ค๋ฉด. ๊ทธ๊ฒƒ์€ RTLer ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•œ๊ฒƒ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
index.php
๋ฉ”์ธ ํ…œํ”Œ๋ฆฟ. ํ…Œ๋งˆ์—์„œ ์ž์ฒด ํ…œํ”Œ๋ฆฟ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ index.php๋Š” ๋ฐ˜๋“œ์‹œ ์กด์žฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
comments.php
๋Œ“๊ธ€ ํ…œํ”Œ๋ฆฟ.
front-page.php
ํ”„๋ก ํŠธ ํŽ˜์ด์ง€ ํ…œํ”Œ๋ฆฟ, ์ด๊ฒƒ์€ ์ •์  ํ”„๋ก ํŠธ ํŽ˜์ด์ง€ ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
home.php
ํ™ˆ ํŽ˜์ด์ง€ ํ…œํ”Œ๋ฆฟ, ๊ธฐ๋ณธ์ ์ธ ์ฒซํŽ˜์ด์ง€ ์ž…๋‹ˆ๋‹ค. ๋งŒ์ผ ๋‹น์‹ ์ด ์ •์  ํ”„๋ก ํŠธ ํŽ˜์ด์ง€ ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์ด๊ฒƒ์€ ์ตœ์‹  ๊ฒŒ์‹œ๋ฌผ์ด ์žˆ๋Š” ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ํ…œํ”Œ๋ฆฟ ์ž…๋‹ˆ๋‹ค.
single.php
์‹ฑ๊ธ€ ํฌ์ŠคํŠธ ํ…œํ”Œ๋ฆฟ. ํ•˜๋‚˜์˜ ๊ฒŒ์‹œ๋ฌผ์„ ์ฟผ๋ฆฌํ• ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ์ฟผ๋ฆฌ ํ…œํ”Œ๋ฆฟ์— ์‚ฌ์šฉ๋˜๋‚˜, ์ฟผ๋ฆฌ ํ…œํ”Œ๋ฆฟ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ index.php ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
single-<post-type>.php
์‹ฑ๊ธ€ ํฌ์ŠคํŠธ ํ…œํ”Œ๋ฆฟ์€ ์‚ฌ์šฉ์ž ์ •์˜ ํฌ์ŠคํŠธ ์œ ํ˜•์—์„œ ํ•˜๋‚˜์˜ ๊ฒŒ์‹œ๋ฌผ์„ ์ฟผ๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, single-books.php ๋Š” books ์‚ฌ์šฉ์ž ์ง€์ • ํฌ์ŠคํŠธ ํ˜•์‹์—์„œ ํ•˜๋‚˜์˜ ๊ฒŒ์‹œ๋ฌผ์„ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. index.php ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ํฌ์ŠคํŠธ ์œ ํ˜•์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ ํ…œํ”Œ๋ฆฟ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
page.php
ํŽ˜์ด์ง€ ํ…œํ”Œ๋ฆฟ. ๊ฐ๊ฐ์˜ ํŽ˜์ด์ง€ ๋ฅผ ์ฟผ๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
category.php
์นดํ…Œ๊ณ ๋ฆฌ ํ…œํ”Œ๋ฆฟ. ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ฟผ๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
tag.php
The ํƒœ๊ทธ ํ…œํ”Œ๋ฆฟ. ํƒœ๊ทธ๋ฅผ ์ฟผ๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
taxonomy.php
์šฉ์–ด ํ…œํ”Œ๋ฆฟ. ์‚ฌ์šฉ์ž ์ •์˜ ๋ถ„๋ฅ˜ ์ฒด๊ณ„์˜ ์šฉ์–ด๋ฅผ ์ฟผ๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
author.php
์ž‘์„ฑ์ž ํ…œํ”Œ๋ฆฟ. ์ž‘์„ฑ์ž๋ฅผ ์ฟผ๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
date.php
์ผ/์‹œ ํ…œํ”Œ๋ฆฟ. ๋‚ ์งœ ๋˜๋Š” ์‹œ๊ฐ„์„ ์ฟผ๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋…„, ์›”, ์ผ, ์‹œ, ๋ถ„, ์ดˆ.
archive.php
์•„์นด์ด๋ธŒ(์ˆœ์„œ ๋ชฉ๋ก) ํ…œํ”Œ๋ฆฟ. ์นดํ…Œ๊ณ ๋ฆฌ, ์ €์ž, ๋˜๋Š” ๋‚ ์งœ๋ฅผ ์ฟผ๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ ์‚ฌํ•ญ. ์ด ํ…œํ”Œ๋ฆฟ์€ category.php, author.php, ๋ฐ date.php ๊ฐ๊ฐ์˜ ์ฟผ๋ฆฌ์œ ํ˜•์— ๋Œ€ํ•ด ์˜ค๋ฒ„๋ผ์ด๋“  ๋ฉ๋‹ˆ๋‹ค.
search.php
๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ํ…œํ”Œ๋ฆฟ. ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
attachment.php
์ฒจ๋ถ€ ํŒŒ์ผ ํ…œํ”Œ๋ฆฟ. ํ•˜๋‚˜์˜ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ๋ณผ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
image.php
์ด๋ฏธ์ง€ ์ฒจ๋ถ€ ํŒŒ์ผ ํ…œํ”Œ๋ฆฟ. ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€ ์ฒจ๋ถ€ ํŒŒ์ผ์„ ๋ณผ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, attachment.php ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
404.php
404 ์ฐพ์„ ์ˆ˜ ์—†์Œ ํ…œํ”Œ๋ฆฟ. ์›Œ๋“œํ”„๋ ˆ์Šค๊ฐ€ ์ฟผ๋ฆฌ์™€ ์ผ์น˜ํ•˜๋Š” ๊ฒŒ์‹œ๋ฌผ์ด๋‚˜ ํŽ˜์ด์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์„ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํŒŒ์ผ๋“ค์€ ์›Œ๋“œํ”„๋ ˆ์Šค์—์„œ ํŠน๋ณ„ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ๋“ค์€ ๊ฐ€๋Šฅํ•œํ•œ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ๋Š” ํ…œํ”Œ๋ฆฟ ๊ณ„์ธต๊ตฌ์กฐ ๋ฐ true ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์กฐ๊ฑด๋ถ€ ํƒœ๊ทธ ์— ๋Œ€์‘ํ•˜์—ฌ index.php ๋ฅผ ๋Œ€์‹ ํ•ด ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ๋งŒ์ผ ํ•˜๋‚˜์˜ ๊ฒŒ์‹œ๋ฌผ์ด ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ, is_single() ํ•จ์ˆ˜๋Š” 'true' ๋ฅผ ๋ฐ˜ํ™˜, ๊ทธ๋ฆฌ๊ณ , ๋งŒ์ผ ๊ทธ๊ฒƒ์ด ํ™œ์„ฑํ™”๋œ ํ…Œ๋งˆ ์•ˆ์—์„œ single.php ํŒŒ์ผ์ด ์žˆ๋‹ค๋ฉด, ํ…œํ”Œ๋ฆฟ์€ ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํ…œํ”Œ๋ฆฟ์˜ ๊ธฐ๋ณธ

์•„์ฃผ ์ตœ์†Œํ•œ์œผ๋กœ, ์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ๋Š” ๋‘ ๊ฐœ์˜ ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค :

  • style.css
  • index.php

์œ„ ๋‘ ํŒŒ์ผ์ด ์žˆ๋Š” ํ…Œ๋งˆ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์„ธ์š”. index.php ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ ์€ ๋งค์šฐ ์œ ์—ฐํ•˜๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ—ค๋”, ์‚ฌ์ด๋“œ๋ฐ”, ํ’‹ํ„ฐ, ์ฝ˜ํ…์ธ , ์นดํ…Œ๊ณ ๋ฆฌ, ์•„์นด์ด๋ธŒ, ๊ฒ€์ƒ‰, ์˜ค๋ฅ˜, ๊ทธ๋ฆฌ๊ณ  ์›Œ๋“œํ”„๋ ˆ์Šค์—์„œ ๋งŒ๋“  ๋‹ค๋ฅธ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๋ชจ๋“  ์ฐธ์กฐ๋ฅผ ํฌํ•จํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜๋Š”, ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ๋“ค๋กœ ๋ชจ๋“ˆํ™”(๋ถ„๋ฆฌ)ํ•˜์—ฌ ์ผ๋ จ์˜ ์ž‘์—…๋“ค์„ ๊ฐ๊ฐ ๋ถ„๋‹ด์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋‹น์‹ ์ด ๋‹ค๋ฅธ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ๋“ค์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์›Œ๋“œํ”„๋ ˆ์Šค๋Š” ๊ธฐ๋ณธ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋งŒ์•ฝ ๋‹น์‹ ์ด comments.php ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์ด ์—†์–ด๋„ ์›Œ๋“œํ”„๋ ˆ์Šค๋Š” ์ž๋™์œผ๋กœ Template Hierarchy์— ์˜ํ•ด wp-comments.php ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. (Note: As of version 3.0, the default files aren't guaranteed to be present or to be the same as they have been. It's much safer to supply your own template files.)

์ผ๋ฐ˜์ ์ธ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค :

  • comments.php
  • footer.php
  • header.php
  • sidebar.php

ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ๋•Œ, ๋‹น์‹ ์€ index.php ๋งˆ์Šคํ„ฐ ํŒŒ์ผ์— ํ…œํ”Œ๋ฆฟ ํƒœ๊ทธ๋ฅผ ๋„ฃ์–ด์„œ ์ตœ์ข…์ ์œผ๋กœ ์ƒ์„ฑ๋œ ํŽ˜์ด์ง€์— ๋‚˜ํƒ€๋‚ด๊ฒŒ ํ•˜๊ณ  ์‹ถ์€ ์žฅ์†Œ์— ์ธํด๋ฃจ๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ—ค๋”๋ฅผ ํฌํ•จ์‹œํ‚ค๋ ค๋ฉด, get_header()๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
  • ์‚ฌ์ด๋“œ๋ฐ”๋ฅผ ํฌํ•จ์‹œํ‚ค๋ ค๋ฉด, get_sidebar()๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
  • ํ’‹ํ„ฐ๋ฅผ ํฌํ•จ์‹œํ‚ค๋ ค๋ฉด, get_footer()๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
  • ๊ฒ€์ƒ‰ ํผ์„ ํฌํ•จ์‹œํ‚ค๋ ค๋ฉด, get_search_form()๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์—ฌ๊ธฐ include ๊ฐ€ ์‚ฌ์šฉ๋œ ์˜ˆ :

<?php get_sidebar(); ?>

<?php get_footer(); ?>

์ด๋Ÿฌํ•œ ๋‹ค์–‘ํ•œ ํ…œํ”Œ๋ฆฟ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•๊ณผ ์ด๋“ค ์•ˆ์— ์„œ๋กœ ๋‹ค๋ฅธ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋” ๋งŽ์€ ์ •๋ณด๋Š” ํ…œํ”Œ๋ฆฟ ๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋ณด์‹ญ์‹œ์˜ค.

ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ์ž ์ •์˜ ํŽ˜์ด์ง€

๊ฐ๊ฐ์˜ ํŽ˜์ด์ง€ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ๋“ค์€ ๋‹น์‹ ์˜ ํ…Œ๋งˆ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๋ฅผ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“œ๋ ค๋ฉด ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋“ค์˜ ํŽ˜์ด์ง€๋ฅผ ์œ„ํ•œ ์ฒซ๋ฒˆ์งธ ํŽ˜์ด์ง€ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ snarfer.php ๋ผ๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. snarfer.php ํŒŒ์ผ์˜ ์ตœ์ƒ๋‹จ์— ์•„๋ž˜ ๋ฌธ์žฅ์„ ๋ถ™์—ฌ ๋„ฃ์œผ์„ธ์š” :

<?php
/*
Template Name: Snarfer
*/
?>

์œ„ ์ฝ”๋“œ๋Š” snarfer.php ํŒŒ์ผ์„ "Snarfer" ๋ผ๋Š” ์ด๋ฆ„์˜ ํ…œํ”Œ๋ฆฟ์ด๋ผ๊ณ  ์ •์˜ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž์—ฐ์—ฐํžˆ "Snarfer" ์ž๋ฆฌ์—๋Š” ํŽ˜์ด์ง€ ํ…œํ”Œ๋ฆฟ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค๋ฅธ ๋ฌธ์ž๋“ค๋กœ ๋ฐ”๊ฟ”์•ผ ํ•˜๊ฒ ์ฃ . ์ด ํ…œํ”Œ๋ฆฟ์˜ ์ด๋ฆ„์€ ํ…Œ๋งˆ ํŽธ์ง‘๊ธฐ์—์„œ ์ด ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜๊ธฐ ์œ„ํ•œ ๋งํฌ๋กœ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ๋ช…์€ .php ํ™•์žฅ์ž์™€ ํ•จ๊ป˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์— ์–ด๋–ค ์ด๋ฆ„์œผ๋กœ ์ง€์–ด๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค. ( ์˜ˆ์•ฝ๋œ ํ…Œ๋งˆ ํŒŒ์ผ๋ช…์— ๋‚˜์™€์žˆ๋Š” ์ด๋ฆ„๋“ค์€ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. ์™œ๋ƒํ•˜๋ฉด ์ด ์ด๋ฆ„๋“ค์€ ํŠน์ˆ˜ํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ์›Œ๋“œํ”„๋ ˆ์Šค์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ๋ช…์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค).

What follows the above five lines of code is up to you. ๊ทธ์™ธ์— ๋‹น์‹ ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋“ค์€ Snarfer ํŽ˜์ด์ง€ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ(ํ‘œํ˜„)ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์ œ์–ดํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋‹น์‹ ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์›Œ๋“œํ”„๋ ˆ์Šค ํ…œํ”Œ๋ฆฟ ํ•จ์ˆ˜๋“ค์˜ ์„ค๋ช…์„ ๋ณด๋ ค๋ฉด Template Tags ์„ ๋ณด์„ธ์š”.

๋‹ค๋ฅธ ํ…œํ”Œ๋ฆฟ(์•„๋งˆ๋„ page.php ํ˜น์€ index.php)์˜ ์ผ๋ถ€๋ฅผ snarfer.php ์— ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์ด ์ข€ ๋” ํŽธ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚œ ๋’ค ์œ„์˜ 5์ค„ ์ฝ”๋“œ๋ฅผ ํŒŒ์ผ์˜ ์‹œ์ž‘์ ์— ์ถ”๊ฐ€ํ•˜์„ธ์š”. ๊ทธ ์ƒํƒœ์—์„œ ๋‹น์‹ ์€ HTML๊ณผ PHP ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์ด ์ฒ˜์Œ๋ถ€ํ„ฐ ์ƒˆ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ํŽธ๋ฆฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ์ œ๋Š” ์•„๋ž˜์— ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽ˜์ด์ง€ ํ…œํ”Œ๋ฆฟ์„ ์ž‘์„ฑํ•˜๊ณ , ํ…Œ๋งˆ ๋””๋ ‰ํ† ๋ฆฌ์— ์œ„์น˜์‹œ์ผœ ๋†“์œผ๋ฉด ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑ/ํŽธ์ง‘ ํ•  ๋•Œ ๊ทธ ํ…œํ”Œ๋ฆฟ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. (์ฐธ๊ณ : ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑ/ํŽธ์ง‘ํ•  ๋•Œ ํŽ˜์ด์ง€ ํ…œํ”Œ๋ฆฟ ์˜ต์…˜์€ ์œ„ ๋ฐฉ๋ฒ•๊ณผ ๊ฐ™์ด ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ ํ…œํ”Œ๋ฆฟ์„ ์ •์˜ํ•ด ๋†“์ง€ ์•Š์œผ๋ฉด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค).

์ฟผ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ

์›Œ๋“œํ”„๋ ˆ์Šค๋Š” ๋‹ค๋ฅธ ์ฟผ๋ฆฌ ํƒ€์ž…์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ํ…œํ”Œ๋ฆฟ์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฑธ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค : ํ…œํ”Œ๋ฆฟ ๊ณ„์ธต ๊ตฌ์กฐ์˜ ํ•œ ๋ถ€๋ถ„์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ๊ณผ,ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์˜ ๋ฃจํ”„ ์•ˆ์— Conditional Tags ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ…œํ”Œ๋ฆฟ ๊ณ„์ธต ๊ตฌ์กฐ์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํŠน์ˆ˜ ๋ชฉ์  ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ž๋™์ ์œผ๋กœ index.php ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋งŒ์•ฝ ๋‹น์‹ ์˜ ํ…Œ๋งˆ๊ฐ€ category.php ๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ์ œ๊ณตํ•  ๋•Œ, ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ์ฟผ๋ฆฌ๋˜๋ฉด index.php ๋Œ€์‹  category.php ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ category.php ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋‹ค๋ฉด, index.php ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

You can get even more specific in the Template Hierarchy by providing a file called, for instance, category-6.php -- this file will be used rather than category.php when generating the page for the category whose ID number is 6. (You can find category ID numbers in Manage > Categories if you are logged in as the site administrator in WordPress version 2.3 and below. In WordPress 2.5 the ID column was removed from the Admin panels. You can locate the category id by clicking 'Edit Category' and looking on the URL address bar for the cat_ID value. It will look '...categories.php?action=edit&cat_ID=3' where '3' is the category id). For a more detailed look at how this process works, see Category Templates.

If your Theme needs to have even more control over which Template files are used than what is provided in the Template Hierarchy, you can use Conditional Tags. The Conditional Tag basically checks to see if some particular condition is true, within the WordPress Loop, and then you can load a particular template, or put some particular text on the screen, based on that condition.

For example, to generate a distinctive stylesheet in a post only found within a specific category, the code might look like this:

<?php
if ( is_category( '9' ) ) {
    get_template_part( 'single2' ); // looking for posts in category with ID of '9'
} else {
    get_template_part( 'single1' ); // put this on every other category post
}
?>

Or, using a query, it might look like this:

<?php
$post = $wp_query->post;
if ( in_category( '9' ) ) {
    get_template_part( 'single2' );
} else {
    get_template_part( 'single1' );
}
?>

In either case, this example code will cause different templates to be used depending on the category of the particular post being displayed. Query conditions are not limited to categories, however, see the Conditional Tags article to look at all the options.

์‚ฌ์šฉ์ž ์ง€์ • ํ…œํ”Œ๋ฆฟ์˜ ์ •์˜

It is possible to use the WordPress plugin system to define additional templates that are shown based on your own custom criteria. This advanced feature can be accomplished using the template_redirect action hook. More information about creating plugins can be found in the Plugin API reference.

ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์˜ ์‚ฝ์ž…

To load another template (other than header, sidebar, footer, which have predefined included commands like get_header()) into a template, you can use get_template_part(). This makes it easy for a Theme to reuse sections of code.

ํ…œํ”Œ๋ฆฟ์—์„œ ์ฐธ์กฐํ•˜๋Š” ํŒŒ์ผ

When referencing other files within the same Theme, avoid hard-coded URIs and file paths. Instead reference the URIs and file paths with bloginfo(): see Referencing Files From a Template.

Note that URIs that are used in the stylesheet are relative to the stylesheet, not the page that references the stylesheet. For example, if you include an images/ directory in your Theme, you need only specify this relative directory in the CSS, like so:

h1 {
    background-image: url(images/my-background.jpg);
}

ํ”Œ๋Ÿฌ๊ทธ์ธ API Hooks

ํ…Œ๋งˆ๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ, it's good to keep in mind that your Theme should be set up so that it can work well with any WordPress plugins users might decide to install. Plugins add functionality to WordPress via "Action Hooks" (see Plugin API for more information).

Most Action Hooks are within the core PHP code of WordPress, so your Theme does not have to have any special tags for them to work. But a few Action Hooks do need to be present in your Theme, in order for Plugins to display information directly in your header, footer, sidebar, or in the page body. Here is a list of the special Action Hook Template Tags you need to include:

wp_head()
Goes in the <head> element of a theme, in header.php. Example plugin use: add JavaScript code.
wp_footer()
Goes in footer.php, just before the closing </body> tag. Example plugin use: insert PHP code that needs to run after everything else, at the bottom of the footer. Very commonly used to insert web statistics code, such as Google Analytics.
wp_meta()
Typically goes in the <li>Meta</li> section of a Theme's menu or sidebar; sidebar.php template. Example plugin use: include a rotating advertisement or a tag cloud.
comment_form()
Goes in comments.php directly before the comment form's closing tag (</form>). Example plugin use: display a comment preview. As of WordPress 3.0, you should use the default comment form instead, see comment_form().

์‹ค์ œ ์‚ฌ์šฉ์˜ ์˜ˆ๋ฅผ ๋ณด๋ฉด, ์ด๋Ÿฌํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๊ธฐ๋ณธ ํ…Œ๋งˆ์˜ ํ…œํ”Œ๋ฆฟ์— ํ”Œ๋Ÿฌ๊ทธ์ธ hooks ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋ฐ์ดํ„ฐ

You should escape dynamically generated content in your Theme, especially content that is output in HTML attributes. As noted in ์›Œ๋“œํ”„๋ ˆ์Šค ์ฝ”๋”ฉ ํ‘œ์ค€, text that goes into attributes should be run through esc_attr so that single or double quotes do not end the attribute value and invalidate the XHTML and cause a security issue. Common places to check are title, alt, and value attributes.

In a few cases there might already be a template tag for common cases where safe output is needed. One such case involves the "title" attribute when used with the_title() for post and page titles. To avoid a security vulnerability, use the_title_attribute() instead. Here's an example of correct escaping for the title attribute in a post title link when using translatable text:

<?php echo esc_attr( sprintf( __( 'Permanent Link to %s', 'theme-name' ), the_title_attribute( 'echo=0' ) ) ); ?>

Replace deprecated escape calls with the correct calls: wp_specialchars, htmlspecialchar with esc_html, clean_url with esc_url, and attribute_escape with esc_attr. See Data_Validation for more.

๋ฒˆ์—ญ / i18n ์ง€์›

To ensure smooth transition for language localization, use the gettext functions for wrapping all translatable text within the template files. This makes it easier for the translation files to hook in and translate the titles into the site's language. See more at WordPress_Localization and i18n for WordPress Developers.

ํ…Œ๋งˆ ํด๋ž˜์Šค

๋ณธ๋ฌธ, ํฌ์ŠคํŠธ ๋ฐ ๋Œ“๊ธ€ ์š”์†Œ์— ์›Œ๋“œํ”„๋ ˆ์Šค์—์„œ ์ƒ์„ฑ๋œ ํด๋ž˜์Šค ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ํ…œํ”Œ๋ฆฟ ํƒœ๊ทธ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์‹œ๋ฌผ ํด๋ž˜์Šค์˜ ๋‚ด์šฉ์€ ๋ฃจํ”„ ๋‚ด์˜ ์š”์†Œ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ ์ฒดํฌํ•ญ๋ชฉ

ํ…Œ๋งˆ๋ฅผ ๊ฐœ๋ฐœํ• ๋•Œ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ ํ‘œ์ค€์„ ์ง€ํ‚ค๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

๋ฌธ์„œ ํ—ค๋” (header.php)

  • ์ ์ ˆํ•œ DOCTYPE ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์˜คํ”„๋‹ <html> ํƒœ๊ทธ๋Š” language_attributes() ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • "content-type" ๋ฉ”ํƒ€ ์š”์†Œ๋Š” ์ œ๋ชฉ ์š”์†Œ๋ฅผ ํฌํ•จํ•œ ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ๋“ค ์•ž์— ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ œ๋ชฉ๊ณผ ์„ค๋ช…์„ ๊ฐ€์ ธ์˜ค๋Š” bloginfo() ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํ”ผ๋“œ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ž๋™ ํ”ผ๋“œ ๋งํฌ ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • wp_head() ํ˜ธ์ถœ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ž์‹ ์˜ ์Šคํฌ๋ฆฝํŠธ, ์Šคํƒ€์ผ ์‹œํŠธ ๋ฐ ๊ธฐํƒ€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด์ด Action Hook ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹์˜ HTML5 ํ˜ธํ™˜ ํ—ค๋” ์˜์—ญ์˜ ์˜ˆ ์ž…๋‹ˆ๋‹ค :

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>" />
<title><?php wp_title(); ?> <?php bloginfo( 'name' ); ?></title>
<link rel="profile" href="http://gmpg.org/xfn/11" />
<link rel="stylesheet" href="<?php bloginfo( 'stylesheet_url' ); ?>" type="text/css" media="screen" />
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
<?php if ( is_singular() && get_option( 'thread_comments' ) ) wp_enqueue_script( 'comment-reply' ); ?>
<?php wp_head(); ?>
</head>

๋„ค๋น„๊ฒŒ์ด์…˜ ๋ฉ”๋‰ด (header.php)

  • The Theme's main navigation should support a custom menu with wp_nav_menu().
    • Menus should support long link titles and a large amount of list items. These items should not break the design or layout.
    • Submenu items should display correctly. If possible, support drop-down menu styles for submenu items. Drop-downs allowing showing menu depth instead of just showing the top level.

์œ„์ ฏ (sidebar.php)

  • The Theme should be widgetized as fully as possible. Any area in the layout that works like a widget (ํƒœ๊ทธ ๊ตฌ๋ฆ„, blogroll, ์นดํ…Œ๊ณ ๋ฆฌ ๋ชฉ๋ก) or could accept widgets (์‚ฌ์ด๋“œ๋ฐ”) should allow widgets.
  • Content that appears in widgetized areas by default (hard-coded into the sidebar, for example) should disappear when widgets are enabled from Appearance > Widgets.

ํ’‹ํ„ฐ (footer.php)

  • body ํƒœ๊ทธ๋ฅผ ๋‹ซ๊ธฐ ์ „์—, wp_footer() ๋ฅผ ๋ถˆ๋Ÿฌ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
<?php wp_footer(); ?>
</body>
</html>

์ธ๋ฑ์Šค (index.php)

  • ์ผ๋ถ€ ๋˜๋Š” ์ „์ฒด ํ˜•ํƒœ์˜ ๊ฒŒ์‹œ๋ฌผ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜ ๋˜๋Š” ์ ์ ˆํ•œ ๋Œ€์ƒ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • wp_link_pages() ํฌํ•จ. ๊ฒŒ์‹œ๋ฌผ์˜ ํƒ์ƒ‰ ๋งํฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ชฉ๋ก (archive.php)

  • Display archive title (tag, category, date-based, or author archives).
  • Display a list of posts in excerpt or full-length form. Choose one or the other as appropriate.
  • Include wp_link_pages() to support navigation links within posts.

ํŽ˜์ด์ง€ (page.php)

  • ํŽ˜์ด์ง€ ์ œ๋ชฉ๊ณผ ํŽ˜์ด์ง€ ๋‚ด์šฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋Œ“๊ธ€ ๋ชฉ๋ก ๋ฐ ๋Œ“๊ธ€ ํผ์„ ํ‘œ์‹œ (ํผ ๋„๊ธฐ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ).
  • ํŽ˜์ด์ง€์— ํƒ์ƒ‰ ๋งํฌ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด wp_link_pages() ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ™์€ ํƒœ๊ทธ, ์นดํ…Œ๊ณ ๋ฆฌ, ๋‚ ์งœ, ์ €์ž ๋“ฑ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋Š” ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋กœ๊ทธ์ธ ๋œ ํŽธ์ง‘ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด "์ˆ˜์ •" ๋งํฌ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

๋‹จ๋… ๊ฒŒ์‹œ๊ธ€ (single.php)

  • Include wp_link_pages() to support navigation links within a post.
  • Display post title and post content.
    • The title should be plain text instead of a link pointing to itself.
  • Display the post date.
    • Respect date and time format settings unless it's important to the design. (User settings for date and time format are in Settings > General.)
    • For output based on the user setting, use the_time( get_option( 'date_format' ) ).
  • Display the author name (if appropriate).
  • Display post categories and post tags.
  • Display an "Edit" link for logged-in users with edit permissions.
  • Display comment list and comment form.
  • Show navigation links to next and previous post using previous_post_link() and next_post_link().

๋Œ“๊ธ€ (comments.php)

  • ๋ณธ๋ฌธ ์ž‘์„ฑ์ž์˜ ๋Œ“๊ธ€์€ ํŠน๋ณ„ํžˆ ๊ฐ•์กฐ ํ•ฉ๋‹ˆ๋‹ค.
  • gravatars(์‚ฌ์šฉ์ž ์•„๋ฐ”ํƒ€)๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํ‘œ์‹œ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹ค์‹œ๊ฐ„ ๋Œ“๊ธ€์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ํŠธ๋ž™๋ฐฑ/ํ•‘๋ฐฑ ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ํŒŒ์ผ์€ ํ•จ์ˆ˜์˜ ์žฌ ์„ ์–ธ ์˜ค๋ฅ˜๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด function_exist() ํ•จ์ˆ˜์—์„œ ์ฒดํฌ์ธ ํ•˜์ง€ ์•Š๋Š”ํ•œ ํ•จ์ˆ˜์— ์ •์˜๊ฐ€ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์€ functions.php ์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ (search.php)

  • ์ผ๋ถ€ ๋˜๋Š” ์ „์ฒด ํ˜•ํƒœ ๊ฒŒ์‹œ๋ฌผ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜ ๋˜๋Š” ์ ์ ˆํ•œ ๋Œ€์ƒ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒ€์ƒ‰๊ฒฐ๊ณผ ํŽ˜์ด์ง€์— ์ด์ „ ๊ฒ€์ƒ‰์–ด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋ฐฉ๊ธˆ ๊ฒ€์ƒ‰ํ•œ ๋‹จ์–ด๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋‹จ์ˆœํ•˜์ง€๋งŒ ์œ ์šฉํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํŠน๋ณ„ํžˆ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ๊ฐ€ ์—†์„ ๋•Œ ๋”์šฑ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. the_search_query ๋‚˜ get_search_query(echo ๋‚˜ ๊ฒฐ๊ณผ๊ฐ’ return)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์˜ˆ:
    <h2><?php printf( __( 'Search Results for: %s' ), '<span>' . get_search_query() . '</span>'); ?></h2>
  • ๊ฒฐ๊ณผ ํŽ˜์ด์ง€์— ๊ฒ€์ƒ‰์ฐฝ์„ ๋‹ค์‹œ ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ์€ ์ข‹์€ ์Šต๊ด€์ž…๋‹ˆ๋‹ค. get_search_form()์„ ์‚ฌ์šฉํ•˜์—ฌ ํฌํ•จ์‹œํ‚ต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

  • JavaScript ์ฝ”๋“œ๋Š” ๊ฐ€๋Šฅํ•˜๋ฉด ์™ธ๋ถ€ ํŒŒ์ผ์— ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์Šคํฌ๋ฆฝํŠธ ๋กœ๋“œ๋ฅผ ์œ„ํ•ด wp_enqueue_script ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • JavaScript ๋Š” HTML ๋ฌธ์„œ(ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ)์— ์ง์ ‘ ๋กœ๋“œํ•˜๋ฏ€๋กœ, ์ด์ „ ๋ฒ„์ „์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ์˜ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด CDATA ๋กœ ์ธ์ฝ”๋”ฉ ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
<script type="text/javascript">
/* <![CDATA[ */
// content of your Javascript goes here
/* ]]> */
</script>

์Šคํฌ๋ฆฐ์ƒท

ํ…Œ๋งˆ์— ๋Œ€ํ•œ ์Šคํฌ๋ฆฐ์ƒท์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฐ์ƒท์€ screenshot.png ๋ผ๊ณ  ํ•ด์•ผ ํ•˜๊ณ , ์ตœ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฐฐ์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฐ์ƒท์€ ์ •ํ™•ํžˆ ํ…Œ๋งˆ ๋””์ž์ธ์„ ํ‘œ์‹œํ•ด์•ผ ํ•˜๋ฉฐ PNG, JPEG ๋˜๋Š” GIF ํ˜•์‹์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ถŒ์žฅํ•˜๋Š” ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋Š” 300x225 ์ž…๋‹ˆ๋‹ค.

ํ…Œ๋งˆ ์˜ต์…˜

ํ…Œ๋งˆ ์„ ํƒ ์˜ต์…˜ ํŽ˜์ด์ง€๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ ์ฝ”๋“œ๋Š”, ์›Œ๋“œํ”„๋ ˆ์Šค ํ…Œ๋งˆ ์˜ต์…˜ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ต์…˜ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์‹ค์ œ๋กœ ์˜ต์…˜ ํŒจ๋„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ…Œ๋งˆ๋ฅผ ์ „ํ™˜ํ•˜์ง€ ์•Š๋Š” ํ•œ, ์˜ต์…˜ ํŒจ๋„ ๋Œ€์‹  switch_themes ์˜ edit_theme_options ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์›Œ๋“œํ”„๋ ˆ์Šค ์ž์ฒด์˜ ๋ฉ”๋‰ด, ๋ฐฐ๊ฒฝ, ํ—ค๋”, ์œ„์ ฏ ๋“ฑ๋“ฑ์„ ์œ„ํ•ด edit_theme_options ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ญํ•  ๋ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๊ทธ๋ฆฌ๊ณ  ๊ด€๋ฆฌ์ž ๋ฉ”๋‰ด์—์„œ ์ถ”๊ฐ€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋„คํŠธ์›Œํฌ ๋ชจ๋“œ์™€ ํ…Œ๋งˆ ์˜ต์…˜์— ๋Œ€ํ•œ ๋ฉ”๋ชจ :

๋‹น์‹ ์˜ ํ…Œ๋งˆ ์•ˆ ์–ด๋””์„œ๋“  edit_themes ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ๊ทธ๋ฆฌ๊ณ  ํ…Œ๋งˆ๊ฐ€ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜์–ด ์›Œ๋“œํ”„๋ ˆ์Šค ์„ค์น˜(์ด์ „ ์›Œ๋“œ ํ”„๋ ˆ์Šค MU) ๊ธฐ๋Šฅ ์•„๋ž˜์„œ ์‹คํ–‰๋œ๋‹ค๋ฉด, ํ…Œ๋งˆ ์˜ต์…˜ ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” edit_themes ๊ธฐ๋Šฅ์€ ์˜ต์…˜ ๋ฉ”๋‰ด๋ฅผ ๋ณผ๋•Œ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์‚ฌ์ดํŠธ ๊ด€๋ฆฌ์ž๊ฐ€ ์ˆ˜์ •ํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค. ๋Œ€์‹  edit_theme_options ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ๋งˆ ํ…Œ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค

  1. PHP ์™€ ์›Œ๋“œํ”„๋ ˆ์Šค ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ค‘์ง€๋œ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐ ๊ธฐํƒ€ ์›Œ๋“œํ”„๋ ˆ์Šค ๊ด€๋ จ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” wp-config.php ํŒŒ์ผ์— ๋‹ค์Œ ๋””๋ฒ„๊ทธ ์„ค์ •์„ ์ถ”๊ฐ€: ('WP_DEBUG', true);์ •์˜. Hook ํ•จ์ˆ˜ ๋ฐฐ์ œ์—์„œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  2. ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ ์ฒดํฌ๋ฆฌ์ŠคํŠธ์—์„œ ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์„ ํ™•์ธํ•˜์„ธ์š”. (์œ„๋ฅผ ์ฐธ์กฐ).
  3. ํ…Œ๋งˆ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Ÿฐํƒ€์ž„์„ ์ˆ˜ํ–‰ํ•˜์„ธ์š”.
  4. HTML๊ณผ CSS๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์›น์‚ฌ์ดํŠธ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
  5. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—๋Ÿฌ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.
  6. ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, IE7, IE8, IE9, Safari, Chrome, Opera, ๊ทธ๋ฆฌ๊ณ  Firefox.
  7. ์•„๋ฌด ๊ด€๊ณ„์—†๋Š” ๋Œ“๊ธ€, ๋””๋ฒ„๊ทธ ์„ค์ • ๋˜๋Š” TODO ํ•ญ๋ชฉ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  8. ๋‹น์‹ ์ด ๊ณต๊ฐœ ํ…Œ๋งˆ ๋””๋ ‰ํ† ๋ฆฌ์— ์ œ์ถœํ•˜์—ฌ, ํ…Œ๋งˆ๋ฅผ ๊ณต๊ฐœํ•˜๋Š” ๊ฒฝ์šฐ. ํ…Œ๋งˆ ๋ฆฌ๋ทฐ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

๋ฆฌ์†Œ์Šค์™€ ๋ ˆํผ๋Ÿฐ์Šค

์ฝ”๋“œ ํ‘œ์ค€

ํ…Œ๋งˆ ๋””์ž์ธ

CSS

ํ…œํ”Œ๋ฆฟ

์œ ๋‹›ํ…Œ์ŠคํŠธ์™€ ํ’ˆ์งˆํ…Œ์ŠคํŠธ

์ถœ์‹œ & ํ”„๋กœ๋ชจ์…˜

์™ธ๋ถ€ ๋ฆฌ์†Œ์Šค & ๊ฐ•์ขŒ