[wordpress][워드프레스] 워드프레스에서 wpdb를 사용한 CRUD 작업 예

 

http://codex.wordpress.org/Class_Reference/wpdb#Interfacing_With_the_Database

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

 

워드프레스에서 제공하는 wpdb 클래스는 워드프레스가 관리하는 데이터베이스에 접속하여 데이터 입출력 작업을 쉽게 할 목적으로 사용되지만 다른 데이터베이스에도 사용할 수 있다

 

wpdb 오브젝트에 접근하기

global $wpdb : global 오브젝트 변수로 선언하고 사용하는 방법

$GLOBALS['wpdb'] : superglobal 인 $GLOBALS['wpdb']를 사용할 때는 선언할 필요가 없다

 

/wp-include/wp-db.php에 정의되어 있다

 

디폴트로 워드프레스가 관리하는 데이터베이스에 접속되어 있다

 

global $wpdb, $GLOBAL['wpdb'] 사용 예

// 1st Method - Declaring $wpdb as global and using it to execute an SQL query statement that returns a PHP object

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

global $wpdb;

$results = $wpdb->get_results( 'SELECT * FROM wp_options WHERE option_id = 1', OBJECT );

 

// 2nd Method - Utilizing the $GLOBALS superglobal. Does not require global keyword ( but may not be best practice )

 

$results = $GLOBALS['wpdb']->get_results( 'SELECT * FROM wp_options WHERE option_id = 1', OBJECT );

 

워드프레스가 디폴트로 생성한 테이블 뿐만이 아니라 개발자가 생성한 테이블에도 다음과 같이 사용할 수 있다

$myrows = $wpdb->get_results( "SELECT id, name FROM mytable" );

 

 

여기서는 global #wpdb 를 사용하여 CRUD 작업을 수행하는 플러그인을 작성해 보고자 한다4

<?php
/*
Plugin Name: KCW WPDB CRUD Plugin
Description: WPDB를 이용한 CRUD 테스트 플러그인.
Version: 1.0
Author: Kim Chang Woon
*/
 
//화면에 guest 리스트를 보여주는 함수. Shortcode [kcw_wpdb_show_list]를 페이지 템플릿에 추가하면 됨
add_shortcode('kcw_wpdb_show_list''kcw_show_guest_list');
function kcw_show_guest_list($atts){
    global $wpdb;
    $rs $wpdb->get_results('SELECT id, firstname FROM myguests LIMIT 0, 10'); // 처음부터 10개만
    echo '<table>';
    echo '<tr><th>아이디</th><th>First Name</th></tr>';
    foreach($rs as $guest){
        echo "<tr><td> $guest->id </td><td> ";
        echo "<a href=../guest-desc?id=$guest->id>$guest->firstname</a>";
        echo "</td></tr>";
    }
    echo '</table>';
    echo "[<a href=../guest-add>추 가</a>]";
}
 
 
//화면에 guest의 상세정보를 출력하는 함수. Shortcode [kcw_guest_info]
add_shortcode('kcw_guest_info''kcw_show_guest_info');
function kcw_show_guest_info($atts) {
    $id $_GET['id'];
    global $wpdb;
    $row $wpdb->get_row('SELECT id, firstname, lastname, email, reg_date '.
        "FROM myguests WHERE id=$id");
    echo "<table><th>아이디</th><th>FirstName</th><th>LastName</th><th>Email</th><th>Reg-Date</th></tr>";
    echo "<tr><td>$row->id</td><td>$row->firstname</td><td>$row->lastname</td>";
    echo "<td>$row->email</td><td>$row->reg_date</td></tr>";
    echo "</table>";
    echo "[<a href=../guest-edit-form?id=$row->id>수 정</a>]";
    echo "[<a href=".get_admin_url()."admin-post.php?action=guest_delete&id=$row->id>삭 제</a>]";
    echo "[<a href=../guest-list/>목 록</a>]";
}
 
// guest 입력폼을 보여주는 함수 Short[kcw_guest_add_form]
add_shortcode('kcw_guest_add_form','kcw_show_add_form');
function kcw_show_add_form($atts){
?>
    <form action="<?php echo get_admin_url().'/admin-post.php';?>" method="post">
    <input type="hidden" name="action" value="guest_save">
    First Name <input type="text" name="firstname" value=""><br>
    Last Name <input type="text" name="lastname" value=""><br>
    Email <input type="text" name="email" value="myemail@google.com"><br>
    <button type="submit">저 장</button>
    </form>
<?php   
}
 
// guest추가 폼에서 서버측에 guest_save 액션을 전송하면 실행되는 액션함수
add_action('admin_post_guest_save''kcw_guest_save');
function kcw_guest_save(){
    $fn $_POST['firstname'];
    $ln $_POST['lastname'];
    $email $_POST['email'];
    global $wpdb;
    $n $wpdb->insert(
        'myguests',
        array(
            'firstname' => $fn,
            'lastname' => $ln,
            'email' => $email
        )
    );
    $id $wpdb->insert_id;
    wp_redirect(plugins_url()."/guest-desc?id=$id");
}
 
// guest 수정 폼 Shortcode [kcw_guest_edit_form]
add_shortcode('kcw_guest_edit_form''kcw_guest_edit_form');
function kcw_guest_edit_form($atts){
    $id $_GET['id'];
    global $wpdb;
    $guest $wpdb->get_row("SELECT * FROM myguests WHERE id=$id");
?>
    <form action="<?php echo get_admin_url().'/admin-post.php';?>" method="post">
    <input type="hidden" name="action" value="guest_update">
    <input type="hidden" name="id" value="<?php echo $id;?>">
    First Name <input type="text" name="firstname" value="<?php echo $guest->firstname;?>"><br>
    Last Name <input type="text" name="lastname" value="<?php echo $guest->lastname;?>"><br>
    Email <input type="text" name="email" value="<?php echo $guest->email;?>"><br>
    <button type="submit">저 장</button>
    </form>
<?php   
}
 
//프런트 엔드에서 수정폼을 전송하면 실행되는 액션함수
add_action('admin_post_guest_update''kcw_guest_update');
function kcw_guest_update(){
    $id $_POST['id'];
    $firstname $_POST['firstname'];
    $lastname $_POST['lastname'];
    $email $_POST['email'];
    global $wpdb;
    $n $wpdb->update('myguests',
                        array(
                                'firstname'=>$firstname,
                                'lastname'=>$lastname,
                                'email'=>$email),
                        array('id'=>$id));
    wp_redirect(plugins_url()."/guest-desc?id=$id");
}
 
//guest-desc 페이지에서 [삭제] 링크를 누르면 호출되는 액션함수
add_action('admin_post_guest_delete''kcw_guest_delete');
function kcw_guest_delete(){
    $id $_GET['id'];
    global $wpdb;
    $n $wpdb->delete('myguests'array('id'=>$id));
    wp_redirect(plugins_url()."/guest-list");
}
?>


출처: https://micropilot.tistory.com/2824 []

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
27 [wordpress, 워드프레스] 워드프레스로 쉽게 랜딩 페이지 만들기 (feat. 엘리멘터, GeneratePress, Divi) file 졸리운_곰 2024.12.20 545
26 [wordpress, 워드프레스] WordPress 페이지또는 글에 별도 CSS와 JavaScript 추가하기 file 졸리운_곰 2024.12.19 354
25 [wordpress 플러그인] 코스모스팜. 회원관리 1.메뉴에 로그인 넣기 file 졸리운_곰 2024.08.25 513
24 [wordpress 플러그인] WP-Members로 회원제 사이트 만들기 file 졸리운_곰 2024.08.25 749
23 [php worldpress] 워드프레스 새 서버 이전시 페이지 안나오는 문제 : How to Rewrite URLs with mod_rewrite for Apache on Ubuntu 20.04 file 졸리운_곰 2024.08.07 774
22 [php worldpress] PHP query to SQL server database (wordpress) 졸리운_곰 2024.07.28 503
21 [php worldpress] [위 에]wordpress 사용자 암호 화 원리 및 알고리즘 분석 졸리운_곰 2022.04.11 377
20 [wordpress] WPForms 워드프레스 폼빌더 사용법 file 졸리운_곰 2021.04.25 1715
» [wordpress][워드프레스] 워드프레스에서 wpdb를 사용한 CRUD 작업 예 졸리운_곰 2021.04.15 356
18 워드프레스에서 wpdb를 사용한 CRUD 작업 예 졸리운_곰 2021.01.12 458
17 워드프레스 – CRUD file 졸리운_곰 2021.01.02 500
16 워드프레스 데이터베이스 들여다보기. file 졸리운_곰 2020.08.04 672
15 워드프레스 플러그인과 테마 비교 - 사이트별 플러그인 만들기 졸리운_곰 2020.04.21 501
14 워드프레스에서 js 스크립트 파일과 스타일시트를 올바르게 로드하는 방법 졸리운_곰 2020.04.21 735
13 워드프레스 플러그인 만들기 file 졸리운_곰 2020.04.21 499
12 워드프레스 숏코드: 완벽 가이드 file 졸리운_곰 2020.04.21 513
11 워드프레스 페이지 분석 file 졸리운_곰 2019.11.19 515
10 내가 본 워드프레스 핵심 구조 및 기능 (Wordpress Architecture and Function) file 졸리운_곰 2019.11.19 452
9 Embedding three.js in WordPress 워드프레스에서 three.js 사용 졸리운_곰 2019.11.08 517
8 How to Super Charge your WordPress with Microservices 워드프레스 마이크로서비스 file 졸리운_곰 2019.11.03 373
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED