如何在premalink中设置产品属性库

时间:2015-07-20 06:29:28

标签: wordpress url woocommerce permalinks

我使用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>";
             }

1 个答案:

答案 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>';

希望这能引导你朝着正确的方向前进。