哪个文件处理块的最新帖子,我想检查一下摘录处理

时间:2020-03-10 作者:Rob Foree

我正在使用最新版本的wordpress和theme Twenty20。

在块编辑器中使用最新的post块时,我显示的是摘录。

似乎使用[更多]来处理自动摘录的长度并没有正常工作。

我试图摆弄最大字数设置。。

我希望能够将最大单词数设置为25,并在一些帖子“B”中将[更多]标记放在单词20处,这样我可以在帖子A中获得25个单词的摘录,在帖子B中获得20个单词的摘录。

这不起作用,所以我尝试将max words设置为100,但仍然不考虑[更多]标记。

我是一个很好的黑客,从哪里开始?这是一个已知的问题,而且比我预期的更难吗?

谢谢

2 个回复
最合适的回答,由SO网友:ngearing 整理而成

Gutenberg块不会以可读或可调试的格式存储在Wordpress文件中。相反,他们有自己独立的git回购协议。

以下是最新帖子块的来源:https://github.com/WordPress/gutenberg/tree/master/packages/block-library/src/latest-posts

SO网友:Trisha

您可能会尝试一些东西,我在几年前发现了这个解决方案,它工作得很好-它不仅允许覆盖字数限制,还允许一些基本样式,以便如果您的摘录包含粗体字,那么这些字将显示在摘录中。

// Improves the look of the excerpt, more words, allows bolding

function improved_trim_excerpt($text) {
$raw_excerpt = $text;

$excerpt_more = \'&hellip;<a class="more-link" href="\'. esc_url( get_permalink() ) . \'" title="\' . esc_html__( \'Continue reading\', \'wp-answers\' ) . \' &lsquo;\' . get_the_title() . \'&rsquo;">\' . wp_kses( __( \'Continue reading <span class="meta-nav">&rarr;</span>\', \'wp-answers\' ), array( \'span\' => array( 
        \'class\' => array() ) ) ) . \'</a>\';    

if ( \'\' == $text ) {
    $text = get_the_content(\'\');
    $text = strip_shortcodes( $text );
    $text = apply_filters(\'the_content\', $text);
    $text = str_replace(\'\\]\\]\\>\', \']]&gt;\', $text);
    $text = strip_tags($text, \'<b><strong><del><em>\');
    $excerpt_length = apply_filters(\'excerpt_length\', 55);//change 55 to whatever word limit you want
    $newexcerpt_more = apply_filters(\'excerpt_more\', \' \' . $excerpt_more);
    $words = preg_split("/[\\n\\r\\t ]+/", $text, $excerpt_length + 1, PREG_SPLIT_NO_EMPTY);
    if ( count($words) > $excerpt_length ) {
        array_pop($words);
        $text = implode(\' \', $words);
        $text = $text . $newexcerpt_more;
        $text = force_balance_tags( $text );
    } else {
        $text = implode(\' \', $words);
        $text = force_balance_tags( $text );
    }
}
return $text;
}
remove_filter(\'get_the_excerpt\', \'wp_trim_excerpt\');
add_filter(\'get_the_excerpt\', \'improved_trim_excerpt\');
这将包含在你(希望是孩子)的主题函数中。php文件或自定义插件文件。。。。。

相关推荐