Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Wordpress]Zmiana tabeli pobierania i zapisywania customowych postów
Forum PHP.pl > Forum > Gotowe rozwiązania
Kiui
Cześć,

Chciałbym wordpresie we własnym typie postów podmienić tabelę pobierania danych z wp_posts na wp_moja_wlasna tabele.
Przejrzałem Internet w zadłuż i szerz, genialne chat boty też nie wiedzą jak zrobić.
odpowiednikiem jest np. tabela wc_orders i zapis zamówień w woocomerca
Próbowałem to robić za pomocą:
  1. public function __construct() {
  2. add_filter( 'manage_edit-joboffers_candidates_columns', array( $this, 'modify_job_offer_candidates_columns' );
  3. add_action( 'manage_joboffers_candidates_posts_custom_column', array( $this, 'display_job_offer_candidates_data', 10, 2 );
  4. }
  5.  
  6. function modify_job_offer_candidates_columns( $columns ) {
  7. // Usuwamy domyślne kolumny
  8. unset( $columns['title'] );
  9. unset( $columns['date'] );
  10.  
  11. // Dodajemy nowe kolumny
  12. $columns['id'] = __( 'ID', 'job-offers-plugin' );
  13. $columns['create_data'] = __( 'Data utworzenia', 'job-offers-plugin' );
  14. $columns['name'] = __( 'Imię', 'job-offers-plugin' );
  15. $columns['surname'] = __( 'Nazwisko', 'job-offers-plugin' );
  16. $columns['phone'] = __( 'Telefon', 'job-offers-plugin' );
  17. $columns['email'] = __( 'Email', 'job-offers-plugin' );
  18. $columns['status'] = __( 'Status', 'job-offers-plugin' );
  19.  
  20. return $columns;
  21. }
  22. function display_job_offer_candidates_data( $column, $post_id ) {
  23. global $wpdb;
  24.  
  25. // Zapytanie SQL do pobrania danych z tabeli wp_st_candidate_applications
  26. $sql = "SELECT `id`, `create_data`, `name`, `surname`, `phone`, `email`, `status`
  27. FROM `wp_mojatabela`
  28. WHERE `post_id` = %d";
  29.  
  30. $results = $wpdb->get_results( $wpdb->prepare( $sql, $post_id ) );
  31.  
  32. if ( ! empty( $results ) ) {
  33. $candidate_data = $results[0]; // Pobieramy pierwszy wynik (zakładamy, że jest tylko jeden kandydat na ofertę)
  34.  
  35. switch ( $column ) {
  36. case 'id':
  37. echo $candidate_data->id;
  38. break;
  39. case 'create_data':
  40. echo $candidate_data->create_data;
  41. break;
  42. case 'name':
  43. echo $candidate_data->name;
  44. break;
  45. case 'surname':
  46. echo $candidate_data->surname;
  47. break;
  48. case 'phone':
  49. echo $candidate_data->phone;
  50. break;
  51. case 'email':
  52. echo $candidate_data->email;
  53. break;
  54. case 'status':
  55. echo $candidate_data->status;
  56. break;
  57. }
  58. } else {
  59. echo '-'; // Wyświetlamy "-" jeśli nie ma danych dla danego postu
  60. }
  61. }
Aneczka65
Możesz zrobić to za pomocą hooków w WordPressie, ale musisz dostosować zapytania, żeby odczytywały dane z własnej tabeli. Twój kod wygląda OK, tylko upewnij się, że dobrze obsługujesz post_id i dodajesz kolumny poprawnie. Sprawdź też, czy wp_mojatabela ma poprawny prefiks i strukturę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.