web-dev-qa-db-de.com

Holen Sie sich Produktdetails per URL-Taste in Wordpress Woocommerce

Ich möchte Produkt-Details auf meine benutzerdefinierte Seite laden. Kann ich den url key wie http://localhost/mysite/product/samsung-1 verwenden? In dieser URL ist samsung-1 der Schlüssel für dieses Produkt. Ich möchte dies verwenden und Produktdetails wie Name, Beschreibung und Attribute erhalten Kann ich das mit url key machen oder ich muss id dafür verwenden. Danke, ich habe diesen Code ausprobiert, aber dies verwendet id:

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

Sie können hierfür einfach die vorhandene Funktion get_page_by_path() verwenden, die einen dritten Parameter enthält, den Sie als $post_type angeben können. In Ihrem Fall ist ein Beitrag vom benutzerdefinierten Beitragstyp product das, was Sie wollen.

Einfaches Beispiel:

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

Sie können die folgende Funktion verwenden

/**
* 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;
}

Verwendungszweck:

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

Es ist aber nicht getestet

3
M-R