2016-08-17 91 views
0

我使用此自定義摘錄從另一question,讓您控制段的數量,而不是字符的長度。它還包括「閱讀更多」鏈接。在檢查代碼後,我發現這個鏈接被<p>標籤包圍。不過,我想在「Read More」鏈接周圍的此特定<p>標籤中添加一個類。WordPress的自定義摘錄添加類

下面是有問題的代碼。

if (! function_exists('custom_wp_trim_excerpt')) : 

function custom_wp_trim_excerpt($blogo_excerpt) { 
global $post; 
$raw_excerpt = $blogo_excerpt; 
if ('' == $blogo_excerpt) { 

$blogo_excerpt = get_the_content(''); 
$blogo_excerpt = strip_shortcodes($blogo_excerpt); 
$blogo_excerpt = apply_filters('the_content', $blogo_excerpt); 
// Here we choose how many paragraphs do we want to cutthe excerpt at, This part thanks to Clément Malet 
$blogo_excerpt = "<p>$blogo_excerpt</p>"; 
    $wanted_number_of_paragraph = 1; 
    $tmp = explode ('</p>', $blogo_excerpt); 
    for ($i = 0; $i < $wanted_number_of_paragraph; ++$i) { 
     if (isset($tmp[$i]) && $tmp[$i] != '') { 
      $tmp_to_add[$i] = $tmp[$i]; 
     } 
    } 
$blogo_excerpt = implode('</p>', $tmp_to_add) . '</p>'; 

$blogo_excerpt = str_replace(']]>', ']]&gt;', $blogo_excerpt); 

$excerpt_end = '<a href="'. esc_url(get_permalink()) . '">Read More</a>'; 
$excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end); 

//$pos = strrpos($wpse0001_excerpt, '</'); 
//if ($pos !== false) 
// Inside last HTML tag 
//$wpse0001_excerpt = substr_replace($wpse0001_excerpt, $excerpt_end, $pos, 0); 
//else 
// After the content 
$blogo_excerpt .= $excerpt_end; 

return $blogo_excerpt; 

} 
return apply_filters('custom_wp_trim_excerpt', $blogo_excerpt, $raw_excerpt); 
} 

endif; 

remove_filter('get_the_excerpt', 'wp_trim_excerpt'); 
add_filter('get_the_excerpt', 'custom_wp_trim_excerpt'); 

此外,我想了解此代碼中的一些行。例如,我瞭解到「爆炸」將字符串分解爲數組。因此,在此代碼中,「爆炸」將整個內容分解爲每個段落並將每個段落放入一個數組中。另外,「implode」將數組返回到字符串中。換句話說,「內爆」將每個段落全部重新組合起來組成整個內容。

最後,我想我可能知道其中的代碼應該被編輯到類添加到環繞<p>標籤「更多」鏈接

// After the content 
$blogo_excerpt .= $excerpt_end; 

因爲「$ excerpt_end」是「閱讀更多」鏈接和「。=」附加「閱讀更多」鏈接到帖子摘錄。

但是,在做了一些試驗和錯誤之後,我仍然無法弄清楚如何向圍繞「閱讀更多」鏈接的<p>標籤添加一個類。

請幫忙!

回答

0

如果你想添加一個類到第一個p標籤的原因是css的原因,你可以選擇帶有第一類型選擇器的div中的第一個p。

例子:

.div-around-p-tags-class p:first-of-type { 
    font-size: 1.5em; 
} 

這將選擇與特定的類「的div圍繞頭對標籤類」一個div裏面的第一個p標籤,但你可以設置你的類圍繞p標籤。

+0

這不是第一個p標籤。 html輸出爲 '

content paragraphs

(depending on how many paragraphs you want)

Read More

' –

+0

延遲迴復的道歉。你有沒有設法解決這個問題? – BenB

相關問題