我使用wordpress并创建一本销售商店的书籍,我只是想在发布商的基础上过滤我的书籍,Publisher是woocommerce中的自定义属性。
如果我想根据发布商过滤图书,我的产品属性库应该是什么?如果我在“产品属性库”中添加“商店”,则会显示404页面未找到错误。
代码是:
$args = array( 'post_type' => 'product', 'posts_per_page' => -1 );
query_posts( $args );
while ( have_posts() ) : the_post();
global $product;
$attr = get_post_meta($product->id, '_product_attributes', true);
$attr_label = $attr['publisher'];
$m = $attr_label["value"]; /*Just for removing the array Vs string php 5+ warning*/
$d[$m] = "1"; /* making a unique array*/
endwhile;
wp_reset_query();
ksort($d);
/* Throwing an out put now */
echo "<ul>";
foreach($d as $index=>$val){
echo "<li><a href=''>".$index."</a></li>";
}
答案 0 :(得分:1)
首先,您不应该使用query_posts()来查询主题中的帖子。请改用WP_Query()
。
像这样的东西
$args = array( 'post_type' => 'product', 'posts_per_page' => -1 );
$post = new WP_Query($args);
$out = '';
if ($post->have_posts()){
while ($post->have_posts()){
$post->the_post();
global $product;
$attr = get_post_meta($product->id, '_product_attributes', true);
$attr_label = $attr['publisher'];
$m = $attr_label["value"]; /*Just for removing the array Vs string php 5+ warning*/
$d[$m] = "1"; /* making a unique array*/
ksort($d);
foreach($d as $index=>$val){
$out.= '<li><a href="">'.$index.'</a></li>';
}
}
}
wp_reset_postdata();
return '<ul>'.$out.'</ul>';
现在我不知道你在_product_attributes
中存储了什么(你可以随时print_r()
看看),但是如果你已经存储了你需要的网址值可以像使用
$publisher_url = $attr_label['url'];
然后把它放在你的href值
中$out.= '<li><a href="'.esc_url($publisher_url).'">'.$index.'</a></li>';
希望这能引导你朝着正确的方向前进。