当自定义字段摘录少于字数限制时,如何在其上显示链接或“阅读更多”按钮

时间:2017-01-08 作者:JonHerbert

我的标题中有一个部分,显示了最新帖子的两个摘录,可能来自于常规博客帖子或自定义帖子。自定义帖子利用高级自定义字段在单张中显示视频、描述和其他内容。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(\']]&gt;\', \']]&gt;\', $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个单词的最小值?

1 个回复
最合适的回答,由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(\']]&gt;\', \']]&gt;\', $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>"
}

相关推荐

Child page excerpt

我有一个包含一些子页面的父页面。我想做的是在父页面上的自己的单元格中显示每个子页面摘录和一些其他信息。有人知道如何做到这一点吗?<div class=\"parent page\"> <?php $args = array( \'parent\' => $post->ID, \'post_type\' => \'page\', \'post_status\'