sql >> Databasteknik >  >> RDS >> Mysql

Skicka ID:n till pre_get_posts-frågan i funktion

Jag antar att du faktiskt har ett PHP-problem. När du gör array($results_separated) du skapar i princip en array från en sträng som ser ut så här:"12,114,56," . Genom att göra det skapar PHP en array så här:

array(
    0 => "12,114,56,"
)

Och uppenbarligen kan WordPress inte hitta några inlägg med ett sådant ID! Vad du vill ha är faktiskt en sådan här array:

array(
    0 => "12",
    1 => "114",
    2 => "56"
)

Och det är faktiskt vad get_col() returnerar, så du behöver bara skicka $results till set() funktion:

$query->set ( 'post__in', $results );

REDIGERA :Jag insåg faktiskt att ditt problem är när du ringer $wpdb->get_col(...) , eftersom det stör $query du kommer att köra senare... Dessa variabler använder några andra globala variabler som förmodligen åsidosätts, och det är därför du inte får några resultat...



  1. Migrera från Oracle till MySQL

  2. Returnerade min markör i min oracle PL/SLQ funktion men inte alla rader returneras. Kan du bara returnera 1 rad i en Oracle pl/sql-funktion?

  3. Parameteriserat tabellnamn

  4. Hur man stoppar PHP från att lägga till tomma rader/fält till MYSQL-databasen