게시판에서 글쓰기 시 제가 따로 만든 테이블에 들어가도록 하고 싶습니다.
워드프레스와 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
고맙습니다.
감사합니다 !!! 따옴표를 추가하니 되었습니다.
정말 감사합니다!