Interogare SQL personalizată pentru o pagină Wordpress

3 mai 2013, 17:08:48
Vizualizări: 47.8K
Voturi: 7

Sunt relativ nou în Wordpress. Încerc să creez o vizualizare sub formă de tabel într-o pagină Wordpress. Pentru aceasta am nevoie de o interogare SQL personalizată către baza mea de date MySQL.

  1. Interoghează date din baza mea de date MySQL
  2. Obține rezultatul într-un format HTML pentru a-l afișa sub formă de tabel în cadrul unei pagini Wordpress.

Întrebarea mea este: Cum pot folosi clasa wpdb într-o pagină Wordpress când nu este o opțiune să introduc cod PHP direct în pagină?

6
Comentarii

Folosește clasa wpdb pentru interogări personalizate în WordPress. De asemenea, poți încerca și clasa WP_Query.

RRikesh RRikesh
3 mai 2013 17:12:12

Te rugăm să editezi întrebarea pentru a explica exact ce încerci să realizezi. A ne spune că vrei să extragi date din MySQL într-o pagină WordPress este prea vag pentru a primi ajutor util.

Pat J Pat J
3 mai 2013 17:18:20

Se așteaptă să fi cercetat problema și să fi încercat să o rezolvi înainte de a posta o întrebare. Consultă pagina Codex pentru shortcodes pentru a începe. Această întrebare este destul de generală și pare a fi mai multe întrebări într-una. Vezi și: cum să pui o întrebare bună

s_ha_dum s_ha_dum
3 mai 2013 17:19:50

Am editat întrebarea mea și știu că wpdb_class este cumva răspunsul, dar unde trebuie să pun codul PHP necesar pentru a folosi wpdb_class. Presupun că trebuie plasat undeva în afara paginii WordPress, trebuie să obțin rezultatele transferate cumva din acel loc pe pagina WordPress.

user32354 user32354
3 mai 2013 17:28:19

Puteți fie să scrieți un plugin WordPress, fie puteți insera codul în fișierul functions.php al temei. Permiterea adăugării directe a codului PHP în editorul WP este un coșmar de securitate, ca să fiu blând.

Pat J Pat J
3 mai 2013 17:41:35

@Pat J: Să spunem că am creat plugin-ul așa cum este descris. Cum afișez acum rezultatul interogării din acel plugin pe o pagină WordPress?

user32354 user32354
3 mai 2013 18:43:16
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 2
0
11

Obiectul wpdb poate fi utilizat pentru a executa interogări arbitrare în baza de date WordPress. Să presupunem că doriți să afișați cele mai recente 4 articole:

$results = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE `post_type`='post' LIMIT 4" );

Variabila $wpdb->posts va returna numele tabelei pentru articole. De obicei este wp_posts, dar dacă utilizați un prefix personalizat pentru baza de date, acesta poate fi diferit.

Cu toate acestea, dacă încercați să obțineți datele articolelor (sau datele articolelor personalizate sau metadatele sau datele utilizatorilor sau... orice altceva integrat în WordPress), ar trebui să utilizați WP_Query.

Iată aceeași interogare rescrisă pentru WP_Query:

$query = new WP_Query(
    array(
        'post_type'      => 'post', // tipul postării
        'posts_per_page' => 4       // numărul de postări pe pagină
    )
);

Avantajul utilizării WP_Query este că va face join automat cu tabela de meta-informații și va returna un array de obiecte WP_Post cu care puteți lucra și pe care le puteți parcurge.

3 mai 2013 18:08:39
2
<?php 
global $wpdb;
$post_id = $wpdb->get_results("SELECT post_id FROM $wpdb->postmeta WHERE (meta_key = 'mfn-post-link1' AND meta_value = '". $from ."')");
    print_r($post_id); /
?>

Definește variabila globală $wpdb apoi realizează o interogare personalizată și trece $wpdb->get_results();

9 nov. 2020 12:26:03
Comentarii

Te rog [editează] răspunsul tău și adaugă o explicație: de ce ar putea rezolva problema?

fuxia fuxia
9 nov. 2020 15:38:44

Cu această interogare poți să o folosești oriunde în WordPress pentru a obține date în WordPress

Gurpreet Singh Gurpreet Singh
10 nov. 2020 08:11:19