Home WEB PROGRAMING TUTORIAL WORDPRESS Mengambil Post dari Database WordPress Lain

Mengambil Post dari Database WordPress Lain

103
0
SHARE
Mengambil Post dari Database Wordpress Lain

Mengambil Post dari Database WordPress Lain – Hai sahabat .Kali ini saya mau bahas tentang cara mengakses dan mengambil post dari database yang berbeda dengan CMS WordPress..

WordPress sudah memiliki class sendiri untuk membuat koneksi database..Kita cukup mengatur nama database,,username,,password,,dan host yang digunakan pada saat instalasi pertama kali dan data tersebut disimpan di file wp-config.php..Untuk membuat koneksi baru kita bisa menggunakan class wpdbmilik WordPress dengan cara sebagai berikut:

1
$mydb = new wpdb('root','passwordlocalhost','database_lama','localhost'); //disesuaikan sendiri

Di sini saya menggunakan variable mydb dan membuat koneksi baru ke database yang akan saya ambil datanya..Sekarang variable $mydb sudah bisa digunakan untuk menjalankan query seperti kita menggunakan $wpdb..Misalnya untuk mengambil post yang post type-nya berupa page dan statusnya sudah publish,,kita bisa memanggilnya dengan cara

1
$mydb->get_results( "SELECT * FROM wp_posts WHERE post_status = 'publish' AND post_type = 'page'" );

atau untuk mengambil thumbnail ID dari suatu post

1
$mydb->get_var( "SELECT meta_value FROM wp_postmeta WHERE meta_key = '_thumbnail_id' AND post_id = 2" );

Berikut script yang saya gunakan untuk mengambil semua page dari database lama dan memindahkannya ke database yang baru:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$mydb = new wpdb('root','passwordlocalhost','database_lama','localhost');
$mydb->show_errors();
$page_lists = $mydb->get_results( "SELECT * FROM wp_posts WHERE post_status = 'publish' AND post_type = 'page'" ); //ambil page dari database_lama
foreach($page_lists as $page){
    $new_post = array(
        'post_title'    =>   $page->post_title,
        'post_type' =>   'page',
        'post_name' =>   $page->post_excerpt,
        'post_excerpt'  =>   $page->post_name,
        'post_status'   =>   'publish',
    );
    wp_insert_post($new_post); //tambah page ke database_baru
}

Script ini bisa diletakkan di function.php pada tema,,atau bisa juga dibuatkan dalam bentuk plugin yang sederhana..Untuk tutorial membuat plugin sederhana bisa dilihat di sini..

Untuk penerapannya mungkin tidak terlalu sering kita jumpai, saya sendiri hanya beberapa kali mendapatkan kasus yang memerlukan cara tersebut untuk mengambil data dari database lain..Atau bisa jadi penerapannya malah lebih kompleks,,misalnya mengambil post beserta kategori dan attachment-nya..Tapi saya harap tutorial ini bisa berguna dan membantu teman” sekalian..