通过帖子ID获取Wordpress数据

时间:2014-02-09 22:40:20

标签: php wordpress woocommerce

以下代码从我的Wordpress网站成功获取category“工具”的所有Woocommerce产品。

<?php
$args = array(
'post_type' => 'product',
'posts_per_page' => 100,
'product_cat' => 'tools'
);
$loop = new WP_Query($args);

while ($loop->have_posts()):
$loop->the_post();
global $product;
echo '<br /><a href="' . get_permalink() . '">' . woocommerce_get_product_thumbnail() . ' ' . the_title() . ' ' . the_content() . ' ' . get_post_meta(get_the_ID() , '_regular_price', true) . ' ' . get_post_meta(get_the_ID() , '_sale_price', true) . '</a>';
endwhile;
wp_reset_query();
?>

此工作正常,并返回category“工具中的所有产品。

但是我现在正试图通过其post id获得产品。所以不是category而是id。我想获得上述产品的所有数据,即标题,内容,图片,促销价和正常价格。

我尝试了下面的代码,但它没有用。

<?php
$args = array(
'post_type' => 'product',
'posts_per_page' => 100,
'ID' => '254'
);
$loop = new WP_Query($args);

while ($loop->have_posts()):
$loop->the_post();
global $product;
echo '<br /><a href="' . get_permalink() . '">' . woocommerce_get_product_thumbnail() . ' ' . the_title() . ' ' . the_content() . ' ' . get_post_meta(get_the_ID() , '_regular_price', true) . ' ' . get_post_meta(get_the_ID() , '_sale_price', true) . '</a>';
endwhile;
wp_reset_query();
?> 

如何获取产品的所有信息,就像我在第一段代码(按类别)中所做的那样,而是通过其ID代替?

例如,在上面的代码中,我试图获取产品上的数据,其帖子ID为254.所以关于那个产品的信息。

我认为我会在ID数组中寻找product_cat而不是$args

请帮忙。

2 个答案:

答案 0 :(得分:1)

试试这个(除非我读错了)并阅读评论:

<?
$args = array(
// 'post_type' => 'post', // what I used to test
'post_type' => 'product', // what you need
'posts_per_page' => 100,
//'ID' => '254' // this would limit the results to ID 254 ONLY - so this is bad
);
// Generates the result set
$loop = new WP_Query($args);
//echo "<pre>\r\n"; // makes output easy to read

// uncomment next line to see what else is available
// var_dump($loop->posts);

// Don't actually need to be in the loop to use the query result
foreach ($loop->posts as $p){
    echo 'post_title :'.$p->post_title."<br />\r\n";
    echo 'post_name :'.$p->post_name."<br />\r\n";
    echo 'post_content :'.$p->post_content."<br />\r\n";
    echo 'ID :'.$p->ID."<br />\r\n";
}

使用“帖子”类型在我的本地WP沙箱上工作。我相信Woo正在为产品使用自定义帖子类型(只是一个新名称的帖子/页面 - WP中的超级便利功能)。

祝你好运。

答案 1 :(得分:0)

'orderby'=> 'id'添加到您的wp查询帖子中,它会正常运行,祝你好运。