두 게시판이 있을 때, 한 게시판에 글을 올리면 다른 게시판에 글이 자동으로 올라가게끔 만들고 싶습니다.

1. 정확한 제품 또는 플러그인 이름

워드프레스 v6.701

 

2. 상세 내용

이번에 워드프레스를 새로 사용하게 되었습니다.

두 게시판이 있는데, 여기서 한 게시판에 글을 올리면 나머지 다른 게시판에도 글이 자동으로 올라가게 만들고 싶습니다.

챗GPT에도 물어봤는데 결국 실패했습니다...

 

3. 확인 가능한 상세 페이지 주소

youngso33.dothome.co.kr

 

4. 수정한 코드 내역 (있다면)

wp-config.php에는

define( 'WP_DEBUG', true );

define( 'WP_DEBUG_LOG', true );

define( 'WP_DEBUG_DISPLAY', false );

를 추가했고, 

 

function.php에는
 

<?php

// 부모 테마의 스타일을 로드

function twentytwentyfive_child_enqueue_styles() {

    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );

}

add_action( 'wp_enqueue_scripts', 'twentytwentyfive_child_enqueue_styles' );

 

/**

 * KBoard 게시글이 삽입될 때 자동으로 다른 게시판에 복제하는 함수

 *

 * @param string $content_uid 게시글 고유 ID

 * @param int $board_id 게시판 ID

 * @param array $content 게시글 내용 데이터

 * @param array $board 게시판 정보 데이터

 */

function duplicate_kboard_post_on_insert($content_uid, $board_id, $content, $board) {

    // 복제할 게시판 ID 설정

    $source_boards = array(10, 9); // 원본 게시판 ID 목록

    $target_boards = array(

        10 => 9, // 게시판 10에 작성 시 9로 복제

        9 => 10   // 게시판 9에 작성 시 10으로 복제

    );

 

    // 현재 게시글이 복제할 게시판인지 확인

    if (array_key_exists($board_id, $target_boards)) {

        $target_board_id = $target_boards[$board_id];

 

        // 이미 복제된 게시글인지 확인 (무한 루프 방지)

        $duplicated = get_post_meta($content_uid, 'duplicated_to', true);

        if ($duplicated == $target_board_id) {

            return; // 이미 복제된 경우 종료

        }

 

        // 새 게시글 데이터 준비

        $new_post = array(

            'post_title'    => $content['title'],

            'post_content'  => $content['content'],

            'post_status'   => 'publish',

            'post_author'   => $content['member_id'], // 작성자 ID

            'post_type'     => 'kboard', // KBoard의 포스트 타입 확인 필요

        );

 

        // 새 게시글 삽입

        $new_post_id = wp_insert_post($new_post);

 

        if (!is_wp_error($new_post_id)) {

            // 새 게시글에 메타 데이터 추가 (대상 게시판 ID 설정)

            update_post_meta($new_post_id, 'board_id', $target_board_id);

            // 원본 게시글에 메타 데이터 추가하여 복제 여부 표시

            update_post_meta($content_uid, 'duplicated_to', $target_board_id);

        } else {

            error_log("게시글 복제 중 오류 발생: " . $new_post_id->get_error_message());

        }

    }

}

add_action('kboard_document_insert', 'duplicate_kboard_post_on_insert', 10, 4);



이걸 추가했습니다.

 

 

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요