2016-08-30 126 views
4

我想在店鋪循環中獲得更多一致的網格佈局。將商店頁面上的產品標題添加一定的長度

產品標題跨越1或2行,具體取決於字符串長度,因此如果字符串長度低於強制它重疊到下一行的數量,我想添加一箇中斷'
',以便它不會「T影響店鋪循環頁面的整體間距/

這是我此刻已經試過代碼:

<?php 
    echo "test"; 
    $title = get_the_title(); 
    if (strlen($title) < 29) 
    { 
     echo '<br>'; 
    } 
?> 

我已經把它的內容product.php woocommerce模板,但它的不工作

我的代碼是否正確?

任何幫助將不勝感激。

感謝

回答

0

我覺得這不是爲了放置
標籤在產品標題之間的正確道路。 我認爲您只需要修正產品標題中用於顯示在產品頁面中的字符數量,例如,如果 產品標題類似於此案例中的「醫用術語測試庫:生活語言,5/E」 你可以限制標題「測試銀行醫學術語......」這取決於你的佈局

所以在這種方式,你的佈局將保持相同的和良好的

+0

難道我沒有辦法讓這項工作如何我最初的目的? 就好像我縮短了一些產品名稱,它不會真的對用戶有意義 –

0

將我的建議是使用以下

什麼

h1{ height: 40px; width: 250px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
<h1>Sample test test test test</h1>

這樣,您可以輕鬆地在一行中顯示標題。如果這不起作用,你想顯示完整的標題,那麼你可以使用一些工具提示插件,將顯示懸停全標題

1

這個答案是基於「標題長度」和「字長度「,以避免打破一個字。

此功能部分基於this answerwoocommerce_template_loop_product_title() WooCommerce本地函數,用來在content-product.php WooCommerce模板,顯示在頁面鋪的稱號。

在這裏,我已經包括你的限制字符串長度,但它也基於複雜「字長度」檢測,以避免分裂的話:

if ( ! function_exists('woocommerce_template_loop_product_title')) { 

    // Show the product title in the product loop. By default this is an <h3> html tag. 

    function woocommerce_template_loop_product_title() { 

     // Define the lenght limit for title (by line) 
     $limit = 29; 

     $title = get_the_title(); 
     $lenght = strlen($title); 

     // 1. The title length is higher than limit 

     if ($lenght >= $limit) { 

      $title_arr1 = array(); 
      $title_arr2 = array(); 
      $sum_length_words = -1; 

      // an array of the words of the title 
      $title_word_arr = explode(' ', $title); 

      // iterate each word in the title 
      foreach($title_word_arr as $word){ 
       // Length of current word (+1 space) 
       $length_word = strlen($word) + 1; 
       // Adding the current word lenght to total words lenght 
       $sum_length_words += $length_word; 
       // Separating title in 2 arrays of words depending on lenght limit 
       if ($sum_length_words <= $limit) 
        $title_arr1[] .= $word; 
       else 
        $title_arr2[] .= $word; 
      } 
      // Converting each array in a string 
      $splitted_title = implode(" ", $title_arr1). ' ('. strlen(implode(" ", $title_arr1)) .')'; 
      $splitted_title .= '<br>'; // adding <br> between the 2 string 
      $splitted_title .= implode(" ", $title_arr2). ' ('. strlen(implode(" ", $title_arr2)) .')'; 
      echo '<h3>' . $splitted_title . '</h3>'; 

     // 2. The title length is NOT higher than limit 

     } else { 
      echo '<h3>' . $title . '</h3>'; 
     } 

    } 

} 

此代碼放在功能。你的活動兒童主題(或主題)的php文件或任何插件文件。

該代碼已經過測試並且可以正常工作。

相關問題