正如托肖所说,types_render_field()
不是wordpress函数,所以您应该在某处声明它。
无论您是否使用wp_trim_excerpt
或wp_trim_words
. 如果需要在摘录中保留HTML格式,则需要创建自己的摘录函数。要执行此操作,首先需要删除wp_trim_excerpt
然后添加您自己的函数。
这是一段前写的自定义摘录。它在模板文件中正常调用,这意味着the_excerpt()
. 此摘录保留所有HTML格式。它也只在, ; ? .
或!
这个Read more
文本出现在新段落中,但如果需要将其放在最后一个单词的旁边,可以将其删除//
从…起
//$pos = strrpos($pietergoosen_excerpt, \'</\');
//if ($pos !== false)
// Inside last HTML tag
//$pietergoosen_excerpt = substr_replace($pietergoosen_excerpt, $excerpt_end, $pos, 0);
//else
// After the content
这是我的摘录
if ( ! function_exists( \'pietergoosen_custom_wp_trim_excerpt\' ) ) :
function pietergoosen_custom_wp_trim_excerpt($pietergoosen_excerpt) {
global $post;
$raw_excerpt = $pietergoosen_excerpt;
if ( \'\' == $pietergoosen_excerpt ) {
$pietergoosen_excerpt = get_the_content(\'\');
$pietergoosen_excerpt = strip_shortcodes( $pietergoosen_excerpt );
$pietergoosen_excerpt = apply_filters(\'the_content\', $pietergoosen_excerpt);
$pietergoosen_excerpt = str_replace(\']]>\', \']]>\', $pietergoosen_excerpt);
//Set the excerpt word count and only break after sentence is complete.
$excerpt_word_count = 75;
$excerpt_length = apply_filters(\'excerpt_length\', $excerpt_word_count);
$tokens = array();
$excerptOutput = \'\';
$count = 0;
// Divide the string into tokens; HTML tags, or words, followed by any whitespace
preg_match_all(\'/(<[^>]+>|[^<>\\s]+)\\s*/u\', $pietergoosen_excerpt, $tokens);
foreach ($tokens[0] as $token) {
if ($count >= $excerpt_word_count && preg_match(\'/[\\,\\;\\?\\.\\!]\\s*$/uS\', $token)) {
// Limit reached, continue until , ; ? . or ! occur at the end
$excerptOutput .= trim($token);
break;
}
// Add words to complete sentence
$count++;
// Append what\'s left of the token
$excerptOutput .= $token;
}
$pietergoosen_excerpt = trim(force_balance_tags($excerptOutput));
$excerpt_end = \' <a href="\'. esc_url( get_permalink() ) . \'">\' . \' » \' . sprintf(__( \'Read more about: %s »\', \'pietergoosen\' ), get_the_title()) . \'</a>\';
$excerpt_more = apply_filters(\'excerpt_more\', \' \' . $excerpt_end);
//$pos = strrpos($pietergoosen_excerpt, \'</\');
//if ($pos !== false)
// Inside last HTML tag
//$pietergoosen_excerpt = substr_replace($pietergoosen_excerpt, $excerpt_end, $pos, 0);
//else
// After the content
$pietergoosen_excerpt .= $excerpt_end;
return $pietergoosen_excerpt;
}
return apply_filters(\'pietergoosen_custom_wp_trim_excerpt\', $pietergoosen_excerpt, $raw_excerpt);
}
endif;
remove_filter(\'get_the_excerpt\', \'wp_trim_excerpt\');
add_filter(\'get_the_excerpt\', \'pietergoosen_custom_wp_trim_excerpt\');