Distributor: 포슀트 메타 연결을 μ§€μ›ν•˜λ„λ‘ ν™•μž₯ 쀑...

에 λ§Œλ“  2020λ…„ 07μ›” 08일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: 10up/distributor

μ•ˆλ…•,

주의 μ‚¬ν•­μ—λŠ” 포슀트 메타 연결에 κ΄€ν•œ μ°Έκ³  사항이 있으며 μ΄λŸ¬ν•œ 연결이 전솑 μ‹œ "ν•¨κ»˜ κ°€μ Έμ˜€μ§€" μ•ŠμŒμ„ μ§€μ •ν•©λ‹ˆλ‹€. λ³΅μž‘ν•œ κ΄€κ³„ν˜• 메타데이터(ACF μ‚¬μš©)κ°€ μžˆλŠ” μ‚¬μ΄νŠΈ λ„€νŠΈμ›Œν¬λ₯Ό κ°œλ°œν•  λ•Œ 두 가지 질문이 μžˆμŠ΅λ‹ˆλ‹€.

  • λ©”λͺ¨λŠ” "ν‘Έμ‹œ" 전솑을 μ°Έμ‘°ν•©λ‹ˆλ‹€. "pull" μš”μ²­λ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆκΉŒ?
  • μ œμ•ˆλœ ν”ŒλŸ¬κ·ΈμΈμ˜ "μΌ€μ΄μŠ€ 바이 μΌ€μ΄μŠ€" ν™•μž₯에 λŒ€ν•œ μ˜ˆμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ? 이거 ν•œλ²ˆ 해보고 싢은데 μ–΄λ””μ„œλΆ€ν„° μ‹œμž‘ν•΄μ•Όν• μ§€ λͺ¨λ₯΄κ² λ„€μš”!

미리 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€!

Reporter Feedback question

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš” @john-lynch-cpλ‹˜, 이 μ£Όμ œμ— λŒ€ν•΄ λ‚΄λΆ€ λ…Όμ˜κ°€ μžˆμ§€λ§Œ 아직 μ΅œμ’… λ°©ν–₯이 정해지지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

μ €μž₯된 메타 값은 원본 μ‚¬μ΄νŠΈμ™€ 원격 μ‚¬μ΄νŠΈ 간에 λ‹€λ₯Έ κ΄€λ ¨ 개체의 IDμž…λ‹ˆλ‹€. 원격 μ‚¬μ΄νŠΈμ—μ„œ 개체 ID(메타 κ°’)λ₯Ό μ˜¬λ°”λ₯Έ κ²ƒμœΌλ‘œ κ΅μ²΄ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • κ²Œμ‹œλ¬Όμ˜ 경우 원격 κ²Œμ‹œλ¬Ό IDλ₯Ό κ²€μƒ‰ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆλŠ” dt_connection_map 메타가 μžˆμŠ΅λ‹ˆλ‹€.
  • μ‚¬μš©μž 및 μš©μ–΄μ˜ 경우 슬러그λ₯Ό μ‚¬μš©ν•˜μ—¬ 원격 μ‚¬μ΄νŠΈμ—μ„œ μ˜¬λ°”λ₯Έ μš©μ–΄λ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

dt_push_post_args 및 dt_subscription_post_args 에 ν›„ν‚Ήν•˜μ—¬ 포슀트 메타(κ²Œμ‹œλ¬Ό ID λ³€κ²½, μš©μ–΄ 슬러그 μΆ”κ°€, μ‚¬μš©μž 둜그인 μΆ”κ°€)λ₯Ό μ€€λΉ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

원격 μ‚¬μ΄νŠΈμ—μ„œ μ˜¬λ°”λ₯Έ 메타 값을 μ—…λ°μ΄νŠΈν•˜λ €λ©΄ dt_process_distributor_attributes 및 dt_process_subscription_attributes ν•©λ‹ˆλ‹€.

질문:

λ©”λͺ¨λŠ” "ν‘Έμ‹œ" 전솑을 μ°Έμ‘°ν•©λ‹ˆλ‹€. "pull" μš”μ²­λ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆκΉŒ?

짧은 λŒ€λ‹΅μ€ μ•„λ‹ˆμ˜€μž…λ‹ˆλ‹€. λ°€κ³  λ‹ΉκΈ°λŠ” 것은 λ‹€λ¦…λ‹ˆλ‹€. 풀을 μ‚¬μš©ν•˜μ—¬ ν‘Έμ‹œμ™€ λ™μΌν•œ κ²°κ³Όλ₯Ό 얻을 수 μžˆμ§€λ§Œ 포슀트 메타λ₯Ό μ€€λΉ„ν•˜λ €λ©΄ λͺ‡ 가지 μΆ”κ°€ 단계가 ν•„μš”ν•©λ‹ˆλ‹€. push 경우 원본 μ‚¬μ΄νŠΈμ΄λ―€λ‘œ ν‘Έμ‹œν•˜κΈ° 전에 μΆ”κ°€ 메타 데이터λ₯Ό μ€€λΉ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ pull λ™μΌν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μ—†μŠ΅λ‹ˆλ‹€. λŒ€λ¦¬μ  μš©λ„μ˜ κ²Œμ‹œλ¬Ό μ—”λ“œ 포인트 에 λŒ€ν•œ 포슀트 데이터λ₯Ό μ–»κΈ° μœ„ν•΄ pull μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€ 이 .

μ œμ•ˆλœ ν”ŒλŸ¬κ·ΈμΈμ˜ "μΌ€μ΄μŠ€ 바이 μΌ€μ΄μŠ€" ν™•μž₯에 λŒ€ν•œ μ˜ˆμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ? 이거 ν•œλ²ˆ 해보고 싢은데 μ–΄λ””μ„œλΆ€ν„° μ‹œμž‘ν•΄μ•Όν• μ§€ λͺ¨λ₯΄κ² λ„€μš”!

예λ₯Ό λ“€μ–΄ project_category λΆ„λ₯˜μ— μ—°κ²°λ˜λŠ” test_meta λΌλŠ” λΆ„λ₯˜ ν•„λ“œ(ACF μ‚¬μš©)κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜ μ˜ˆμ‹œλŠ” ꡐ윑용으둜만 μž‘μ„±λœ κ²ƒμœΌλ‘œ 졜적의 μ†”λ£¨μ…˜μ€ μ•„λ‹™λ‹ˆλ‹€.

add_action( 'dt_push_post_args', 'prepare_meta', 10, 2 );

function prepare_meta( $post_body, $post ) {
    $term_id = get_post_meta( $post->ID, 'test_meta', true );
    if( $term_id ) {
        $term = get_term_by( 'id', $term_id, 'project_category');
        $post_body['project_category_slug'] = $term->slug;
    }

    return $post_body;
}

add_action( 'dt_process_distributor_attributes', 'set_meta', 10, 2 );

function set_meta( $post, $request ) {
    $term = get_term_by( 'slug', $request['project_category_slug'], 'project_category' );
    if ( ! $term ) {
        return;
    }
    update_post_meta( $post->ID, 'test_meta', $term->term_id );
}

Btw, μœ„μ˜ μ˜ˆμ™€ λΉ„μŠ·ν•˜μ§€λ§Œ 더 λ³΅μž‘ν•œ Novembitμ—μ„œ λ§Œλ“  μ• λ“œμ˜¨μ΄ μžˆμŠ΅λ‹ˆλ‹€: https://github.com/NovemBit/distributor-acf-addon. 이 μ• λ“œμ˜¨μ€ ν˜„μž¬ λ²„μ „μ˜ λ°°ν¬μžμ™€ ν˜Έν™˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 도움을 λ°”λžλ‹ˆλ‹€!

λͺ¨λ“  3 λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš” @john-lynch-cpλ‹˜, 이 μ£Όμ œμ— λŒ€ν•΄ λ‚΄λΆ€ λ…Όμ˜κ°€ μžˆμ§€λ§Œ 아직 μ΅œμ’… λ°©ν–₯이 정해지지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

μ €μž₯된 메타 값은 원본 μ‚¬μ΄νŠΈμ™€ 원격 μ‚¬μ΄νŠΈ 간에 λ‹€λ₯Έ κ΄€λ ¨ 개체의 IDμž…λ‹ˆλ‹€. 원격 μ‚¬μ΄νŠΈμ—μ„œ 개체 ID(메타 κ°’)λ₯Ό μ˜¬λ°”λ₯Έ κ²ƒμœΌλ‘œ κ΅μ²΄ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • κ²Œμ‹œλ¬Όμ˜ 경우 원격 κ²Œμ‹œλ¬Ό IDλ₯Ό κ²€μƒ‰ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆλŠ” dt_connection_map 메타가 μžˆμŠ΅λ‹ˆλ‹€.
  • μ‚¬μš©μž 및 μš©μ–΄μ˜ 경우 슬러그λ₯Ό μ‚¬μš©ν•˜μ—¬ 원격 μ‚¬μ΄νŠΈμ—μ„œ μ˜¬λ°”λ₯Έ μš©μ–΄λ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

dt_push_post_args 및 dt_subscription_post_args 에 ν›„ν‚Ήν•˜μ—¬ 포슀트 메타(κ²Œμ‹œλ¬Ό ID λ³€κ²½, μš©μ–΄ 슬러그 μΆ”κ°€, μ‚¬μš©μž 둜그인 μΆ”κ°€)λ₯Ό μ€€λΉ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

원격 μ‚¬μ΄νŠΈμ—μ„œ μ˜¬λ°”λ₯Έ 메타 값을 μ—…λ°μ΄νŠΈν•˜λ €λ©΄ dt_process_distributor_attributes 및 dt_process_subscription_attributes ν•©λ‹ˆλ‹€.

질문:

λ©”λͺ¨λŠ” "ν‘Έμ‹œ" 전솑을 μ°Έμ‘°ν•©λ‹ˆλ‹€. "pull" μš”μ²­λ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆκΉŒ?

짧은 λŒ€λ‹΅μ€ μ•„λ‹ˆμ˜€μž…λ‹ˆλ‹€. λ°€κ³  λ‹ΉκΈ°λŠ” 것은 λ‹€λ¦…λ‹ˆλ‹€. 풀을 μ‚¬μš©ν•˜μ—¬ ν‘Έμ‹œμ™€ λ™μΌν•œ κ²°κ³Όλ₯Ό 얻을 수 μžˆμ§€λ§Œ 포슀트 메타λ₯Ό μ€€λΉ„ν•˜λ €λ©΄ λͺ‡ 가지 μΆ”κ°€ 단계가 ν•„μš”ν•©λ‹ˆλ‹€. push 경우 원본 μ‚¬μ΄νŠΈμ΄λ―€λ‘œ ν‘Έμ‹œν•˜κΈ° 전에 μΆ”κ°€ 메타 데이터λ₯Ό μ€€λΉ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ pull λ™μΌν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μ—†μŠ΅λ‹ˆλ‹€. λŒ€λ¦¬μ  μš©λ„μ˜ κ²Œμ‹œλ¬Ό μ—”λ“œ 포인트 에 λŒ€ν•œ 포슀트 데이터λ₯Ό μ–»κΈ° μœ„ν•΄ pull μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€ 이 .

μ œμ•ˆλœ ν”ŒλŸ¬κ·ΈμΈμ˜ "μΌ€μ΄μŠ€ 바이 μΌ€μ΄μŠ€" ν™•μž₯에 λŒ€ν•œ μ˜ˆμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ? 이거 ν•œλ²ˆ 해보고 싢은데 μ–΄λ””μ„œλΆ€ν„° μ‹œμž‘ν•΄μ•Όν• μ§€ λͺ¨λ₯΄κ² λ„€μš”!

예λ₯Ό λ“€μ–΄ project_category λΆ„λ₯˜μ— μ—°κ²°λ˜λŠ” test_meta λΌλŠ” λΆ„λ₯˜ ν•„λ“œ(ACF μ‚¬μš©)κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜ μ˜ˆμ‹œλŠ” ꡐ윑용으둜만 μž‘μ„±λœ κ²ƒμœΌλ‘œ 졜적의 μ†”λ£¨μ…˜μ€ μ•„λ‹™λ‹ˆλ‹€.

add_action( 'dt_push_post_args', 'prepare_meta', 10, 2 );

function prepare_meta( $post_body, $post ) {
    $term_id = get_post_meta( $post->ID, 'test_meta', true );
    if( $term_id ) {
        $term = get_term_by( 'id', $term_id, 'project_category');
        $post_body['project_category_slug'] = $term->slug;
    }

    return $post_body;
}

add_action( 'dt_process_distributor_attributes', 'set_meta', 10, 2 );

function set_meta( $post, $request ) {
    $term = get_term_by( 'slug', $request['project_category_slug'], 'project_category' );
    if ( ! $term ) {
        return;
    }
    update_post_meta( $post->ID, 'test_meta', $term->term_id );
}

Btw, μœ„μ˜ μ˜ˆμ™€ λΉ„μŠ·ν•˜μ§€λ§Œ 더 λ³΅μž‘ν•œ Novembitμ—μ„œ λ§Œλ“  μ• λ“œμ˜¨μ΄ μžˆμŠ΅λ‹ˆλ‹€: https://github.com/NovemBit/distributor-acf-addon. 이 μ• λ“œμ˜¨μ€ ν˜„μž¬ λ²„μ „μ˜ λ°°ν¬μžμ™€ ν˜Έν™˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 도움을 λ°”λžλ‹ˆλ‹€!

@john-lynch-cp μœ„μ˜ λ‹΅λ³€μœΌλ‘œ κ·€ν•˜μ˜ 질문이 ν•΄κ²°λ˜μ–΄ 이 문제λ₯Ό μ’…κ²°ν•  수 μžˆκ±°λ‚˜ 후속 질문이 μžˆμŠ΅λ‹ˆκΉŒ?

후속 μ‘°μΉ˜μ— κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. μ§€κΈˆ λ°”λ‘œ μ’…λ£Œν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. 배포 λ¬Έμ œκ°€ λ‹€λ₯Έ μ ‘κ·Ό λ°©μ‹μœΌλ‘œ 더 합리적일 수 μžˆμœΌλ―€λ‘œ λ‹€λ₯Έ CMSλ₯Ό μ°Ύκ³  μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰