如何在wordpress中对the_content()和the_excerpt()设置字符限制
如何在 wordpress 中对 the_content() 和 the_excerpt() 设置字符限制? 我只找到了字数限制的解决方案 – 我希望能够设置输出的确切字符数。
解决方案
您可以使用 WordPress 过滤器回调函数。 在您的主题目录中,找到或创建一个名为functions.php
的文件并在其中添加以下内容:
<?php
add_filter("the_content", "plugin_myContentFilter");
function plugin_myContentFilter($content)
{
// Take the existing content and return a subset of it
return substr($content, 0, 300);
}
?>
plugin_myContentFilter()
是您提供的一个函数,每次您通过the_content()
请求帖子类型(如帖子/页面the_content()
的内容时都会调用该函数。 它为您提供内容作为输入,并将使用您从该函数返回的任何内容用于后续输出或其他过滤器函数。
您还可以将add_filter()
用于其他函数,例如the_excerpt()
以在请求摘录时提供回调函数。
有关更多详细信息,请参阅WordPress 过滤器参考文档。
或者更简单,无需创建过滤器:使用 PHP 的mb_strimwidth
将字符串截断为特定宽度(长度)。 只要确保您使用get_
语法之一。 例如内容:
<?php $content = get_the_content(); echo mb_strimwidth($content, 0, 400, '...');?>
这会将字符串剪切为 400 个字符并用...
关闭它。 只需通过使用get_permalink()
指向永久链接,在末尾添加“阅读更多”链接。
<a href="https://stackoverflow.com/questions/3147898/how-to-set-character-limit-on-the-content-and-the-excerpt-in-wordpress/<?php the_permalink() ?>">Read more </a>
当然,您也可以在第一行中构建read more
。 不仅仅是将'...'
替换为'<a href="' . get_permalink() . '">[Read more]</a>'
这也平衡了 HTML 标签,这样它们就不会被打开并且不会破坏单词。
add_filter("the_content", "break_text");
function break_text($text){
$length = 500;
if(strlen($text)<$length+10) return $text;//don't cut if too short
$break_pos = strpos($text, ' ', $length);//find next space after desired length
$visible = substr($text, 0, $break_pos);
return balanceTags($visible) . " […]";
}
wp_trim_words
此函数将文本修剪为一定数量的单词并返回修剪后的文本。
例子:-
echo wp_trim_words( get_the_content(), 40, '...' );
用于使用the_content()
函数(用于显示页面的主要内容)
$content = get_the_content();
echo substr($content, 0, 100);
用于使用the_excerpt()
函数(用于显示页面的摘录短内容)
$excerpt= get_the_excerpt();
echo substr($excerpt, 0, 100);
用下面的代码替换<?php the_content();?>
<?php
$char_limit = 100; //character limit
$content = $post->post_content; //contents saved in a variable
echo substr(strip_tags($content), 0, $char_limit);
?>
wp_trim_words()
该函数将文本修剪为一定数量的单词并返回修剪后的文本。
$excerpt = wp_trim_words( get_the_content(), 40, '<a href="'.get_the_permalink().'">More Link</a>');
使用mb_strimwidth()
php 函数获取指定宽度的截断字符串。
$excerpt = mb_strimwidth( strip_tags(get_the_content()), 0, 100, '...' );
在the_content
过滤器钩子上使用 WordPress 的add_filter()
方法。
add_filter( "the_content", "limit_content_chr" );
function limit_content_chr( $content ){
if ( 'post' == get_post_type() ) {
return mb_strimwidth( strip_tags($content), 0, 100, '...' );
} else {
return $content;
}
}
使用自定义 php 函数来限制内容字符。
function limit_content_chr( $content, $limit=100 ) {
return mb_strimwidth( strip_tags($content), 0, $limit, '...' );
}
// using above function in template tags
echo limit_content_chr( get_the_content(), 50 );
只是为了帮助,如果有人想限制home page
帖子长度..然后可以使用下面的代码来做到这一点..
下面的代码只是对@bfred.it
先生的修改
add_filter("the_content", "break_text");
function limit_text($text){
if(is_front_page())
{
$length = 250;
if(strlen($text)<$length+10) return $text; //don't cut if too short
$break_pos = strpos($text, ' ', $length); //find next space after desired length
$visible = substr($text, 0, $break_pos);
return balanceTags($visible) . "... <a href='".get_permalink()."'>read more</a>";
}else{
return $text;
}
}
<?php
echo apply_filters( 'woocommerce_short_description', substr($post->post_excerpt, 0, 500) )
?>
我知道这篇文章有点旧,但我想我会添加我使用的函数,这些函数考虑到任何过滤器和任何你想要安全排除的<![CDATA[some stuff]]>
内容。
只需添加到您的 functions.php 文件并在您想要的任何地方使用,例如:
content(53);
或者
excerpt(27);
享受!
//limit excerpt
function excerpt($limit) {
$excerpt = explode(' ', get_the_excerpt(), $limit);
if (count($excerpt)>=$limit) {
array_pop($excerpt);
$excerpt = implode(" ",$excerpt).'...';
} else {
$excerpt = implode(" ",$excerpt);
}
$excerpt = preg_replace('`[[^]]*]`','',$excerpt);
return $excerpt;
}
//limit content
function content($limit) {
$content = explode(' ', get_the_content(), $limit);
if (count($content)>=$limit) {
array_pop($content);
$content = implode(" ",$content).'...';
} else {
$content = implode(" ",$content);
}
$content = preg_replace('/[.+]/','', $content);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
return $content;
}
你可能还喜欢下面这些文章

//demo.imwpweb.com/wpnovo/多设备支持主题支持PC和移动端界面,独立设置,互不干扰。移动端首页(右)图:小说页面PC端和移动端的展示付费订阅主题支持付费订阅功能,支持付费单章订阅、整本小说订阅模式。

什么是内链内链,顾名思义就是在同一网站域名下的内容页面之间的互相链接(自己网站的内容链接到自己网站的内部页面,也称之为站内链接)。自动内链工作原理简单来说,我们设定一些词表以及词表对应的链接,比如词是wordpress插件,链接是http

这款插件的核心功能就是一点:找出文章中的违禁词、敏感词等措辞不当的词语,替换成你设置的更合适的词或者直接替换“*”号。请注意,需要同时下载站长工具箱和违禁词屏蔽插件,安装插件时也需要两个插件同时安装。

2、自动生成的图片并非真实在磁盘中的图片,而是动态生成的,如果保存到磁盘会占用大量空间,这个空间没必要浪费,因此修改主题代码,直接将缩略图的地址改为wpac自动生成的缩略图地址是一个非常好的方案。

wprec利用相似度算法计算每篇文章之间的相似度,找到与当前文章最相似的一些文章,展现在文章底部作为相关文章。我们知道,相关推荐插件推荐的原理是根据当前文章的特征(文章的高权重标签),从文章库中召回相关文章,再根据相关性评分,最后选出To