web-dev-qa-db-ja.com

Wordpressのwoocommerceのurlキーで製品の詳細を取得する

私は自分のカスタムページに製品の詳細をロードしたいと思います。私はurl keyのようなhttp://localhost/mysite/product/samsung-1を使うことができるあらゆる方法があります。この製品のキーはsamsung-1です。私はurl keyを使用してこれを行うか、私はthis.thanksのためにidを使用する必要がありますが、これはidを使用します。

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

これには、既存の関数 get_page_by_path() を使用するだけです。これには、指定できる3番目のパラメータ$post_typeがあります。あなたの場合、カスタム投稿タイプproductからの投稿が欲しいものです。

基本的な例:

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

以下の機能が利用できます

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

使用法:

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

まだテストされていません

3
M-R