Wordpress自定义摘录添加类

时间:2016-08-17 04:12:17

标签: php css wordpress function

我使用另一个question的自定义摘录,可让您控制要显示的段落数量,而不是字符长度。它还包括“阅读更多”链接。检查代码后,我发现此链接被<p>标记包围。但是,我想在“阅读更多”链接周围的这个特定<p>标记中添加一个类。

以下是相关代码。

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”将整个内容分解为每个段落,并将每个段落放在一个数组中。此外,“implode”将数组返回到字符串中。换句话说,“内爆”将每个段落全部重新组合在一起构成整个内容。

最后,我想我可能知道应该编辑代码的位置,以便将类添加到围绕“阅读更多”链接的<p>标记

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

因为“$ excerpt_end”是“阅读更多”链接而“。=”将“阅读更多”链接添加到帖子摘录中。

但是,经过一些试验和错误后,我仍然无法弄清楚如何将类添加到围绕“阅读更多”链接的<p>标记。

请帮忙!

1 个答案:

答案 0 :(得分:0)

如果您想要将类添加到第一个p标签的原因是css原因,您可以使用第一个类型选择器选择div中的第一个p。

示例:

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

这将选择具有特定类“div-around-p-tags-class”的div中的第一个p标记,但您可以围绕p标记设置为您的类。