2012-11-29 51 views
1

我有点卡住了。我正在使用的模板具有称为产品的自定义帖子类型。当我在这里添加帖子/页面时,我可以使用页面中的小部件代码来显示它们。wordpress部件和帖子内容问题

窗口小部件显示输入到自定义字段中的内容,但我不能为了我的生活而弄清楚如何修改代码以显示来自custompost类型内容部分的内容。任何见解?

这是生成窗口小部件的shortcodes.php文件中的代码。

$count_posts = wp_count_posts('product'); 
    $published_posts = $count_posts->publish; 
    $out =''; 
    $out .=' <div class="pricing-table">'; 
     $out .= '<ul>'; 
     $counter = 0; 
     while (have_posts()) : the_post(); 
     $counter++; 
     $product_price = get_post_meta($post->ID,'_product_price',true); 
      $out .= '<li class="heading-column '.$class_heading.' color'.$counter.'">'; 
      $out .= '<h3>'.get_the_title().'</h3>'; 
      $out .= '<h5>'; 
      $out .= $currency ? $currency : "&#36;"; 
      $out .= $product_price; 
      if ($billing_cycle == "none") { 
       $out .= ""; 
      } else { 
       $out .= ' per '.$billing_cycle; 
      } 
      $out .= '</h5>'; 
      $out .= '</li>'; 
     endwhile; 
     $out .= '</ul>'; 

     $out .= '<div class="clear"></div>'; 
     $out .= '<ul>'; 
     while (have_posts()) : the_post(); 
     $product_url = get_post_meta($post->ID,'_product_url',true); 
     $product_feature = get_post_meta($post->ID,'_product_feature',true); 
     $features_list = explode(",",$product_feature); 
     $counter++; 
      $out .= '<li class="pric-column '.$class_column; 
      if ($counter%$columns==0) $out .= '-last'; 
      $out .= '">'; 
      foreach ($features_list as $flist) { 
      $out .= '<ul class="feature-list">'; 
       $out .= '<li>'.$flist.'</li>'; 
      } 
      $out .= '<li class="last">'; 
      $out .= '<a class="button" href="'.$product_url.'"><span>'.$product_button_text.'</span></a>'; 
      $out .= '</li>'; 
      $out .= '</ul>'; 
     endwhile;wp_reset_query(); 
     $out .= '</ul>'; 
    $out .= '</div>'; 

    return '[raw]'.$out.'[/raw]'; 
} 

回答

0

您的代码不起作用,因为the loop未被填充。
那里它会做页面的默认循环。 (如果它已经不是已经运行过的)

另外你做的东西不会像$published_posts一样。

您应该使用WP_Query创建自定义循环。

有一点帮助,让你开始:

$query_args = array(
    'post_type' => 'products', // the post type name 
    'post_status' => 'publish', 
); 
$products = new WP_Query ($query_args) 

// before loop stuff like opening tags 
while($products->have_posts()): $products->the_post(); 
    // do your stuff like display post_meta 
endwhile; 
// after loop stuff like closing tags 

这应该让你开始。
如果您需要任何帮助,请告诉我!