Nous pouvons obtenir plusieurs publications manuellement dans une page, mais celle-ci est générée dans un modèle, APRÈS que la requête par défaut ait renvoyé autre chose (page/publication, etc.).
Comment interroger plusieurs publications dans une requête publique, qui ne partagent aucune taxonomie ou quoi que ce soit d'autre?
par exemple. par ID:
http://example.com/?p=23,18,2,199,6,8
Je travaille déjà en analysant une variable dans un modèle page-name.php, mais une fois que le modèle est obtenu, il est trop tard pour le générer, par exemple. canoniques.
J'imagine que ce serait quelque chose de similaire à une recherche, sauf que la recherche est une relation de 1 à plusieurs posts et que cela nécessite une requête multiple en message unique (chaque).
Merci.
Peut-être recherchez-vous le paramètre post__in
dans WP_Query
.
$query = new WP_Query(array(
'post__in' => array(23,18,2,199,6,8)
);
Et alors:
while ( $query->have_posts() ) {
$query->the_post();
/* post loop */
}
Jetez un coup d'œil à la documentation . = D
post__in
n'est pas interrogeable par défaut, vous pouvez donc simplement valider et copier $_GET['post__in']
sur le point d'ancrage de l'action parse_query
, et laisser la chose se produire.
add_action('parse_query', 'wpse59828_parse_query');
function wpse59828_parse_query($query) {
if (empty($_GET['post__in']))
return $query;
$posts = explode(',', $_GET['post__in']);
$post__in = array();
foreach ($posts as $p) {
$post__in[] = intval($p);
}
$query->query_vars['post__in'] = $post__in;
return $query;
}
Ensuite, vous accéderiez simplement à ceci:
http://mywebsite.com/?post__in=23,18,2,199,6,8
Veuillez noter que, dans ce cas, vous ne pourrez pas définir l'ordre de publication dans les versions de WordPress antérieures à 3.5 ( # 13729 ). Utilisez ce plugin si vous en avez besoin.
$tax_query = array (
array (
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $cat_name
)
);
$args = array( 'tax_query' => $tax_query, 'numberposts' => -1);
$lastposts = get_posts( $args );