게시판에서 글쓰기 시 제가 따로 만든 테이블에 들어가도록 하는 법?

게시판에서 글쓰기 시 제가 따로 만든 테이블에 들어가도록 하고 싶습니다.

워드프레스와 kboard를 깔 때 자동 생성된 테이블이 아니라,

제가 임의로 추가한 다른 테이블에 해당 내용이 알맞게 추가되도록 하고싶습니다.

그 부분은 어느 파일에서 수정해야할까요?? 

그 테이블이 다른 DB에 있는 경우도 가능할까요?

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • kboard_document_insert 액션에 $wpdb를 활용하는 방법은

    아래의 코드를 활용해보시겠어요?

    add_action('kboard_document_insert', 'kboard_document_insert_2020_02_03', 10, 4);
    function kboard_document_insert_2020_02_03($content_uid, $board_id, $content, $board){
    	global $wpdb;
    
    	if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		// $wpdb->query() 함수를 활용하시면 DB 데이터를 추가하실 수 있습니다.
    		$wpdb->query("INSERT INTO ~");
    	}
    }

    위의 코드에서 $board_id == '1' 부분은 실제 게시판 id로 적용해주세요.

     

    파라미터는 함수 선언부에 적용해주시면 됩니다.

    워드프레스 add_action 함수에 대한 내용은

    아래의 링크를 참고해보세요.

    https://developer.wordpress.org/reference/functions/add_action/

    고맙습니다.

  • 안녕하세요.

    kboard_document_insert 액션에서 추가하신 입력 필드는

    아래처럼 $content 변수를 활용해보시겠어요?

    $content->option->메타키;

     

    숏코드 관련 함수에서 파라미터를 $atts=array() 이런 식으로 적용한 이유는

    $atts 변수가 파라미터로 넘어오지 않을 경우를 대비해서 배열로 적용했습니다.

    실제 저희 쪽 테스트 서버에서 확인해보니

    $atts=array() 코드를 $atts로 교체해도 문제는 되지 않는 듯합니다.

    고맙습니다.

  • 정말 감사합니다!!

    그런데

    add_action('kboard_document_insert', 'kboard_document_insert_emp', 10, 4);
    function kboard_document_insert_emp($content_uid, $board_id, $content, $board){
     global $mydb;
     
     if($board_id == '2'){
      $mydb->query("INSERT INTO test(emp_id, name) VALUES(".$content->option->title.",".$content->option->name.");");
     }

    }

     

    이렇게 추가를 했는데 입력버튼을 누르면 성공메시지가 뜨긴한데 데이터베이스에는 들어가지 않습니다 ㅠㅠ

     

     

    add_action('init', 'my_db_test');
    function my_db_test(){
     global $mydb;
     $mydb = new wpdb('root', 'autoset', 'wordpress', 'localhost');
    }

    functions.php 파일 중간에 이 코드도 들어가있구요.

    test 테이블에는 emp_id, name 필드가 있고

    title 필드의 값을 emp_id에, name은 name에 넣으려 합니다.

     

    어떤게 문제일까요??

  • 안녕하세요~^^

    KBoard 플러그인 내장 액션인 kboard_document_insert 액션에 $wpdb를 활용하시면 가능합니다.

    kboard_document_insert 액션은 게시글 입력 후 새로운 코드를 추가하고 실행되게 하실 수 있습니다.

    KBoard 플러그인 액션과 필터는 아래의 링크를 참고해보세요.

    https://www.cosmosfarm.com/products/kboard/hooks

     

    $wpdb로 워드프레스에서 DB에서 데이터를 가져오거나 입력하실 수 있습니다.

    자세한 내용은 아래의 링크를 참고해보시겠어요?

    https://codex.wordpress.org/Class_Reference/wpdb

    고맙습니다.

  • 감사합니다.

    제가 초보라 그런데 예시같은걸 간단하게 알려주실수있나요??

    add_action('kboard_document_insert', 파라미터1, 파라미터2, 파라미터3, 파라미터4){

    wpdb 사용

    }

    이렇게 하는건가요?? parameter는 어느위치에서 사용하는건가요??

     

    그리고 action을 추가한 후 숏코드로 만들어서 버튼에 추가하는 식으로 해야하나요??

  • 빠른 답변 정말 감사합니다.

    그런데 제가 임의로 추가했던 입력필드에 대한 값들은 파라미터 중 어디에 들어있나요???

    어떻게 각각으로 분리해 다룰수있나요??

     

     

  • 그리고 궁금한게 또 하나 있습니다.

    https://www.cosmosfarm.com/threads/document/14542

     

    여기 답변주신 예제에서 function my_db_print_functoin($atts=array()){
     에서 파라미터를 $atts = array() 로 설정하신 이유는 무엇인가요???

  • 코드를 올려주실 땐 에디터의 코드 스니펫 삽입 기능을 이용해주세요.

     

    kboard_document_insert 액션에서 게시글 제목과 작성자명은

    아래의 코드를 활용해보시겠어요?

    $content->title;
    $content->member_display;

     

    test 테이블은 직접 생성하신 건지요?

    직접 추가하신 INSERT문에 VALUES 쪽에 각 데이터의 양쪽에 작은따옴표(')를 추가해보시겠어요?

     

    아래 링크도 참고해보세요.

    http://tcpschool.com/mysql/mysql_basic_insert

    고맙습니다.

  • 감사합니다 !!! 따옴표를 추가하니 되었습니다.

    정말 감사합니다!

     

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요