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(']]>', ']]>', $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标签。
这不是第一个p标签。 html输出为 '
content paragraphs
(depending on how many paragraphs you want)Read More
延迟回复的道歉。你有没有设法解决这个问题? – BenB