Pods: Yoast SEO ํ”Œ๋Ÿฌ๊ทธ์ธ

์— ๋งŒ๋“  2013๋…„ 12์›” 30์ผ  ยท  18์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: pods-framework/pods

SEO ์ œ๋ชฉ ๋ฐ ์„ค๋ช…์ด ์ €์žฅ๋˜์ง€ ์•Š์Œ
https://github.com/Yoast/wordpress-seo/issues/508

Integration Inactive Puntable Help Wanted Researched Bug

๋ชจ๋“  18 ๋Œ“๊ธ€

Yoast SEO ๋ฌธ์ œ์—์„œ ๋‹ค์Œ์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด WP SEO๊ฐ€ ์•„๋‹ˆ๋ผ Pods ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋ฌธ์ œ์ž„์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

register_taxonomy() ์˜ ๋ถ€์ ์ ˆํ•œ ์‹œ๊ฐ„์ผ๊นŒ์š”?

๋””๋ฒ„๊ทธ : WPSEO_Taxonomy ํด๋ž˜์Šค์˜ update_term () ํ•จ์ˆ˜๊ฐ€ WP์˜ do_action ()์˜ $ wp_filter์— ๋“ฑ๋ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ „ํ™”๋ฅผ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค

ํฌ๋“œ์—์„œ ์ •์˜ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ๋ถ„๋ฅ˜์— ์ €์žฅํ•  ๋•Œ
PodsMeta์˜ save_taxonomy ()๋Š” ๋‘ ๋ฒˆ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

๋””๋ฒ„๊ทธ : WPSEO_Taxonomy ํด๋ž˜์Šค์˜ update_term () ํ•จ์ˆ˜๊ฐ€ WP์˜ do_action ()์˜ $ wp_filter์— ๋“ฑ๋ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ „ํ™”๋ฅผ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์–ด๋–ค ์‹œ์ ์—์„œ (ํƒ€์ด๋ฐ ์ธก๋ฉด์—์„œ) ๊ทธ๋“ค์ด ํ–‰๋™์„ ์ทจํ–ˆ๋Š”์ง€ ๊ฒฐ์ • ํ–ˆ์Šต๋‹ˆ๊นŒ?

'์ดˆ๊ธฐํ™”'์‹œ๊ฐ„์—.
๋‘˜ ๋‹ค WP์˜ do_action ()์— ๋“ฑ๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์–ด๋–ป๊ฒŒ ๋“  wp-includes / plugin์—์„œ. php : 429 PodsMeta์˜ save_taxonomy ()๊ฐ€ TWICE๋ผ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
WPSEO_Taxonomy ํด๋ž˜์Šค์˜ update_term ()์€ ์ƒ๋žต๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ pods_no_conflict_on ()์ด ์›์ธ์ผ๊นŒ์š”?

๊ทธ๋Ÿฌ๋‚˜ ์–ด๋–ป๊ฒŒ ๋“  wp-includes / plugin์—์„œ. php : 429 PodsMeta์˜ save_taxonomy ()๊ฐ€ TWICE๋ผ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŠน์ • ๋™์ž‘์˜ ์›์ธ๊ณผ ๊ด€๋ จ์„ฑ์ด ์žˆ๋Š”์ง€ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‘ ๊ฐ€์ง€ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋ชจ๋‘ ์•Œ๊ณ  ๊ณ„์‹ญ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์žˆ๋Š” ๊ฒƒ์€ ๊นŒ๋‹ค๋กœ์šด WordPress ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค. http://core.trac.wordpress.org/ticket/17817 ๊ท€ํ•˜์˜ ๋‹ค๋ฆฌ ์ž‘์—…์œผ๋กœ ๊ด€๋ จ์—†๋Š” ์˜์—ญ์„ ์ฐŒ๋ฅด๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์„ ์ ˆ์•ฝ ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งค์šฐ ๋„์›€์ด ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์— ์ถฉ๋ถ„ํžˆ ์ด์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ์•Œ๊ณ  ๊ณ„์‹œ ๊ฒ ์ง€๋งŒ pods_no_conflict_on ๋Œ€ํ•œ ํ˜ธ์ถœ์— ์ฃผ์„์„ ๋‹ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฌธ์ œ๊ฐ€ ๋” ์ด์ƒ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. save() ํ†ตํ•ด ๋ฐœ์ƒํ•  ์ˆ˜์žˆ๋Š” ์žฌ๊ท€ ์ž‘์—… ํ˜ธ์ถœ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ถฉ๋Œ ์—†์Œ ํ˜ธ์ถœ๋กœ Pods::save ๋ฅผ ๋ž˜ํ•‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ WordPress ๋ฒ„๊ทธ๋กœ ์ธํ•ด ์•ก์…˜ ํ›„ํฌ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ๋‹ค๋ฅธ ์•ก์…˜ ํ›„ํฌ๋„ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์œ„ ํ…Œ๋งˆ ๋˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ ์ง์ ‘์ด ์ƒํ™ฉ์„ ๋‹ค์‹œ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

add_action( 'edit_term', 'test_17817', 15, 3 );
function test_17817( $term_id, $tt_id, $taxonomy ) {
    remove_action( 'edit_term', 'test_17817', 15 );
}

Pod์˜ ์šฐ์„  ์ˆœ์œ„ 10๊ณผ Yoast์˜ 99 ์‚ฌ์ด์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์—์ด ํ…Œ์ŠคํŠธ์˜ ์šฐ์„  ์ˆœ์œ„๋กœ 15๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž์‹ ํ…Œ๋งˆ functions.php์™€ Pod์—์žˆ๋Š” ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ถฉ๋Œ ํ˜ธ์ถœ์ด์—†๋Š” ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

Yoast ์ธก์—์„œ๋Š” add_action ํ†ตํ™”์˜ 99 ์šฐ์„  ์ˆœ์œ„๋ฅผ 10 ์ดํ•˜๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ์—์„œ Pod์™€ Yoast ์‚ฌ์ด์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์ฒด ์ž‘์—… (์ฝœ๋ฐฑ ํ•จ์ˆ˜ ์ž์ฒด๋Š” ๋นˆ ํ•จ์ˆ˜์ผ ์ˆ˜ ์žˆ์Œ)์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ WordPress ์ฝ˜ํ…์ธ  ์œ ํ˜•์— ๋” ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ ๋•Œ๋ฌธ์—์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์—ฌ์ „ํžˆ ๋จธ๋ฆฌ๋ฅผ ๋ชจ์œผ๊ณ  ์žˆ์œผ๋ฉฐ ๊ทธ ๋ถ„์•ผ์— ๊นŠ์ด ๊ด€์—ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

BTW,์ด ์ •๋ณด๋Š” ํ˜„์žฌ ์ œ์•ˆ ๋œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฒ„๊ทธ์™€ ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๋‚˜ํƒ€๋‚˜๋Š”์ง€์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์ ํ•ฉํ•œ ์ˆ˜์ •์ž…๋‹ˆ๋‹ค.

add_action( 'edit_term', 'test_17817', 15, 3 );
function test_17817( $term_id, $tt_id, $taxonomy ) {
    // http://core.trac.wordpress.org/ticket/17817
    remove_action( 'edit_term', 'test_17817', 15 );
}

๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๋‚˜๋Š” WP์™€ ์ฝ”๋”ฉ์„ ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ๋””๋ฒ„๊ฑฐ์ž…๋‹ˆ๋‹ค.

ํ•จ์ˆ˜ ๋ณธ๋ฌธ์—์„œ remove_action ๊บผ๋‚ด๊ณ  ํ•จ์ˆ˜๋ฅผ ๋น„์›Œ ๋‘ก๋‹ˆ๋‹ค. remove_action ํ˜ธ์ถœ์€ Pod๊ฐ€ ์›์ธ์ด๋˜์ง€ ์•Š๊ณ  ๋ฒ„๊ทธ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ธฐ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์— ๊ทธ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด ๋ฏธ๋ž˜์— ๋ฌธ์ œ๊ฐ€ ์ž ์žฌ์ ์œผ๋กœ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ–ˆ๋˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹ค์ œ๋กœ WordPress ์ฝ”์–ด์—์„œ ๊ถŒ์žฅํ•˜๋Š” ๊ฒƒ์ž„์„ ์—ฌ๊ธฐ์— ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค (๋‹ค๋ฅธ ์ž‘์—…์— ๋Œ€ํ•ด).

http://codex.wordpress.org/Plugin_API/Action_Reference/save_post#Avoiding_infinite_loops

์‹ค๋ก€ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž ์ง€์ • ๋ถ„๋ฅ˜์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ํ•„๋“œ๊ฐ€ ์—†๋Š”๋ฐ edit_term ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๊ทธ ๋’ค์— ๊ธฐ๋Šฅ์  ์„ค๋ช…์ด ์žˆ๋Š”์ง€ ๋˜๋Š” ๋‹จ์ˆœํžˆ "์ฒ˜์Œ์— ์ž‘์„ฑ๋œ ๋ฐฉ์‹"์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 3.0 ์ตœ์ ํ™” ๊ณ ๋ ค ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๊ฐ€ ๋ ๋งŒํ•œ ์ข‹์€ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋‹น์‹œ์— ์—ฐ๊ฒฐํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ๊ฒฐ์ •ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์„ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ?

ํฌ๋“œ v3 (๋ฆฌํ”ผํ„ฐ ํ•„๋“œ)๊ฐ€ ์ถœ์‹œ ๋  ์˜ˆ์ •์ž…๋‹ˆ๊นŒ?

@szepeviktor ์ด ์ฃผ์ œ์™€ ๊ด€๋ จ์ด์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์–ด์จŒ๋“  ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค๋Š” 2.8์ž…๋‹ˆ๋‹ค (๊ทธ๋ฃน ํ•„๋“œ + ํฌ๋“œ ๊ด€๋ฆฌ์ž์˜ ์ „์ฒด ๋ฆฌํŒฉํ„ฐ๋ง).
2.9 ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ํ•„๋“œ์— ๋Œ€ํ•ด์„œ๋Š” # 1095๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
3.0 ๋ฃจํ”„ ํ•„๋“œ์— ๋Œ€ํ•ด์„œ๋Š” # 1095๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ฃผ์ œ๋กœ ๋Œ์•„๊ฐ€์„œ, ๋‚˜๋Š” ์ด๊ฒƒ์„ ์žฌํ˜„ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๊ณ  ์ด๊ฒƒ์€ ๋” ์ด์ƒ ํ™œ์„ฑ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค (์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ์—์„œ๋„ Yoast SEO๋ฅผ ์‚ฌ์šฉํ•จ์— ๋”ฐ๋ผ ๋ˆˆ์น˜ ์ฑ„ ์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค).

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰