WordPress的自定义摘录添加类

问题描述:

我使用此自定义摘录从另一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>标签添加一个类。

请帮忙!

如果你想添加一个类到第一个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