get_posts cu meta_compare='LIKE' nu funcționează - Soluții
Folosesc următorul cod:
$tolettpe = "Sale";//valoare implicită
if($_REQUEST['tolettype']) $tolettpe = $_REQUEST['tolettype'];
else if($_REQUEST['srch_type']) $tolettpe = $_REQUEST['srch_type'];
$args = array(
'numberposts' => $latestcount,
'category' => $catidstr,
'meta_key' => 'property_type',
'meta_compare' => 'LIKE',
'meta_value' => $tolettpe.'%'
);
$post_content = get_posts($args);
Valoarea din baza de date este 'Sale||' și nu există variabile în șirul de interogare.
Dar interogarea nu returnează niciun rezultat.
Dacă folosesc valoarea exactă și fără meta_compare, funcționează.
Aveți idei cum să fac asta să funcționeze?

meta_compare
Valorile posibile sunt '!=', '>', '>=', '<', sau '<='
. Valoarea implicită este '='
Dacă doriți să utilizați LIKE
, trebuie să creați un meta_query, de exemplu:
$tolettpe = "Vânzare"; // implicit
if($_REQUEST['tolettype']) $tolettpe = $_REQUEST['tolettype'];
else if($_REQUEST['srch_type']) $tolettpe = $_REQUEST['srch_type'];
$args = array(
'numberposts' => $latestcount,
'category' => $catidstr,
'meta_query' => array(
array(
'key' => 'property_type',
'value' => $tolettpe,
'compare' => 'LIKE'
)
)
);
$posts = get_posts($args);
Interogarea generată plasează termenul de căutare între două semne %, astfel încât nu este necesar să adăugați oricare în cod.

mersi, am încercat dar nu primesc niciun rezultat. Există vreo metodă să afișez interogarea generată ca să o pot rula direct în baza de date pentru depanare?

ok, am găsit răspunsul la această întrebare http://codex.wordpress.org/Editing_wp-config.php#Save_queries_for_analysis
