2

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

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

-> 我想去掉“已标记的产品”(“Produkte verschlagwortet mit”)并仅在面包屑导航中显示示例标记(不带引号):

首页 > 示例标签 ( Startseite > 示例标签)

我发现了很多关于如何自定义面包屑的东西,但没有找到解决这个特定问题的方法。

有任何想法吗?

4

3 回答 3

1

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

/**
 * 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 文件中。

于 2019-08-30T20:33:06.523 回答
1

未经测试,但试试这个:

// 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');
于 2018-05-06T21:37:23.930 回答
0

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

于 2017-08-11T09:33:58.447 回答