我的标题中有一个部分,显示了最新帖子的两个摘录,可能来自于常规博客帖子或自定义帖子。自定义帖子利用高级自定义字段在单张中显示视频、描述和其他内容。php。因此,我需要在函数中更改有关摘录过滤器的一些内容。php文件。这一切都很完美,但问题是描述可能少于15个字,这似乎是我在摘录\\u more过滤器中的最小值,这意味着我没有得到“。。。阅读“更多”链接或其他任何内容,允许用户点击进入帖子。这是我在这一部分的代码:
function new_excerpt_length($length) {
return 15;
}
add_filter(\'excerpt_length\', \'new_excerpt_length\');
function new_excerpt_more($more) {
global $post;
return \'<a class="moretag" href="\'. get_permalink($post->ID) . \'"><br>...Read More</a>\';
}
add_filter(\'excerpt_more\', \'new_excerpt_more\');
function custom_field_excerpt() {
global $post;
$text = get_field(\'description\');
if ( \'\' != $text ) {
$text = strip_shortcodes( $text );
$text = apply_filters(\'the_content\', $text);
$text = str_replace(\']]>\', \']]>\', $text);
$excerpt_length = 15;
$excerpt_more = apply_filters(\'excerpt_more\', \' \');
$text = wp_trim_words( $text, $excerpt_length, $excerpt_more);
}
return apply_filters(\'the_excerpt\', $text);
}
我是否可以添加一些内容,或者以某种方式更改新的\\u extract\\u more函数,使其始终添加一个“Read more”,而不仅仅是满足15个单词的最小值?
最合适的回答,由SO网友:Tunji 整理而成
您可以使用str_word_count php函数,如果不返回您的“阅读更多”链接
因此,我将修改您的自定义字段摘录,如下所示:
function custom_field_excerpt() {
global $post;
$text = get_field(\'description\');
if (\'\' != $text) {
$text = strip_shortcodes($text);
$text = apply_filters(\'the_content\', $text);
$text = str_replace(\']]>\', \']]>\', $text);
$excerpt_length = 15;
$excerpt_more = apply_filters(\'excerpt_more\', \' \');
$text = wp_trim_words($text, $excerpt_length, $excerpt_more);
}
if (str_word_count($text) > 15)
return apply_filters(\'the_excerpt\', $text);
return apply_filters(\'the_excerpt\', $text) . "<a class=\'moretag\' href=\'get_permalink($post->ID)\'><br>...Read More</a>"
}