2016-08-17 35 views
0

このカスタムエクササイズを別のquestionから使用すると、文字の長さの代わりに表示したい段落の数を制御できます。また、 "Read More"リンクも含まれています。コードを調べると、このリンクが<p>タグで囲まれていることがわかりました。しかし、私は、この特定の<p>タグに "Read More"リンクを取り囲むクラスを追加したかったのです。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'); 

さらに、私はこのコードのいくつかの行を理解しようとしています。たとえば、私は "explode"が文字列を配列に分割することを学びました。したがって、このコードでは、 "explode"はコンテンツ全体を各段落に分割し、各段落を配列に配置します。また、 "implode"は配列を文字列に返します。言い換えれば、「インボード」は、すべての内容を構成するために各段落をすべてまとめて戻します。

最後に、私は「$のexcerpt_end」は「続きを読む」であるため、コードはリンク

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

「続きを読む」取り囲ん<p>タグにクラスを追加するために編集されるべきところ、私が知っているかもしれないと思います"。="は、抜粋に抜粋した "Read more"リンクを追加します。

しかし、いくつかの試行錯誤をした後も、 "Read more"リンクを囲んでいる<p>タグにクラスを追加する方法はまだ分かりません。

助けてください!

答えて

0

最初のpタグにクラスを追加する理由がcssの理由なら、first-of-typeセレクタでdivの最初のpを選択できます。

例:

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

これは、その特定のクラス「DIV-周り-P-タグ・クラス」とdivの内側の第一のpタグを選択しますが、あなたは、pタグの周りにあなたのクラスに設定することができます。

+0

最初のpタグではありません。 htmlの出力は '

content paragraphs

(depending on how many paragraphs you want)

Read More

' –

+0

です。遅延返信のお詫び。あなたはこれを解決することができましたか? – BenB

関連する問題