Eliminar los “Productos etiquetados” de Woocommerce Tag Archive Breadcrumbs

2 minutos de lectura

En mi tienda wordpress, estoy usando las etiquetas de productos de woocommerce para mostrar mis productos de una manera alternativa. En las páginas de archivo de etiquetas, la ruta de navegación dice

Inicio > Productos etiquetados como “Etiqueta de ejemplo” o más bien Startseite > Produkte verschlagwortet mit „Etiqueta de ejemplo“ ya que tengo un sitio en alemán.

-> Quiero deshacerme de los “Productos etiquetados” (“Produkte verschlagwortet mit”) y que la etiqueta de ejemplo (sin las comillas) solo se muestre en la ruta de navegación:

Inicio > Etiqueta de ejemplo ( Startseite > Etiqueta de ejemplo)

Encontré muchas cosas sobre cómo personalizar la ruta de navegación en general, pero en ninguna parte sobre cómo eliminar ese problema específico.

¿Algunas ideas?

Sé que ha pasado un tiempo, pero puede ayudar a alguien más. se me ha ocurrido esto:

/**
 * 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;
}

Este es un filtro que usa el woocommerce_get_breadcrumb gancho. Debes poner este código en el archivo functions.php de tu tema.

No probado, pero prueba esto:

// 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 );

Si está utilizando un tema ThemeBlvd, haga esto en su lugar:

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

Puede seleccionar ese elemento de Inspeccionar elemento y escribir CSS personalizado para él y establecerlo en
display: none;

  • No, ya que el texto está en un Elemento y quiero mantener una parte (Ejemplo) visible

    –> Y esa etiqueta está cambiando, así que no puedo reemplazarla con CSS

    – mediamarx

    11 de agosto de 2017 a las 9:53


¿Ha sido útil esta solución?