web-dev-qa-db-fra.com

WP Requête pour obtenir un tableau de limaces

Je vais donc utiliser un modèle dans lequel les publications ont des produits connexes (woocommerce) tels que définis dans les champs personnalisés. Je viens de recevoir un paquet de slugs et je ne sais pas comment je peux interroger le tableau de slugs. Voici ce que j'ai

$args = array(
    'post_type' => 'product',
    'posts_per_page' => 12,
    'tax_query' => array(
        'taxonomy' => 'product_cat',
        'field' => 'slug',
        'terms' => $products_used
    )
);

Je sais que vous pouvez le faire avec des identifiants, mais j'ai besoin que cela soit fait avec des limaces. Est-ce possible avec WP_Query ou dois-je écrire la requête moi-même pour économiser du stress?

1
Callum Bonnyman

Il suffit d’exécuter un tax_query normal et de définir le paramètre field sur slug dans la requête. Je suppose que vous avez déjà un moyen d'obtenir le tableau de limaces

( Nécessite PHP5.4 + )

$args = [
    'post_type'      => 'product',
    'posts_per_page' => 12,
    'tax_query'      => [
        [
            'taxonomy' => 'TAXONOMY_NAME',
            'field'    => 'slug',
            'terms'    => ['something', 'something-again', 'something-else'],
        ]
    ],
];
$loop = new WP_Query( $args );

MODIFIER

D'après les commentaires, ces limaces sont en fait des post-limaces et non des limaces à terme. Dans ce cas, vous devrez interroger les publications avec get_page_by_path(). Vous devrez avoir un tableau de slugs et ensuite utiliser une boucle foreach pour interroger les publications.

Vous pouvez essayer ce qui suit: ( Assurez-vous simplement que le type de message est correct, j’ai utilisé product ici )

$slugs_array = ['something', 'something-again', 'something-else'];
foreach ( $slugs_array as $v ) {
    $post = get_page_by_path( $v, OBJECT, 'product' );
    // If we don't have a valid post object, continue
    if ( !$post ) 
        continue;

    // Setup postdata to make template tags available   
    setup_postdata( $post );

    the_title();
}
wp_reset_postdata();
1
Pieter Goosen