【问题标题】:Wordpress Custom Excerpt adding classWordpress 自定义摘录添加类
【发布时间】:2016-08-17 04:12:16
【问题描述】:

我使用来自另一个 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”将字符串分解为数组。因此,在这段代码中,“分解”将整个内容分解为每个段落,并将每个段落放入一个数组中。此外,“内爆”将数组返回为字符串。换句话说,“内爆”将每个段落重新组合在一起以构成整个内容。

最后,我想我可能知道应该在哪里编辑代码以将类添加到围绕“阅读更多”链接的&lt;p&gt; 标记

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

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

但是,经过反复试验,我仍然无法弄清楚如何将类添加到“阅读更多”链接周围的 &lt;p&gt; 标记中。

请帮忙!

【问题讨论】:

    标签: php css wordpress function


    【解决方案1】:

    如果你想在第一个 p 标签中添加一个类的原因是 css 原因,你可以使用 first-of-type 选择器选择 div 中的第一个 p。

    例子:

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

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

    【讨论】:

    • 不是第一个 p 标签。 html 输出是 '

      content paragraphs

      (取决于你想要多少段落)

      阅读更多

      '
    猜你喜欢
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 2018-07-15
    • 1970-01-01
    相关资源
    最近更新 更多