que je recherchais pour les postes de recherche par date. n'a pas réussi à trouver une solution appropriée sur stackoverflow. J'ai ensuite imprimé l'objet wp_query et trié cette chose. ça a marché pour moi. Dans mon scénario, je cherche des publications par leur titre ou par date. Voici le code pour le crochet.
function SearchFilter($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
// check if query is a date
$search_query = $query->query['s'];
$date_format = DateTime::createFromFormat('d/M/Y', $search_query);
if ($date_format)
{
$dte = date('j',$date_format->getTimestamp());
$month = date('n',$date_format->getTimestamp());
$year = date('Y',$date_format->getTimestamp());
}
if (isset($dte) && isset($month) && isset($year)) {
unset($query->query['s']);
unset($query->query_vars['s']);
$query->query['date_query'] = array(
array(
'year' => $year,
'month' => $month,
'day' => $dte,
)
);
$query->set('date_query', array(
array(
'year' => $year,
'month' => $month,
'day' => $dte,
)
)
);
}
}
return $query;
}
add_filter('pre_get_posts','SearchFilter');
comme u peut remarquer ce filtre vérifie automatiquement si la chaîne est passée param ou la date. m en utilisant
$query->set('post_type', 'post')
pour obtenir les résultats de la publication uniquement, sinon, elle récupérera également la page. Supposons que vous ayez une date sous chaque article, vous pouvez ajouter href à cette date. afin d'obtenir tous les messages de cette date à la fin de la recherche href add param comme? s = quelque chose
http://my.blog?s=1/Jun/2015
et ainsi sur le modèle u ne devez écrire ur personnalisée forwhile utiliser simplement des fonctions de modèle par défaut comme have_posts()