web-dev-qa-db-fra.com

Obtenir les détails du produit par clé url dans Wordpress

Je souhaite charger les détails des produits sur ma page personnalisée. Existe-t-il un moyen d'utiliser le url key comme http://localhost/mysite/product/samsung-1.L'URL samsung-1 est la clé de ce produit.Je veux l'utiliser et obtenir des détails sur le produit, tels que nom, description et attributs .Puis-je faire cela en utilisant url key ou je dois utiliser id pour this.thanks, j'ai essayé ce code, mais cela utilise id:

<?php $post = get_post('5653'); //assuming $id has been initialized
echo "<pre/>";
print_r($post);
wp_reset_postdata();?>
1
Mahmood Rehman

Vous pouvez simplement utiliser la fonction existante get_page_by_path() pour cela, qui possède un troisième paramètre $post_type que vous pouvez spécifier. Dans votre cas, une publication du type de publication personnalisé product correspond à vos souhaits.

Exemple de base:

$product_obj = get_page_by_path( $slug, OBJECT, 'product' );
4
Nicolai

Vous pouvez utiliser la fonction suivante

/**
* Retrieve a product given its slug.
*/

function get_product_by_slug($page_slug, $output = OBJECT) {
    global $wpdb;
        $product = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s", $page_slug, 'product'));
        if ( $product )
            return get_post($product, $output);

    return null;
}

Usage:

$product = get_product_by_slug('samsung-1');

Ce n'est pas testé si

3
M-R