2016-03-23 8 views
0

I indem Sie den folgenden Code zu meinem Kind Thema functions.php Produkt kurze Beschreibung in meinem Hause und Kategorieseite enthalten ist,Grenze WooCommerce Produkt kurze Beschreibung auf Homepage und Kategorieseite

add_action('woocommerce_after_shop_loop_item_title','woocommerce_template_single_excerpt', 5);

Jetzt würde ich mag die Zeichen der Produktkurzbeschreibung in den Home- und Kategorieseiten einschränken.

Irgendwelche Hilfe bitte ??

Weitere Code und Präzisierungen: Mein add_action wird auf die folgende Datei WooCommerce hinzugefügt/includes/WC-template-hooks.php und hier sind die Produkt Loop-Elemente.

add_action('woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10); 
add_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5); 
add_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10); 
add_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10); 
add_action('woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10); 

add_action('woocommerce_before_subcategory', 'woocommerce_template_loop_category_link_open', 10); 
add_action('woocommerce_shop_loop_subcategory_title', 'woocommerce_template_loop_category_title', 10); 
add_action('woocommerce_after_subcategory', 'woocommerce_template_loop_category_link_close', 10); 

add_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10); 
add_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5); 

alles hier gedruckt: Mytheme/WooCommerce/single-product.php und der Code

<div class="container-inner"> 
     <?php do_action('woocommerce_before_shop_loop_item'); ?> 
     <div class="image-block">  
     <a href="<?php the_permalink(); ?>">   
      <?php 
       /** 
       * woocommerce_before_shop_loop_item_title hook 
       * 
       * @hooked woocommerce_show_product_loop_sale_flash - 10 
       * @hooked woocommerce_template_loop_product_thumbnail - 10 
       */ 
       do_action('woocommerce_before_shop_loop_item_title'); 
      ?></a>   
      <div class="product-block-hover"></div> 

      </div> 
<a href="<?php the_permalink(); ?>"><h3 class="product-name"><?php  the_title(); ?></h3></a> 
      <?php 
       /** 
       * woocommerce_after_shop_loop_item_title hook 
       * 
       * @hooked woocommerce_template_loop_rating - 5 
       * @hooked woocommerce_template_loop_price - 10 
       */ 
       do_action('woocommerce_after_shop_loop_item_title'); 
      ?>          

     <?php do_action('woocommerce_after_shop_loop_item'); ?> 
     </div>    
+0

Können Sie mehr Code posten, damit ich Ihnen helfen kann? Zeigen Sie uns, wie Sie sie drucken – Skatox

+0

Hallo @Skatox, ich habe mehr Code hinzugefügt. Danke für Ihre Hilfe. – salimottmani

+0

Hi @Skatox Ich habe den Code, den Sie mir in der functions.php meines Child-Theme kurz vor dem letzten php-Closing-Tag gegeben haben, hinzugefügt und es funktioniert nicht. Ich habe auch versucht, woocommerce_short_description durch woocommerce_template_single_excerpt() zu ersetzen und es funktioniert auch nicht. Irgendwelche Vorschläge bitte? – salimottmani

Antwort

0

Sie ist die Länge mit dem woocommerce_short_description Filter bearbeiten können, tun Sie etwas wie folgt aus:

add_filter('woocommerce_short_description','limit_short_descr'); 

function limit_short_descr($description){ 
    return ($description > 140) ? substr($description, 0 , 140) : $description; 
} 

Sie können auch einen &hellip; nach dem Text hinzufügen, damit es besser aussieht.

+0

Problem gelöst. – salimottmani

+0

Ja, Ihre Antwort hat mir geholfen, dieses Problem zu lösen. Vielen Dank für Ihre Hilfe :) – salimottmani

+0

Gern geschehen :) – Skatox

0

Danke Skatox für Ihre Hilfe, ich habe dieses Problem endlich gelöst. Hier ist das, was ich getan habe:

In der folgenden Datei (\ wp-contents \ Plugins \ WooCommerce \ Templates \ Ein-Produkt \ Kurz description.php) Ich habe den folgenden Code:

<?php 
    if (is_single()): 
     echo apply_filters('woocommerce_short_description', $post->post_excerpt ); 
    else : 
     echo substr(apply_filters('woocommerce_short_description', $post- >post_excerpt),0,140); 
    endif; 
?> 

Mit diesem konnte ich die Zeichen anzeigen, die ich auf meinen Haus- und Kategorieseiten benötigte, und Produktseite lassen, wie es ist.

PS: der beste Weg, um dies zu tun, wenn Sie mit dem gleichen Problem konfrontiert sind, ist die gleiche Datei (short-description.php) zu erstellen, bearbeiten Sie den Code und legen Sie es in Woocommerce-Ordner in Ihrem Thema, so dass Ihre Änderungen sind nicht von Woocommerce Update betroffen.

0

Statt Dateien direkt bearbeiten innerhalb des Plugins (was eine sehr schlechte Idee ist, denn sobald das Plugin aktualisieren und alle Änderungen gehen verloren!)

eine Funktion erstellen und dann auf diesen Filter Haken ... so etwas wie dieses ...

add_filter('woocommerce_short_description', 'reigel_woocommerce_short_description', 10, 1); 
function reigel_woocommerce_short_description($post_excerpt){ 
    if (!is_product()) { 
     $pieces = explode(" ", $post_excerpt); 
     $post_excerpt = implode(" ", array_splice($pieces, 0, 10)); 

    } 
    return $post_excerpt; 
} 

Paste dieses in Ihrem functions.php Datei Ihres Themas.

explodieren bricht die ursprüngliche Zeichenfolge in ein Array von Wörtern, array_splice können Sie bestimmte Bereiche von diesen Worten, und dann implodieren verbindet die Bereiche wieder zusammen in einzelne Saiten.

und Verwendung dieser Linie, wo Sie Produktbeschreibung angezeigt werden soll -

<?php echo apply_filters('woocommerce_short_description', $post->post_excerpt); ?> 

Verwendung dieser Code Änderungsgrenze auf der Start und Kategorie Seite nicht Produkt-Detail Seite.

0

Ich denke, das ist der bessere Weg. Es wird die kurze Beschreibung auf 85 Zeichen begrenzen, macht Ihre Archivseite sauberer aussehen:

function customize_shop_loop_excerpt() { 
function woocommerce_shop_loop_excerpt_custom() { 
<p> 
<?php echo preg_replace('/\s+?(\S+)?$/', '', substr(get_the_excerpt(), 0, 85)) . '...'; ?> 
</p> 
<?php 
} 
remove_action ('product_box_after', 'woocommerce_shop_loop_excerpt', 20); 
add_action ('product_box_after', 'woocommerce_shop_loop_excerpt_custom', 20); 
} 
add_action ('after_setup_theme', 'customize_shop_loop_excerpt'); 
Verwandte Themen