Interogare SQL personalizată pentru o pagină Wordpress
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.
- Interoghează date din baza mea de date MySQL
- 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ă?
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.

<?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();
