从Woocommerce标记存档面包屑中删除“标记的产品”

时间:2017-08-11 09:19:08

标签: php wordpress woocommerce breadcrumbs storefront

在我的Storefront wordpress中,我正在使用woocommerce产品标签以另一种方式显示我的产品。 在标记存档页面上,面包屑说

主页>产品标记为“示例标记”或更确切地说是Startseite> Produkte verschlagwortet mit“Example Tag”,因为我有一个德语网站。

- >我想摆脱“Products tagged”(“Produkte verschlagwortet mit”)并将示例标签(不带引号)仅显示在Breadcrumb中:

主页>示例标记(Startseite>示例标记)

我发现很多东西如何定制面包屑一般,但无处可去如何摆脱那个具体问题。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

您可以从Inspect Element中选择该项目并为其编写自定义CSS并将其设置为 display: none;

答案 1 :(得分:0)

未经测试,但试试这个:

// Customize text strings
function my_gettext( $translation, $text, $domain ) {
    switch ( $translation ) {
        case 'Products tagged “%s”' :
            $translation = __( '%s', 'woocommerce' );
            break;
    }
    return $translation;
}
add_filter( 'gettext', 'my_gettext', 20, 3 );

如果您正在使用ThemeBlvd主题,请改为:

// Customize "Products tagged" in breadcrumbs
function my_locals( $locals ) {
    $locals['crumb_tag_products'] = '%s';
    return $locals;
}
add_filter('themeblvd_frontend_locals', 'my_locals');

答案 2 :(得分:0)

我知道已经有一段时间了,但是它可能会对其他人有所帮助。 我想出了这个:

/**
 * Remove "Products tagged" from product tags breadcrumbs
 */
add_filter('woocommerce_get_breadcrumb', 'woocommerce_breadcrumbs_remove_text', 10);
function woocommerce_breadcrumbs_remove_text($crumbs) {

  // Check if we are in a product tag archive page
  if (is_product_tag()) {

    // Point to the last element of the breadcrumbs array, specifically the breadcrumb we are going to edit
    end($crumbs);

    // Get the text to edit (array key number 0)
    $last    = $crumbs[key($crumbs)][0];

    // Perform a regular expression to keep only what's between quotes (“ and ”)
    $replace = preg_replace('/[\s\S]+\“([\s\S]+)\”/', '$1', $last);

    // Register the new text to the breadcrumb array
    $crumbs[key($crumbs)][0] = $replace;

    // Reset the array pointer
    reset($crumbs);
  }

  // Return the filtered breadcrumbs array
  return $crumbs;
}

这是使用woocommerce_get_breadcrumb挂钩的过滤器。您应该将此代码放入主题的functions.php文件中。