pré messages obtenir les changements de la requête
-
16-10-2019 - |
Question
Je dois changer les messages en page taxonomy.php. J'ai meta_key que je veux comparer à la valeur méta. Mais actuellement mon code est rien de retour. Je suis sûr que je manque quelque chose. S'il vous plaît laissez-moi savoir ce que je fais mal!
add_action('pre_get_posts', 'add_event_date_criteria');
function add_event_date_criteria(&$query)
{
// We only want to filter on "public" pages
// You can add other selections, like here:
// - Only on a term page for our custom taxonomy
if (!is_admin() &&
is_tax('event-tag') || is_tax('event-category')) {
$query->set('meta_key', 'start_time');
$query->set('meta_compare', '>=');
$query->set('meta_value', time());
$query->set('meta_key', 'start_time');
$query->set('orderby', 'meta_value_num');
$query->set('order', 'ASC');
}
}
La solution
Essayez d'utiliser le paramètre de meta_query:
add_action('pre_get_posts', 'add_event_date_criteria');
function add_event_date_criteria(&$query)
{
// We only want to filter on "public" pages
// You can add other selections, like here:
// - Only on a term page for our custom taxonomy
if (!is_admin() &&
is_tax('event-tag') || is_tax('event-category')) {
$time = time();
$meta = array(
array(
'key' => 'start_time',
'value' => $time,
'compare' => '>='
)
);
$query->set('meta_query',$meta );
$query->set('meta_key', 'start_time');
$query->set('orderby', 'meta_value_num');
$query->set('order', 'ASC');
}
}
aussi vous devez vous assurer que votre champ méta start_time
est mesurée et enregistrée dans le nombre de secondes depuis la fonction Unix Epoch comme du temps ().
Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange