Hãy tìm kiếm trước khi đặt câu hỏi, bạn sẽ tiết kiệm rất nhiều thời gian

Nhưng đừng ngại hỏi và đóng góp câu trả lời

Mình muốn tạo thêm 1 bảng trong wordpress rồi lấy giá trị ra.

0 phiếu
level-7 đã hỏi 7 Tháng 4, 2015 bởi hungdq1708 Kinh nghiệm đầy mình (6,940 điểm)
đã tag lại 7 Tháng 4, 2015 bởi hungltmed
Mình muốn tạo thêm 1 bảng trong wordpress rồi lấy giá trị ra nhưng không biết viết sql ở file nào nữa.mọi người giúp mình đc ko.
Hỏi bạn bè:

5 Câu trả lời

+1 phiếu
level-12 level-power đã trả lời 7 Tháng 4, 2015 bởi hà đoàn ngọc Chuyên gia (21,580 điểm) TOP VOTED

Bạn nên viết thành plugin và cho câu lệnh SQL tạo bảng vào trong activation_ hook của plugin. Ví dụ như sau (thêm vao file chính của plugin):

register_activation_hook( __FILE__, 'my_plg_install' );
register_activation_hook( __FILE__, 'my_plg_install_data' );
  1. global $jal_db_version;
  2. $my_plg_db_version = '1.0';
  3. function my_plg_install() {
  4.     global $wpdb;
  5.     global $my_plg_db_version;
  6.     $table_name = $wpdb->prefix . 'my_table';
  7.     
  8.     $charset_collate = $wpdb->get_charset_collate();
  9.     $sql = "CREATE TABLE IF NOT EXISTS $table_name (
  10.         id mediumint(9) NOT NULL AUTO_INCREMENT,
  11.         time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
  12.         name tinytext NOT NULL,
  13.         text text NOT NULL,
  14.         url varchar(55) DEFAULT '' NOT NULL,
  15.         UNIQUE KEY id (id)
  16.     ) $charset_collate;";
  17.     require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
  18.     dbDelta( $sql );
  19.     add_option( 'my_plg_db_version', $my_plg_db_version );
  20. }
  21. function my_plg_install_data() {
  22.     global $wpdb;
  23.     
  24.     $welcome_name = 'Mr. WordPress';
  25.     $welcome_text = 'Congratulations, you just completed the installation!';
  26.     
  27.     $table_name = $wpdb->prefix . 'my_table';
  28.     
  29.     $wpdb->insert( 
  30.         $table_name, 
  31.         array( 
  32.             'time' => current_time( 'mysql' ), 
  33.             'name' => $welcome_name, 
  34.             'text' => $welcome_text, 
  35.         ) 
  36.     );
  37. }

Ở đây chúng ta có 2 hàm: 1 hàm dùng để tạo cấu trúc bảng và 1 hàm dùng để thêm dữ liệu mẫu ban đầu. 2 hàm này sẽ được khi khi plugin activate. Tất nhiên sẽ có trường hợp bảng đã có sẵn rồi, hoặc bạn muốn thay đổi cấu trúc của bạn. Lúc này giá trị  $my_plg_db_version có tác dụng lưu lại phiên bản cấu trúc DB hiện thời, giúp bạn nhận ra phiên bản cũ là  bao nhiêu và cần làm gì (xóa bảng cũ, alter column, thêm mới dữ liệu...)

Do là bảng bạn tự tạo nên cách lấy dữ liệu ra là phải dùng biến $wpdb, biết câu lệnh SQL thông thường cho tất cả các lệnh SELECT, UPDATE, INSERT và DELETE

 

level-1 đã bình luận 7 Tháng 4, 2015 bởi Khách
đơn giản là mình có tạo 1 bảng trong phpmyadmin rồi.Trong file index.php(trong theme) mình muốn show dữ liệu ra =>> mình viết sql query ở chỗ nào và show nó ra trang chủ ntn.cảm ơn bạn.
level-12 level-power đã bình luận 7 Tháng 4, 2015 bởi hà đoàn ngọc Chuyên gia (21,580 điểm)
ak, thế mà câu hỏi của bạn lại là "Mình muốn tạo thêm 1 bảng trong wordpress rồi lấy giá trị ra' -.-

Như mình đã nói, "Do là bảng bạn tự tạo nên cách lấy dữ liệu ra là phải dùng biến $wpdb, biết câu lệnh SQL thông thường cho tất cả các lệnh SELECT, UPDATE, INSERT và DELETE". Tham khảo: https://codex.wordpress.org/Class_Reference/wpdb
0 phiếu
level-2 đã trả lời 7 Tháng 4, 2015 bởi KeyH Mới vào nghề (500 điểm)
Bạn vào  http://localhost/phpmyadmin/ -> tới csdl wordpress rồi tạo bảng bình thường. Có 2 cách bạn có thể tạo đó là trên giao diện hoặc tạo bằng script.

Trên giao diện : Click vào csdl -> chọn New ( bên trên các bảng trong csdl đó) điền các trường thông tin và nhấn Go để hoàn thành

Tạo bằng script: Click vào csdl ->  Chọn tab menu SQL -> viết script ví dụ : CREATE TABLE IF NOT EXISTS wp_tablenew ( id int primarykey,...)

 rồi nhấn Go
level-7 đã bình luận 7 Tháng 4, 2015 bởi hungdq1708 Kinh nghiệm đầy mình (6,940 điểm)
cảm ơn bạn nhưng ý mình khác
0 phiếu
level-11 level-power đã trả lời 7 Tháng 4, 2015 bởi hungltmed Chuyên gia (19,630 điểm)

Nếu bạn cần lưu một vài giá trị thôi thì nên dùng option API của wordpress

Hoặc plugin optionTree nếu bạn ko muốn code

Nếu giá trị nhiều, có tính lặp lại thì nên tạo custom post type, có nhiều plugin giúp bạn tạo mà ko cần code VD: https://wordpress.org/plugins/custom-post-type-ui/

Còn nếu bạn muốn làm việc với database thì nên dùng class $wpdb của WP https://codex.wordpress.org/Class_Reference/wpdb

level-1 đã bình luận 7 Tháng 4, 2015 bởi Khách
đơn giản là mình có tạo 1 bảng trong phpmyadmin rồi.Trong file index.php(trong theme) mình muốn show dữ liệu ra =>> mình viết sql query ở chỗ nào và show nó ra trang chủ ntn.cảm ơn nếu bạn hiểu ý mình
level-11 level-power đã bình luận 7 Tháng 4, 2015 bởi hungltmed Chuyên gia (19,630 điểm)
vậy thì bạn dùng class $wpdb của WP để lôi dữ liệu ra thôi
https://codex.wordpress.org/Class_Reference/wpdb
0 phiếu
level-2 đã trả lời 25 Tháng 12, 2015 bởi tinhtn Mới vào nghề (480 điểm)

Ví dụ trong DB của bạn có bảng NhanVien (id, name, tuoi,diachi,ngaysinh,maphong) ..

Bây giờ ở trang home bạn muốn lấy ra các ông nhân viên thuộc phòng bảo vệ chẳng hạn (maphong = 10) 

Thi bạn vào trang home và thêm đoạn này thôi: 

 


 

global $wpdb;
$results = $wpdb->get_results( 'SELECT * FROM NhanVien WHERE maphong= 10', OBJECT );
print_r($results);
Tham khảo thêm tại: https://codex.wordpress.org/Class_Reference/wpdb
level-1 đã bình luận 12 Tháng 1 bởi Phúc
Bạn ơi,nếu mình cần xuất ra trong 1 bảng thì sao?
0 phiếu
level-1 đã trả lời 8 Tháng 3, 2016 bởi ttklthanhtung Mới vào nghề (200 điểm)
Nhân tiện hỏi luôn , cũng câu hỏi như thế nhưng mình muốn hiển thị trong 1 trang riêng tự tạo trong cùng theme đó thì viết như thế nào ?

Ví dụ trong DB có bảng NhanVien (id, name, tuoi,diachi,ngaysinh,maphong) ..

Bây giờ ở trang 'nhanvien.php' trong theme mình muốn  lấy ra các ông nhân viên thuộc phòng bảo vệ chẳng hạn (maphong = 10)

và url dạng http://domain/wp/name-id

thì khai báo thế nào ? mong chỉ giáo

Chuyên mục HOT

...