2013-07-08 54 views
4

我有一個使用woocommerce(內部頁),我的URL結構,店鋪頁面如下一個WordPress站點:woocommerce麪包屑缺少店鋪鏈接

的mysite /店/

麪包屑在woocommerce頁面顯示家裏唯一的鏈接,如: 您現在的位置:首頁

和我的產品頁面網址:

MYSITE /產品類別/ CATEGORY_NAME/

我的店鋪頁面的麪包屑顯示如下:

You are here: Home 

也是我的分類頁面的麪包屑顯示如下:

You are here: Home 

我需要使它顯示爲:

你在這裏:首頁/購物/ category_name

我checke d永久鏈接選項,但它似乎確定。 我檢查了breadcrumb.php模板文件,它似乎認爲shop()頁面是我網站的主頁。

我該如何解決這個問題,我應該編輯breadcrumb.php還是在我的設置中有錯誤? 在此先感謝。

回答

0

我發現麪包屑的代碼是在我的courture主題文件夾和主題的作者的header.php沒寫對產品或產品類別的網頁代碼,所以我說

elseif (is_single() && get_post_type() == 'product'){ 
$posts_page_id = get_option('page_for_posts'); 
$posts_page_url = get_permalink($posts_page_id); 
echo '<li>';$bar = "shopping"; 
if(get_option_tree('blog_name', '', false)) 
/*$bar=get_option_tree('blog_name', '', false);*/ 
echo "<a href=".home_url()."/shopping/>$bar</a></li>"; 
echo "<li>"; 
the_title(); 
echo"</li>"; 
} 

和產品類別

if (is_tax()) { 
$posts_page_id = get_option('page_for_posts'); 
$posts_page_url = get_permalink($posts_page_id); 
echo '<li>';$bar = "Shopping"; 
if(get_option_tree('blog_name', '', false)) 
echo "<a href=".home_url()."/shopping/>$bar</a> > </li>" ; 
echo "<li>"; 
woocommerce_page_title(); 
echo"</li>";} 

頁我評論說,拿到BLOG_NAME因爲我使用自定義的頁面,我的店不是woocommerce默認的行。我不知道是否有另一種方式來做到這一點,但我注意到,這個主題中的大多數代碼並不真正專業,即使在小部件的CSS這是一個不好的選擇。

+0

它現在這種方式工作:) – newComer

3

這可以做得更容易。它只是需要修改相應的固定鏈接設置 - 截至issue 3145提到在GitHub上:

滿足此條件:

// If permalinks contain the shop page in the URI prepend the breadcrumb with shop 
if (
    $shop_page_id 
    && strstr($permalinks['product_base'], '/' . $shop_page->post_name) 
    && get_option('page_on_front') !== $shop_page_id 
) { 
    $prepend = $before 
    . '<a href="' . get_permalink($shop_page) . '">' 
    . $shop_page->post_title . '</a> ' 
    . $after . $delimiter; 
} 

否則它永遠不會預先考慮。

若要將此人有去:

→WordPress的後臺設置→永久鏈接

,並設置woocommerce固定鏈接設置爲這些類型之一:

  • Shop Base
  • 店鋪分類
  • 定製基

如果是後者使用了塞»/店/ ...«必須預先考慮。

有一個issue 6584

警告:的preg_match():未知的修飾 'T' 在WC-芯的functions.php上線533

其例如occures如果» Custom Base«看起來像這樣:»/ shop/product/...«。有一個commit修復它,這是在主,但不是2.2.8。

嵌塞部分商店可以通過一些替代別的也一樣,例如本地化的內容。

5

我被調試這個和可惜的Woocommerce(版本2.3.8)中不使用任何鉤直接調整面包屑陣列。因此,如果您想修改顯示的麪包屑而不更改永久鏈接結構,最好將插件(/woocommerce/templates/global/breadcrumb.php)中的麪包屑模板文件複製到您的主題(/theme_name/woocommerce/global/)中,然後添加代碼以在輸出循環開始之前包含鏈接。我只做產品類別,標籤和細節,但如果你願意,你可以添加其他條件。

<?php 
/** 
* Shop breadcrumb 
* 
* @author  WooThemes 
* @package  WooCommerce/Templates 
* @version  2.3.0 
* @see   woocommerce_breadcrumb() 
*/ 

if (! defined('ABSPATH')) { 
    exit; 
} 

if ($breadcrumb) { 

    // add shop home url to breadcrumbs 
    if(is_product_category() || is_product_tag() || is_product()) { 
     $shop_page_id = wc_get_page_id('shop'); 
     $shop_home_arr = array(get_the_title($shop_page_id), get_permalink($shop_page_id)); 

     // insert to breadcrumbs array on second position 
     array_splice($breadcrumb, 1, 0, array($shop_home_arr)); 
    } 

    echo $wrap_before; 

    foreach ($breadcrumb as $key => $crumb) { 

     echo $before; 

     if (! empty($crumb[1]) && sizeof($breadcrumb) !== $key + 1) { 
      echo '<a href="' . esc_url($crumb[1]) . '">' . esc_html($crumb[0]) . '</a>'; 
     } else { 
      echo esc_html($crumb[0]); 
     } 

     echo $after; 

     if (sizeof($breadcrumb) !== $key + 1) { 
      echo $delimiter; 
     } 
    } 
    echo $wrap_after; 
}