2014-05-30 5 views
1

В WooCommerce> Настройки> Продукты, я установил «Показать страницу магазина» на «Показать подкатегории» - так что на моей главной странице магазина (http://example.com/shop/) показаны только категории (и отдельные продукты).WordPress - Как исправить панировочные сундуки WooCommerce на странице категории магазина?

Я также использовал this code snippet, чтобы категории продуктов отображались в моих панировочных сухарях, так как моя тема использует тему «Простота» WooTheme как своего родителя.

Проблема заключается в том, что панировочные сухари отображаются неправильно. Сухари выглядеть отлично на магазин домашней странице ... Вы здесь: Главная> Продукция

Но когда я затем нажмите на категории с этой страницы, хлебные крошки, чтобы изменить ... Вы здесь: Главная> Шоколад

... когда это должно быть действительно ... Вы здесь: Главная> Продукты> Шоколад

Чтобы подтвердить этот вопрос, когда я затем нажмите на продукт, хлебные крошки выглядят хорошо снова .. . Вы находитесь здесь: Главная страница> Продукция> Шоколад> Шоколад Vegan Шоколадный бар

Кто-нибудь знает, как я могу исправить проблемные панировочные сухари на странице категорий?

Поскольку это кажется ошибкой, я попросил WooCommerce за их поддержку, но они не хотят ее исправлять.

Заранее спасибо.

+0

Ничего? Вы решили это? У меня точно такая же проблема ...:/ – larsemil

+1

Если я правильно помню, WooThemes сказал, что они исправят это в предстоящем выпуске - очевидно, не так скоро, хотя ... Возможно, стоило бы вам поднять с ними билет (и возможно, указывая на эту страницу SO). –

+0

Я добился еще большего прогресса. Я работаю над страницами продуктов. см. мой второй ответ – RobBenz

ответ

1

Добавьте это в funtions.php файл

// Breadcrumbs Display Category Name 
// ==================================================================== 

function get_breadcrumb_category($cat) { 
    $post = get_post($post->ID); 
    $post_type = $post->post_type; 
    $taxonomy = $cat; 

    $f_categories = wp_get_post_terms($post->ID, $taxonomy); 
    $f_category = $f_categories[0]; 

    if ($f_category->parent != 0) { 
     $f_category_id = $f_category->parent; 
     $parent_array  = get_term_by('id', $f_category_id, $taxonomy, 'ARRAY_A'); 
     $f_category_name = $parent_array["name"]; 
     $term_link  = get_term_link($f_category_id, $taxonomy); 
    } else { 
     $f_category_id = $f_category->term_id; 
     $f_category_name = $f_category->name; 
     $term_link  = get_term_link($f_category_id, $taxonomy); 
    } 

     if ($f_categories && ! is_wp_error($f_categories)) { 
      return '<a href="' . $term_link . '">' . $f_category_name . '</a>'; 
     } else { 
     return ''; 
    } 
} 

function x_breadcrumbs() { 

    if (x_get_option('x_breadcrumb_display', '1')) { 

     GLOBAL $post; 

     $is_ltr   = ! is_rtl(); 
     $stack   = x_get_stack(); 
     $delimiter  = x_get_breadcrumb_delimiter(); 
     $home_text  = x_get_breadcrumb_home_text(); 
     $home_link  = home_url(); 
     $current_before = x_get_breadcrumb_current_before(); 
     $current_after = x_get_breadcrumb_current_after(); 
     $page_title  = get_the_title(); 
     $blog_title  = get_the_title(get_option('page_for_posts', true)); 
     $post_parent = $post->post_parent; 

     if (X_WOOCOMMERCE_IS_ACTIVE) { 
     $shop_url = x_get_shop_link(); 
     $shop_title = x_get_option('x_' . $stack . '_shop_title', __('The Shop', '__x__')); 
     $shop_link = '<a href="'. $shop_url .'">' . $shop_title . '</a>'; 
     } 

     echo '<div class="x-breadcrumbs"><a href="' . $home_link . '">' . $home_text . '</a>' . $delimiter; 

     if (is_home()) { 

      echo $current_before . $blog_title . $current_after; 

     } elseif (is_category()) { 

      $the_cat = get_category(get_query_var('cat'), false); 
      if ($the_cat->parent != 0) echo '<a href="'.get_permalink(102).'">'.get_the_title(102) .'</a>'; 
      echo $current_before . single_cat_title('', false) . $current_after; 

     } elseif (x_is_product_category()) { 

      if ($is_ltr) { 
      echo $shop_link . $delimiter . $current_before . single_cat_title('', false) . $current_after; 
      } else { 
      echo $current_before . single_cat_title('', false) . $current_after . $delimiter . $shop_link; 
      } 

     } elseif (x_is_product_tag()) { 

      if ($is_ltr) { 
      echo $shop_link . $delimiter . $current_before . single_tag_title('', false) . $current_after; 
      } else { 
      echo $current_before . single_tag_title('', false) . $current_after . $delimiter . $shop_link; 
      } 

     } elseif (is_search()) { 

      echo $current_before . __('Search Results for ', '__x__') . '“' . get_search_query() . '”' . $current_after; 

     } elseif (is_singular('post')) { 

      if (get_option('page_for_posts') == is_front_page()) { 
      echo $current_before . $page_title . $current_after; 
      } else { 
      if ($is_ltr) { 

       $f_category = get_the_category(); 

       if ($f_category[0]->parent != 0) { 
       $f_category_id = $f_category[0]->parent; 
       $f_category_name = get_cat_name($f_category_id); 
       } else { 
       $f_category_id = $f_category[0]->term_id; 
       $f_category_name = $f_category[0]->name; 
       } 

       echo '<a href="' . get_category_link($f_category_id) . '">' .  $f_category_name . '</a>' . $delimiter . $current_before . $page_title . $current_after; 
      } else { 
       echo $current_before . $page_title . $current_after . $delimiter . '<a href="' . get_permalink(get_option('page_for_posts')) . '">' . $blog_title . '</a>'; 
      } 
      } 

     } elseif (x_is_portfolio()) { 

      echo $current_before . get_the_title() . $current_after; 

     } elseif (x_is_portfolio_item()) { 

      $link = x_get_parent_portfolio_link(); 
      $title = x_get_parent_portfolio_title(); 

      if ($v = get_breadcrumb_category('portfolio-category')) { 
      $portfolio_category = $delimiter . $v; 
      } else { 
      $portfolio_category = ''; 
      } 

      if ($is_ltr) { 
      echo '<a href="' . $link . '">' . $title . '</a>' .  $portfolio_category . $delimiter . $current_before . $page_title . $current_after; 
      } else { 
      echo $current_before . $page_title . $current_after .  $portfolio_category . $delimiter . '<a href="' . $link . '">' . $title . '</a>'; 
      } 

     } elseif (x_is_product()) { 

     if ($v = get_breadcrumb_category('product_cat')) { 
      $product_category = $delimiter . $v; 
     } else { 
      $product_category = ''; 
     } 

      if ($is_ltr) { 
      echo $shop_link . $product_category . $delimiter . $current_before . $page_title . $current_after; 
      } else { 
      echo $current_before . $page_title . $current_after . $product_category . $delimiter . $shop_link; 
      } 

     } elseif (x_is_buddypress()) { 

      if (bp_is_group()) { 
      echo '<a href="' . bp_get_groups_directory_permalink() . '">' . x_get_option('x_buddypress_groups_title', __('Groups', '__x__')) . '</a>' . $delimiter . $current_before . x_buddypress_get_the_title() . $current_after; 
     } elseif (bp_is_user()) { 
     echo '<a href="' . bp_get_members_directory_permalink() . '">' . x_get_option('x_buddypress_members_title', __('Members', '__x__')) . '</a>' . $delimiter . $current_before . x_buddypress_get_the_title() . $current_after; 
     } else { 
     echo $current_before . x_buddypress_get_the_title() . $current_after; 
     } 

    } elseif (x_is_bbpress()) { 

     remove_filter('bbp_no_breadcrumb', '__return_true'); 

     if (bbp_is_forum_archive()) { 
     echo $current_before . bbp_get_forum_archive_title() . $current_after; 
     } else { 
     echo bbp_get_breadcrumb(); 
     } 

     add_filter('bbp_no_breadcrumb', '__return_true'); 

    } elseif (is_page() && ! $post_parent) { 

     echo $current_before . $page_title . $current_after; 

    } elseif (is_page() && $post_parent) { 

     $parent_id = $post_parent; 
     $breadcrumbs = array(); 

     if (is_rtl()) { 
     echo $current_before . $page_title . $current_after . $delimiter; 
     } 

     while ($parent_id) { 
     $page   = get_page($parent_id); 
     $breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>'; 
     $parent_id  = $page->post_parent; 
     } 

     if ($is_ltr) { 
     $breadcrumbs = array_reverse($breadcrumbs); 
     } 

     for ($i = 0; $i < count($breadcrumbs); $i++) { 
     echo $breadcrumbs[$i]; 
     if ($i != count($breadcrumbs) -1) echo $delimiter; 
     } 

     if ($is_ltr) { 
     echo $delimiter . $current_before . $page_title . $current_after; 
     } 

    } elseif (is_tag()) { 

     echo $current_before . single_tag_title('', false) . $current_after; 

    } elseif (is_author()) { 

     GLOBAL $author; 
     $userdata = get_userdata($author); 
     echo $current_before . __('Posts by ', '__x__') . '“' . $userdata->display_name . $current_after . '”'; 

    } elseif (is_404()) { 

     echo $current_before . __('404 (Page Not Found)', '__x__') . $current_after; 

    } elseif (is_archive()) { 

     if (x_is_shop()) { 
     echo $current_before . $shop_title . $current_after; 
     } else { 
     echo $current_before . __('Archives ', '__x__') . $current_after; 
     } 

    } 

     echo '</div>'; 

    } 
} 
+0

Большое спасибо за ваш ответ, но мы переключились на тему «Холст», так как я задал вопрос, поэтому не могу проверить. –

0

начиная с } elseif (x_is_product()) { и заканчивая на } elseif (x_is_buddypress()) {

} elseif (x_is_product()) { 

$product_categories = wp_get_post_terms(get_the_ID(), 'product_cat'); 
$parent = ''; 
$sub_category = ''; 

foreach ($product_categories as $category) { 
$term_id = $category->term_id; 
$term_name = get_term($term_id, 'product_cat'); 

if ($category->parent != 0) { 
    $sub_category .= $parent_id . '<a href="'.home_url().'/product-category/'.$term_name->slug.'/">' . $term_name->name . '</a>' . $delimiter ; 
} else { 
    $parent .= '<a href="'.home_url().'/product-category/'.$term_name->slug.'/">' . $term_name->name . '</a>' . $delimiter ; 
} 
} 

if ($v = get_breadcrumb_category('product_cat')) { 
     $product_category = $delimiter . $v; 
    } else { 
     $product_category = ''; 
    } 

    if ($is_ltr) { 
if(is_array($product_categories)){        
    echo $shop_link . $product_category . $delimiter . $sub_category . $current_before . $page_title . $current_after;     
} 
else { 
    echo $shop_link . $delimiter . $current_before . $page_title . $current_after; 
}    
} else { 
    echo $current_before . $page_title . $current_after . $delimiter . $shop_link; 
} 

} elseif (x_is_buddypress()) { 
Смежные вопросы