在Wordpress WooCommerce中通过url键获取产品详细信息

时间:2015-10-28 作者:Mahmood Rehman

我想在我的自定义页面上加载产品详细信息。我有什么办法可以使用url key 喜欢http://localhost/mysite/product/samsung-1.在此url中samsung-1 是该产品的关键。我想使用它并获取产品详细信息,如名称、描述和属性。我可以使用url key 否则我就得用身份证。thanksI尝试了此代码,但此代码使用了id:

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

2 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

您只需使用现有函数即可get_page_by_path() 对于这个,它有第三个参数$post_type 您可以指定。在您的情况下,来自自定义帖子类型的帖子product 是你想要的。

基本示例:

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

SO网友:M-R

您可以使用以下功能

/**
* 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\');
但它没有经过测试

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register