我有点卡住了。我使用的模板有一个名为products的自定义帖子类型。当我在这里添加帖子/页面时,我可以使用页面中的小部件代码显示它们。
小部件显示输入到自定义字段中的内容,但我不能在我的生活中找出如何修改代码以显示来自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 : "$";
$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 :(得分: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
这应该让你开始。
如果您需要任何帮助,请告诉我们!